1. 状态管理
在我们前端开发中,一定会接触现在最热门的几大框架(Vue, React等等),在使用框架的过程中,我们一定会接触某些状态管理工具。
Vue我们会使用Vuex来管理全局状态, React会使用Redux来管理。
首先是不是,在问为什么?
在使用类似Vue,React框架时,我们一定会使用状态管理吗?这个答案是肯定的。或许我不会主动去使用Vuex, Redux,但我们编写每一个组件的时候就已经在管理状态,Vuex, Redux只是更方便我们进行全局的状态管理。
为什么一定会使用状态管理?这是因为现代前端框架使用数据驱动视图的形式来描述页面。比如,Vue、 React组件会有一个自己内部,外部的状态来共同决定组件的如何显示的,用户与组件交互导致数据变更,进而改变视图。
框架 | 内部状态 | 外部状态 |
---|---|---|
Vue | data | props |
React | state, useState | props |
所以我们所写大部分业务逻辑,是在管理状态,框架会帮我们状态映射成视图,这可以说是很经典的MVVM模式。
- View = ViewModel(Model);
- // 视图 = 状态 + 管理
- 复制代码
2. 有限状态机:计算机中一种用来进行对象行为建模的工具
其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。
我们来理解一下上面这段话。
-
一种对象行为建模工具
我们用来描述对象行为,状态随着时间转变过渡行为的工具。可以模拟世界上大部分事物。
-
生命周期
我们通过抽象对象所经历的状态序列,来确定对象一系列可能的生命周期和转变。
-
响应外界事件
外界事件能够影响对象内部状态。对象能够对外部事件作出响应。
状态机有基本几个要素:
-
当前所处状态
在各个时刻只处于一种状态
-
状态转移函数
在某种条件下,会从一种状态转移到另外一种状态。
-
有限状态序列
拥有有限,可枚举的状态数