REACT的状态管理记录|青训营笔记

81 阅读2分钟

基本概念:

React中的状态管理是指管理和更新一个组件的数据或状态的过程。在React中,状态本质上是一个持有可能随时间变化的信息的对象,并且是一个特定组件的局部。

状态更新

React引入了组件和单向数据流概念。当一个组件的状态(this.state)被更新时(使用this.setState),React会自动重新显示该组件和任何依赖该状态的子组件。这允许一个动态的用户界面,内容随着用户的互动而变化。具体而言,对于父子组件通信,父组件向子组件有props 和原型方法;而子组件向父组件通信方式有回调函数、事件冒泡。下方是冒泡代码,此处点button按钮,事件就冒泡到父组件身上,触发父组件onClick函数:

const Son = () => { return press the bottom; };

const Father = () => { const sayName = name => { console.log(name); }; return ( <div onClick={() => sayName('Jean')}> ); };

export default Father;

对于深层次远距离组件的通信,采取状态提升+props层层传递的方式。相应的有context设计,不够令人满意的是,通常为优化性能需要添加多个context,不利于较为简明的项目开发。

在React中,有不同的方法来管理状态,如使用React hooks或Redux。Redux更符合React理念,代码如下:

createStore = (reducer, state) => ({ dispatch: action => (state = reducer(state, action)) });

这些方法通过为管理和更新应用程序的状态提供有组织的结构,帮助开发者更有效地处理状态。其中,react hooks将混沌的若干状态打散为元数据,以逻辑共享替代高阶组件,甚至于在组件中取消this。此外,pmndrs也很好实现了状态管理需求,它提供了三个状态管理库(zustand jotai valito),三者不同程度上使用react 逻辑。

思考:

将基于过程的各项指令,转变为基于状态的描述和指令,是前端框架的重要革新。在react之前,jQuery提供了主要的前端管理。在后续的开发工作中,也需要学会实践面向状态的思路。尽管recoil 等仍然能够使用,然而前端开发日新月异的变化却要求我们不断跟进关注最优方案。