现代前端开发常用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