函数式编程 | 青训营

57 阅读1分钟

现代前端开发常用MVVM架构

状态模型(Model/State/Data)与视图(View),ViewModel中间层

响应式

状态发生改变,视图也应该发生改变

Vue中ref,reactive,微信小程序setData

React中类组件setState,函数组件useState

一般来说是异步的,特殊情况会同步,有兴趣的同学可以谷歌,我后续会再聊

状态改变后如何立即获取状态

Vue中watchEffect监听

React中useEffect副作用钩子

hooks

为什么使用hooks

Vue2中通过创建Vue实例对象,将组件的props,methods,data等挂载到Vue实例对象上,我们要操作这些属性的时候,需要用到this指针

Vue2中的mixin(混入)类似于hooks,但是其书写比hooks更复杂,开发者的心智负担更重,要考虑的更多

在JavaScript里面,函数是一等公民

函数式编程的理念,将函数作为参数或者返回值传递

hooks本质上也是函数,它封装了常用的逻辑,其内部也可以使用其他hooks,从函数中来,到函数中去,避免了this指针的问题,开发者体验提升

Vue3中通过setup方法,ref,reactive等语法糖避免了这个问题,setup在Vue2.7中就可以使用。

Vue中使用hooks

Vueuse是提供给vue开发者的hooks库,封装了许多实用的hooks

React中使用hooks

推荐阿里开源的ahooks

Vue中使用JSX语法,babel插件

状态管理

看项目大小,不一定需要Pinia,Vuex,Redux等全局状态管理器

Vue中使用ref,reactive

React中使用useState,useReducer