redux和vuex区别

Z, ZLW 413

redux和vuex区别:1、改进了Redux中的Action和Reducer函数,以mutations变化函数取代Reducer;2、由于Vue自动重新渲染的特性,无需订阅重新渲染函数;3、Vuex数据流的顺序是:View调用store.commit提交对应的请求到Store中对应的mutation函数->store改变(vue检测到数据变化自动渲染)

1、Redux

   action (同步action ,或借助 中间件 实现异步操作,action 不会改变 store,只是描述了怎么改变store)| mutation(用于同步操作) 、action(可用于异步操作,提交 mutation)

   reducer(纯函数,根据 action 和旧的 store 计算出新的 store)

   store(单一数据源)

Redux 的三大原则:

  (1)单一数据源(一个Redux应用只有一个store),也是单向的数据流

  (2)state只读(唯一改变 state 的方法就是触发 action,action 是一个用于描述已发生事件的普通对象)

  (3)使用纯函数(reducer)来修改state。

    redux的流程:

  view——>action——>store——>reducer(返回)——>store——view

2、Vuex

   mutation(用于同步操作) 、action(可用于异步操作,提交 mutation)

   mutation里面直接修改 state

   state(单一数据源)

Vuex 的三大原则:

  (1) 应用层级的状态应该集中到单个 store 对象中。

  (2) 提交 mutation 是更改状态的唯一方法,并且这个过程是同步的。

  (3)异步逻辑都应该封装到 action 里面。

  vue的流程

       vueComponent——>(dispatch)action——>(commit)——>mutations——>(mutate)state——>(render)vueComponent

3、Redux 和 Vuex区别

  • Vuex改进了Redux中的Action和Reducer函数,以mutations变化函数取代Reducer,无需switch,只需在对应的mutation函数里改变state值即可
  • Vuex由于Vue自动重新渲染的特性,无需订阅重新渲染函数,只要生成新的State即可
  • Vuex数据流的顺序是∶View调用store.commit提交对应的请求到Store中对应的mutation函数->store改变(vue检测到数据变化自动渲染)

通俗点理解就是,vuex 弱化 dispatch,通过commit进行 store状态的一次更变;取消了action概念,不必传入特定的 action形式进行指定变更;弱化reducer,基于commit参数直接对数据进行转变,使得框架更加简易;


回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部