Props&State

2022-08-22  本文已影响0人  jancywen

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。

数据是向下流动的

上一篇下一篇

猜你喜欢

热点阅读