BaseItem也有个疑问
来源:9-2 收藏功能的实现-1【实战应用】
 
			qq_过然_0
2019-01-02
- PopularItem 继承 BaseItem,那么算不算是他们说的高阶组件?
- BaseItem的收藏图标是用自己的state状态来判断的,那么注释掉  this.props.projectModel.isFavorite = isFavorite;只使用setState方法改变state的话,为什么不会引起页面的渲染 图标没有变化?? 
3.这里图标的切换 是popularItem这个组件刷新了 还是 popularPage整个组件刷新了?
4.this.props  我记得不是不建议修改的么,数据流推荐是单向的;
另外  this.props.projectModel 是一个引用类型吧,那么修改这个的话,popularPage里面的数据会变的吧?这几个关系有点懵逼。。。
写回答
	1回答
- 
				
				1.来来咱们先来说说高阶组件: - React高阶组件是由React的组合特性衍生出来的一种设计模式,它是在不改变目标类的情况下扩展其功能,它和集成没有必然联系哈。亲还记不记得我们课程中用到redux,redux中有很多高阶组件,比如react-redux中的connect就是一个高阶组件。 
 2.BaseItem中改变的是projectModel里面的属性,projectModel的引用并没有改变说以不会刷新哈:亲只要记住导致一个组件刷新只有两种可能: - 调用了setState; 
- 父组件的传递过来的props发生了变化; 
 3. 由于React Virtual DOM 的特性改变图标的状态不会导致整个页面刷新哈,指刷新了当前页面变化的部分; 4. 我们改变的是this.props.projectModel里面的属性,并没有改变projectModel本身哈; 00
相似问题

