美文网首页
Redux and Mobx浅谈对比

Redux and Mobx浅谈对比

作者: 董董董董董董董董董大笨蛋 | 来源:发表于2018-10-29 15:22 被阅读0次
  • Redex与Mobx都是状态管理库,用来管理应用的内部状态

  • Redux三大原则
    1.单一数据源
    2.State 是只读的
    3.使用纯函数来执行修改
    所以可以说是这些样本代码保证了state的状态的可管理性,毕竟所有的东西都是泾渭分明的,让出错的可能性和找问题的成本降到了最低。

//Redex简单用法

import {
  createStore,
} from 'redux'

/* redux */
//第一步定义 actiontype
const ADD_ACTION = 'ADD';

//第二步编写action函数
const add = (num) => {
  return {
    type: ADD_ACTION,
    num,
  }
}

//第三部初始state
const initialState = {
  count: 0,
}
//第四部出发reducers改变状态
const reducers = (state = initialState, action) => {
  switch (action.type) {
    case ADD_ACTION:
      return Object.assign({}, state, {
        count: state.count + action.num,
      })
    default:
      return state
  }
}

const reduxStore = createStore(reducers)
reduxStore.dispatch(add(1))

  • Mobex简单用法
import {
  observable,
  action,
} from 'mobx'

/* mobx */
const mobxStore = observable({
  count: 0,
  add: action(function(num) {
    this.count += num
  })
})
mobxStore.add(1)
mobxStore.count += 1

以上,使用mobX与Redux简单使用对比,可以看书Mobx构建应用迅速,但是当项目足够大的时候,还是使用redux,如果的确对mobX爱不释手,那还是开启严格模式,再加上一套状态管理的规范吧。

import { createStore } from 'redux'
 
 /* redux */
 //第一步定义 actiontype
 const INCREMENT = 'INCREMENT';
 
 //第二步编写action函数  
 //Action行为、描述数据的行为,表示一个动作(一个动作就是一个对象)
 //“Action 就是 View 发出的通知,表示 State 应该要发生变化了。”)
 const add = (num) => {
   return {
     type: INCREMENT,//这个type表示动作的名字
     num,
   }
 }
 
 //第三部初始state
 const initialState = {
   count: 0,
 }

 //第四部出发reducers改变状态
 //Reducer(处理器)
 //dispatch()将 action 发送出来,Store接受这个 action 并返回一个新的状态,此时创建新状态的过程就是Reduer(处理器)
 //Reducer是一个函数,它接受两个参数 state(当前状态值) && action,返回一个新的状态值 state。
 const reducers = (state = initialState, action) => {
   switch (action.type) {
     case INCREMENT:
       return  {
           ...state,
           count: state.count + 1,
       }
     default:
       return {
           ...state
       }
   }
 }
 
 //创建storestore(商店、仓库、库) 即是保存数据的地方 整个应用只能有一个Store
 //Redux提供 creatStore 函数来生成 Store。
 const Store = createStore(reducers)

 //dispatch() 用来发送Action的唯一方法
 Store.dispatch(add(1));

 //如何获取state
 // state(状态、某个时刻的数据即是Store的状态)
 //获取状态的方法是store.getState()
 console.log('state'+store.getState());

 const log = () => {
     console.log(store.getState())
 }

 log();

 //只要每次store中的数据有变化都会监听log这个函数,打印出当前的数据
 store.subscribe(log);

相关文章

  • React Native的数据流控制:Redux和Mobx对比

    React Native的数据流控制 待补充~~ Redux or Mobx Redux和Mobx对比 Redux...

  • Redux and Mobx浅谈对比

    Redex与Mobx都是状态管理库,用来管理应用的内部状态 Redux三大原则1.单一数据源2.State 是只读...

  • redux 和 mobX对比

    以下内容会严格遵循下面三个观点这部分的每一个小块都是为了吹二者之一要怎么黑另外一个才能更好的达到吹的效果要吹得有理...

  • Mobx 十分钟快速入门

    Store, Redux 和 Mobx 前端数据流方案包括了 flux, redux 和 mobx. 在其中数据存...

  • mobx VS Redux

    mobx api 简单,样板代码少 redux 需要注意的挺多,mobx 需要对依赖收集理解 Redux 规范 s...

  • 在react项目中使用redux or mobx?

    主要比较参数: 库体积,打包项目体积 开发体验 性能对比 在对比参数前首先分析一下redux和mobx的设计模式,...

  • mobx和redux

    Mobx总结以及mobx和redux区别https://blog.csdn.net/weixin_44369568...

  • 使用mobx和mobx-react代替redux和react-r

    用mobx和mobx-react代替redux和react-redux已经时大势所趋,既解决越写越零散的reduc...

  • redux & mobx

    记得我刚开始学习 react 时非常困惑,并不明白为什么要用 mobx ,要用 redux ?react comp...

  • redux mobx

    作者:Wang Namelos 链接:https://www.zhihu.com/question/4131257...

网友评论

      本文标题:Redux and Mobx浅谈对比

      本文链接:https://www.haomeiwen.com/subject/ncvbtqtx.html