标签:exp ora class 商品列表 crt RKE 怎么 export serve
react有几种状态管理器,今天先来整理一下mobx状态管理器,首先了解一下什么是mobx
可以干嘛:
cnpm i @babel/plugin-proposal-decorators --save
2、配置package.json文件,可以crtl + f查找babel。
"babel": {
    "presets": [
      "react-app"
    ],
    // ++++++++++++++++++++
    "plugins": [
      [
        "@babel/plugin-proposal-decorators",
        {
          "legacy": true
        }
      ]
    ]
  }
3、安装依赖
cnpm i mobx mobx-react -S
4、在项目的src文件夹下创建store/index.js,我在这里以获取商品列表数据为例
// 引入分模块
import HomeStore from ‘./home‘;
// 创建仓库
class Store {
  constructor () {
    this.home = new HomeStore(this);
  }
}
export default new Store();
5、创建组件 分模块 store/home.js
import { observable, action } from ‘mobx‘;
class HomeStore {
  constructor (store) {
    this.store = store
    this.getProlist = this.getProlist.bind(this);
  }
  // 初始的状态
  @observable prolist = [1, 2, 3]
  // 函数
  @action
  getProlist () {
    // 异步操作,我在这里就不去请求接口了,自己模拟一下
    this.prolist = [4, 5, 6]
  }
}
export default HomeStore;
6、在入口文件index.js中引入store,并引入Provider监控状态是否改变
import React from ‘react‘;
import ReactDOM from ‘react-dom‘;
import ‘./index.css‘;
import App from ‘./App‘;
import * as serviceWorker from ‘./serviceWorker‘;
import { Provider } from ‘mobx-react‘; // 引入Provider
import store from ‘./store‘; // 引入store
ReactDOM.render(
<Provider store = { store }> // 传参
  <App />
</Provider>, 
document.getElementById(‘root‘));
serviceWorker.unregister();
7、创建组件views/home/index.jsx
import React, { Component } from ‘react‘;
import { observer, inject } from ‘mobx-react‘;
// 依赖注入 + 观察者
@inject(‘store‘)
@observer
class Com extends Component {
  // 获取状态 this.props.store.home.prolist
  // 获取函数 this.props.store.home.getProlist
  render () {
    let { store: { home: { prolist, getProlist }}} = this.props
    return (
      <div>
        <button onClick={ () => {
          getProlist()
        }}>change</button>
        {
          prolist.map((item, index) => {
            return <p key={ index }>{item}</p>
          })
        }
      </div>
    )
  }
}
export default Com;
如此,就实现了mobx状态管理器了。
标签:exp ora class 商品列表 crt RKE 怎么 export serve
原文地址:https://www.cnblogs.com/mengshou/p/11914584.html