前端框架用vue还是react?清晰对比两者差异( 六 )


  1. 使用actions来处理异步操作:this.$store.dispatch来调用
Actions类似于mutations,不同在于:Actions提交的是mutations,而不是直接变更状态 。Actions可以包含任意异步操作 。也就是说,如果有这样的需求:在一个异步操作处理之后,更改状态,我们在组件中应该先调用actions,来进行异步动作,然后由actions调用mutations来更改数据 。在组件中通过this.$store.dispatch方法调用actions的方法,当然也可以使用mapMutations来辅助使用 。
react2015年Redux出现,将 Flux 与函数式编程结合一起,很短时间内就成为了最热门的前端架构 。它的出现主要是为解决react中组件之间的通信问题 。建议把数据放入到redux中管理,目的就是方便数据统一,好管理 。项目一旦出现问题,可以直接定位问题点 。组件扩展的时候,后续涉及到传递的问题 。本来的话,组件使用自己的数据,但是后来公用组件,还需要考虑如何值传递,在redux中可以存储至少5G以上的数据 。
redux的流程
 
前端框架用vue还是react?清晰对比两者差异

文章插图
 
 
  1. 创建store: 从redux工具中取出createStore去生成一个store 。
  2. 创建一个reducer,然后将其传入到createStore中辅助store的创建 。reducer是一个纯函数,接收当前状态和action,返回一个状态,返回什么,store的状态就是什么,需要注意的是,不能直接操作当前状态,而是需要返回一个新的状态 。想要给store创建默认状态其实就是给reducer一个参数创建默认值 。
  3. 组件通过调用store.getState方法来使用store中的state,挂载在了自己的状态上 。
  4. 组件产生用户操作,调用actionCreator的方法创建一个action,利用store.dispatch方法传递给reducer
  5. reducer对action上的标示性信息做出判断后对新状态进行处理,然后返回新状态,这个时候store的数据就会发生改变,reducer返回什么状态,store.getState就可以获取什么状态 。
  6. 我们可以在组件中,利用store.subscribe方法去订阅数据的变化,也就是可以传入一个函数,当数据变化的时候,传入的函数会执行,在这个函数中让组件去获取最新的状态 。
小结vue和react的核心都是专注于轻量级的视图层,虽然只是解决一个很小的问题,但是它们庞大的生态圈提供了丰富的配套工具,一开始它并不会给你提供全套的配置方案,将所有的功能都一次性给你打包好,它只会给你提供一些简单的核心功能,当你需要做一个更复杂的应用时,再增添相应的工具 。例如做一个单页应用的时候才需要用路由;做一个相当庞大的应用,涉及到多组件状态共享以及多个开发者共同协作时,才可能需要大规模状态管理方案 。
框架的存在就是为了帮助我们应对不同的项目复杂度,当我们面对一个大型、复杂的开发项目时,使用太简陋的工具会极大的降低开发人员的生产力,影响工作效率,框架的诞生就是在这些工程中提取一些重复的并且已经受过验证的模式,抽象到一个已经帮你设计好的API封装当中,帮助我们去应对不同复杂度的问题 。所以在开发的过程中,选择一个合适的框架就会事半功倍 。但是,框架本身也有复杂度,有些框架会让人一时不知如何上手 。当你接到一个并不复杂的需求,却使用了很复杂的框架,那么就相当于杀鸡用牛刀,会遇到工具复杂度所带来的副作用,不仅会失去工具本身所带来优势,还会增加各种问题,例如学习成本、上手成本,以及实际开发效率等 。
所以并不是说做得少的框架就不如做的做的框架,每个框架都有各自的优势和劣势,并不能找到完全符合需求的框架,最重要的适合当前项目,目前两大框架的生态圈一片繁荣,react社区是当前最活跃的,最快的时候三天更新一个版本,一个问题可能存在几十种不同的解决方案,这就需要我们前端人员去在不同的功能之间做取舍,以后前端框架的发展方向应该是小而精、灵活以及开放的,核心功能+生态附加库可以帮我们更加灵活的构建项目,为了跟上前进的脚步,就需要不停的吸收最新的内容,这也是从事前端开发领域的一大乐趣,希望大家都能在学习中获得长足的进步 。
 
参考文章
原链接:https://juejin.im/post/5dad09be518825393e52d1bd
【前端框架用vue还是react?清晰对比两者差异】


推荐阅读