unhappy with redux? try mobx
相比上手/操作及其繁琐的Redux,用Mobx做状态管理,最直观的感受是爽爆了。
Mobx是一个非常直观的状态管理库,使用非常简单。通过Mobx,使react 关注的状态(state)到视图(view)的问题。而 mobx 关注的是状态仓库(store)到的状态(state)的问题。
废话不多说,这里通过一个最最简单的例子来感受基于RN的Mobx。
首先init 一个RN工程:
1 | react-native init ReactNativeMobX |
安装依赖库mobx以及mobx-react:
1 | npm i mobx mobx-react --save |
因为mobx要使用ES7的语法(Decorator),我们还需要在项目中使用babel:
1 | npm i babel-plugin-transform-decorators-legacy babel-preset-react-native-stage-0 --save-dev |
在工程目录下的.babellrc文件里配置一下:
1 | { |
环境搭配完咯。下面我们就可以编写代码咯。这里实现一个超级简单的例子。两个btn,+和-。控制字符的加减。
首先,我们在工程根目录创建一个mobx文件夹并创建一个仓库文件:countStore.js
1 |
|
这里我们的仓库就创建完了。接下来在App.js文件(新版RN将index.android.js及index.ios.js合二为一了)使用我们的store。
1 | import React, { Component } from 'react'; |
通过observableCountStore.data,在render里使用store里的数据。
通过observableCountStore.handleAdd()和observableCountStore.handleDec()两个方法来改变状态。
至此一个最最简单的Mobx例子完成。我们可以看到mobx以最直接的方式来管理我们的状态,即我们开始说的 mobx 关注的是状态仓库(store)到的状态(state)的问题。是不是比Redux简单太多了~=。=