# state

  • state 是组件对象中最重要的概念,值必须是对象 { key: value } 形式

  • 组件就是一个状态机,通过更新组件的 state 来更新对应页面,重新渲染

  • 组件中 render 中的 this 指向实例对象

  • 组件自定义的方法中 this 指向 undefined,因为 开启了 use strict。

    • 通过 bind 强制绑定 this
    • 箭头函数的 this 指向上一个 函数中的 this
  • 状态数据不能直接修改,需通过 setState 更新数据


class Democlass1 extends React.Component {
    constructor(props) {
        super(props)
        this.state = {
            name: '组件'
        }

        // 为了在回调中使用 `this`,这个绑定是必不可少的
        this.handleClick = this.handleClick.bind(this);
    }

    handleClick() {
        this.setState({
            name: '更改了名字'
        })
    }

        
    render() {
        return (<div>Democlass {this.state.name} --- 
            <button onClick={this.handleClick}>更改名字</button>
        </div>)
    }
}

ReactDOM.render(<Democlass1/>, document.getElementById('root'))
class Democlass1 extends React.Component {

    state = {
        name: '组件'
    }

    // 箭头函数本身没有 this ,this 指向上一个this
    handleClick = () =>  {
        this.setState({
            name: '更改了名字'
        })
    }

        
    render() {
        return (<div>Democlass {this.state.name} --- 
            <button onClick={this.handleClick}>更改名字</button>
        </div>)
    }
}

ReactDOM.render(<Democlass1/>, document.getElementById('root'))
更新时间: 9/15/2021, 9:35:15 AM