您好,登录后才能下订单哦!
react native 的两个核心的属性控制改变组件:props和state。
props是在父组件中进行设置,只要设置完成那么在组件的生命周期就定死了,不会发生改变。
针对数据变化修改的情况,我们需要使用state属性;一般情况下,我们需要在constructor方法中初始化state,然后在你想要修改更新的时候调用setState方法。
方法名 | 作用 | 调用次数 |
---|---|---|
constructor | 构造函数,初始化需要的state | 1次 |
componentWillMount | 控件渲染前触发 | 1次 |
render | 渲染控件的方法 | 多次 |
componentDidMount | 控件渲染后触发 | 1次 |
componentWillReceiveProps | 组件接收到新的props时被调用 | 多次 |
shouldCompentUpdate | 当组件接收到props和state时被调用 | 多次 |
componentWillUpdate | props或者state改变,并且此前的shouldComponentUpdate为true会调用该方法 | 多次 |
componentDidUpdate | 组件重新渲染完成后会调用此方法 | 多次 |
componentWillUnmount | 组件卸载和销毁之前被调用 | 1次 |
react native的组件的生命周期:
从图中可以看出来组件的生命周期有三个阶段:
第一个阶段:初始化项目后,执行构造器,页面加载之后,第一次渲染页面,
第二个阶段:是组件的运行中阶段: 在这个阶段主要点就是:state状态的改变或者props属性的改变, 当state发生改变的时候,会调用shouldComponentUpdate()方法, 这个方法是返回是一个boolean类型,用于判定state状态是否改变,返回ture的时候,接下来将会执行componentWillUpdate()方法更新组件,然后再一次的执行render()方法,渲染页面,之后执行componentDidUpdate()方法,然后如果还有state状态发生改变的会就还是这个流程执行; 但 如果props属性发生改变的时候,就是触发componentWillReceiveProps()方法,然后在执行shouldComponentUpdate()方法,接下来的流程就一样了; 这就是运行中执行的流程;
第三个阶段:组件的卸载,这个期间我现在接触的比较少,因为react native 对这个阶段是自己封装好的,没太用过,先了解以下:
组件卸载的时候,首先执行Unmount()方法,然后执行componentWillUnmount()方法然后就是结束了;
在使用这个地方的时候, 有一个示例:就是对于本地存储的时候,当组件卸载的时候,可以在第三个阶段对 本地储存的数据进行清空操作;
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。