美文网首页
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

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