朋友们, 我想死你们了, 最近这几天忙着和病魔作斗争所以没怎么写博客, 今天感觉好点了, 赶紧来写一波, 就是这木敬业.
今天我们来讨论讨论 props 和 state 相同点和不同点
首先我来概要说明一下这两者
props:
props 是一个从外部传进组件的参数, 由于 React 具有单向数据流的特性, 所以他的主要作用是从父组件向子组件中传递数据, 它是不可改变的, 如果想要改变它, 只能通过外部组件传入新的 props 来重新渲染子组件, 否则子组件的 props 和展示形式不会改变, props 除了可以传字符串, 数字, 还可以传递对象, 数组甚至是回调函数
state:
state 主要作用是用于组件保存, 控制及修改自己的状态, 它只能在 constructor 中初始化, state 是可以被改变的, state 放改动的一些属性, 比如点击选中, 再点击取消, 类似这种属性就放入带 state 中, 注意: 没有 state 的叫做无状态组件, 多用 props 少用 state, 多写无状态组件, 注意: 修改 state 的值时, 必须通过调用 setState 方法, 当我们调用 this.setState 方法时, React 会更新组件的数据状态, 并且重新调用 render 方法
下面来列举一下两者的异同:
不同点: 1.props 不可以在组件内部修改, 但 state 可以在组件内部修改
2. 可以从父组件修改自组件的 props, 而不能从父组件修改自组件的 state
相同点: 1.props 和 state 都是导出 html 的原始数据.
2.props 和 state 都是确定性的, 如果我们写的组件为同一 props 和 state 的组合生成了不同的输出, 那木我们肯定在哪里做错了
3.props 和 state 都会触发渲染更新
4.props 和 state 都是纯 JS 对象 (用 typeof 来判断, 结果都是 object)
5. 可以从父组件得到初始值 props 和 state 的初始值
今天就先到这里了, 我得继续干活了, 也不能天天划水不是, 告辞!
来源: https://www.cnblogs.com/suihang/p/10081429.html