美文网首页
State与组件生命周期

State与组件生命周期

作者: jxc1 | 来源:发表于2019-03-04 19:44 被阅读0次

State

顾名思义,state用于表示组件的状态。相当于组件的私有变量,只可以在组件内部修改,完全受控于当前组件。
是由类定义的组件所特有的。

状态的声明

class Clock extends React.Component{
    constructor(props){
        super(props);
        this.state = {date:new Date()};//对state进行初始化
    }
    render(){//类组件唯一必须的方法
        return (<div>
            <p>hello world</p>
            <h2>{this.state.date.toLocaleTimeString()}</h2>
        </div>);
    }
}

如果想要实现实时更新的时钟,那就需要与生命周期的钩子函数结合。

生命周期:

1.初始化

constructor()

2.挂载

static getDerivedStateFromProps()
组件实例化后和属性更新后
render()
componentDidMount()
组件挂载后立即调用

3.更新

static getDerivedStateFromProps()
shouldComponentUpdate()
接收到新属性和状态时,渲染前调用,返回布尔值,决定是否更新
render()
getSnapshotBeforeUpdate()
渲染提交给DOM之前调用,返回值传给componentDidUpdate(),可以返回null
componentDidUpdate()

4.卸载

componentWillUnmount()

5.错误处理

componentDidCatch()

在挂载后新建一个定时器,在卸载时清除定时器,利用this.setState()就可以实现实时时钟。

class Clock extends React.Component{
    constructor(props){
        super(props);
        this.state = {date:new Date()};//对state进行初始化
    }
    tick(){
        this.setState({date:new Date()})
    }
    //挂载
    componentDidMount() {
        console.log('4-componentDidMount');
        this.timerID = setInterval(
             () => this.tick(),
        1000);
    }
    
    //卸载
    componentWillUnmount(){
        clearInterval(this.timerID);
    }
    render(){//类组件唯一必须的方法
        return (<div>
            <p>hello world</p>
            <h2>{this.state.date.toLocaleTimeString()}</h2>
        </div>);
    }
}
ReactDOM.render(<Clock />,document.getElementById('root'));

用this.setState({})来更新state,constructor()中初始化state

相关文章

  • react随记4 State&生命周期

    State&生命周期 React中组件生命周期如下图: 从上图中也可以看出,组件在构造函数中有state,也就是状...

  • 今日总结

    1.函数组件与类组件的区别? 函数组件:没有实例, 没有生命周期,没有state,只能接收props类组件:有实例...

  • State与组件生命周期

    State 顾名思义,state用于表示组件的状态。相当于组件的私有变量,只可以在组件内部修改,完全受控于当前组件...

  • React生命周期

    组件的生命周期 在组件的整个生命周期中,随着该组件的props或者state发生改变,其DOM表现也会有相应的变化...

  • React中函数组件与类组件区别

    类组件 有this、有生命周期、有状态state 使用时需要实例化 函数组件 没有this、没有生命周期、没有状态...

  • React杂碎知识

    类组件与函数式组件的区别是类允许在其中添加本地状态(state)和生命周期钩子。 唯一可以分配 this.stat...

  • React Hooks (一)

    特性 多个状态不会产生嵌套,写法还是平铺的 允许函数组件使用 state 和部分生命周期 更容易将组件的 UI 与...

  • 2018-06-11 RN组件的生命周期

    主题:组件的生命周期 RN组件的props和state 1.属性(props) 它是组件的不可变属性(组件自己不可...

  • React 组件渲染过程---自用

    组件的生命周期 getDefaultProps : 初始化propsconstructor:可以初始化state ...

  • RN:组件

    目录一. 什么是组件二. 组件的props、state属性和普通属性三. 组件的生命周期四. 组件之间的通信方式 ...

网友评论

      本文标题:State与组件生命周期

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