react的state与props学习

在这里插入图片描述
上图:
类组件的使用渲染函数与构造函数
类的实质就是构造函数的实例化 理解这个就容易多
构造函数用于初始化状态与绑定事件函数的this指向
除了 构造函数是函数本身 其他定义的值 不是变量 因为这不是函数里面而是类 不能用var let const 而是 a = 1赋值语句
这个定义的值 都会绑定到类构造函数的原型上面

this指向类本身只会在构造函数里面与渲染函数里面
因为多数的事件都当作事件函数来调用 所以需要注意
很多时候都是节点操作 如果不改变this指向 那就是指向节点本身导致没办法达到预期效果

又因为render 与构造函数是处理过this指向的 而外层定义的值又是绑定到原型上面的 故而 都写成赋值语句这样 就可以保证 this的调用达到预期效果

比如简化state初始化 与 函数操作
在不用props你完全可以不用构造函数
在这里插入图片描述
上图:
是类组件作为模块独立展示内容
通过props来接收参数
在接收的时候 我们使用react-props来提示需要什么类型的数据
默认是什么参数
使用super与不使用的区别

对象.propTypes = {hell:PropTypes.string,fn:PropTypes.func}//
react16以上使用如上写法
react15是把插件作为原型属性的
对象.defaultProps = {hell: 123} //默认 即父组件没有传参数 子组件默认展示
propTypes是对象属性
PropTypes是插件
避免关键字冲突全部小写
比如 string number object func boolean
正如上面所说的this指向
你可以放在构造函数与渲染函数里面也是可以的
但是建议放在构造函数里面 避免不必要的执行

由于state的单向数据流
所以props不能赋值更改 属于只读属性
加了super(props)绑定到原型上面就可以 this.props
不加就只能props区别在这

又由于state是单向的 使用异步的this.setState来改变参数
导致render渲染 所以改变影响的没必要的渲染是必须要优化的
执行一次就渲染一次 如果改变同样的内容我们使用生命周期或者继承
purecomponent
shouldComponentUpate()
来进行浅比较

猜你喜欢

转载自blog.csdn.net/qq_43505774/article/details/112433888