美文网首页
Props&State

Props&State

作者: jancywen | 来源:发表于2022-08-22 16:25 被阅读0次

Props

当 React 元素为用户自定义组件时,它会将 JSX 所接收的属性(attributes)以及子组件(children)转换为单个对象传递给组件,这个对象被称之为 “props”。

props 是组件的入参,不可更改
注意:组件可以接受任意 props,包括基本数据类型,React 元素以及函数。

State

React 把组件看成是一个状态机(State Machines)。通过与用户的交互,实现不同状态,然后渲染 UI,让用户界面和数据保持一致。
React 里,只需更新组件的 state,然后根据新的 state 重新渲染用户界面(不要操作 DOM)。

  1. 不要直接修改 State
    构造函数是唯一可以给 this.state 赋值的地方。更新 state 使用 setState()
this.state = {count: 0}

this.setState({count: 1});
  1. State 的更新可能是异步的
    因为 this.props 和 this.state 可能会异步更新,所以你不要依赖他们的值来更新下一个状态。
    要解决这个问题,可以让 setState() 接收一个函数而不是一个对象。这个函数用上一个 state 作为第一个参数,将此次更新被应用时的 props 做为第二个参数 (箭头函数、普通函数都可以)
this.setState((state, props) => ({
  counter: state.counter + props.increment
}));
  1. State 的更新会被合并
    state 中多个独立的变量,可以分别调用 setState() 来单独地更新它们,当调用 setState() 的时候,React 会把你提供的对象合并到当前的 state。

数据是向下流动的

相关文章

  • Props&State

    Props 当 React 元素为用户自定义组件时,它会将 JSX 所接收的属性(attributes)以及子组件...

  • ReactNative学习笔记(四)props&state

    Props 属性 包围pic的大括号的意思是——括号内部是一个js变量或表达式,需要执行后取值。我们可以把任何合法...

网友评论

      本文标题:Props&State

      本文链接:https://www.haomeiwen.com/subject/dcmigrtx.html