我计划的是先用react写个demo出来再撸源码。。
但是感觉看源码已经变成一个迫在眉睫的事情。
很多概念都需要看概念才能理解。
不然就只能死记硬背了。
所以现在脑海里两个小人,一个说先写个demo,一个说先看源码。。。
props是什么?
经检测,props在没有显式被super(props)继承,也可以使用this.props:
如果使用super(props),能通过this.props访问到props是因为:
class Component {
constructor(props) {
this.props = props;
// ...
}
}
如果不使用super(props),也可以通过 this.props访问到props:
但是:如果只写了:
constructor(props) {
super(); // 😬 我们忘了传入 props
console.log(props); // ✅ {}
console.log(this.props); // 😬 undefined
}
所以。要么省略不写,要么,就写全。
那,props到底是什么?
可以使用props向组件传递数据
向一个组件传递数据的方法是将数据写在组件的标签中;
<Content value = {this.state.value}/>
它是一个单向数据流。
状态是什么,怎么使用:
状态为state,其用法如下:
① 在组件初始化的时候,通过this.state给组件设定一个初始的state,在第一次render的时候就会用这个数据来渲染组件;
② 需要通过this.setState()方法来修改state。
当使用setState时,react会新建新的虚拟dom树,然后与旧的dom树进行比较,得到新旧dom树的差异。然后根据shouldComponentUpdate返回的值或者(如果使用了React.PureComponent,也不全部更新)更新组件。