状态管理

121 阅读2分钟

一个路由对应一个组件,至于组件内部怎么渲染,怎么按需,按状态加载。在内部管理。

  • 抽象,提取状态 组件思维 组件间通信。交互。通过数据订阅中心分发。

  • `纯组件 逻辑代码怎么组合。

  • HOC就是写逻辑的,然后接收纯组件壳子作为参数。就像一个餐厅,或者网吧都包含 前台接待,卫生阿姨,店铺经理,员工,制度管理,服务员等逻辑。这是提取出来的相同可复用逻辑。 我们把相同的业务流程集中提取出来,然后和各种其他的定制化组件组合。就像咖啡机,接受奶油做参数,组合起来就是卡布奇诺,或组合成拿铁数据中心就像星巴克会员,你去每一个城市消费都会在数据中心更新数据。所有的地方都会同步消费记录。 然后接受网吧组件,或餐厅组件就变成 业务逻辑+ 壳子新组件了。 一种分离,划分,提取复用,参数化 组合化的设计模式把一个复杂系统划分成不同的层次,然后组合参数化链式调用。 就像生产线,可以生产汽车,也可以生产飞机,也可以生产汽水。

  • this.state只向下传。 就像antd的组件,属于样式组件,不参与业务和数据通信。就属性化。

页面架构: 交互部分。纯展示部分。 都是数据。 哪些数据要参与生命周期钩子函数。

  • 样式组件只有样式,如果是定制化的数据,在属性里定义,比如 button,name="支付"。这是简单的固定的属性。 而对于变动的,随时间变化的属性,数据从父组件高阶组件获取。容器组件或smart组件里写逻辑。组织组件,把哪一层定为容器组件。 组合。容器组件里有state。 dumb组件里只有props。数据从外面来。所以需要组织数据的粒度,把state数据放在哪一层。

对象展开运算符主要用来合并多个数组或对象。或者复制内容而不是引用 比如:let arr1 = arr2只是赋值引用 而let arr1=[...arr2]实现一定程度的深复制。

有时候函数就是一个组合器 通过接受的参数,组合return出一个新对象。可复用。函数式组合。而不是通过集成 new。

对state干了什么,命名。比如一个todo应用,就是增删查改。一般对数据state的操作就这些。更新,查询get 修改post。 筛选