mobx操作详解

Posted 老张在线敲代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mobx操作详解相关的知识,希望对你有一定的参考价值。

在操作mobx之前首先你得先了解一下mobx是用来干嘛的

mobx官网:`https://cn.mobx.js.org/`

其次拥有自己得一个react-mobx项目(前几天发了一次项目创建流程)

1.src/创建store.js用来存放数据

import { observable, computed, action, autorun, runInAction } from "mobx";
// import {observable, computed, action} from 'mobx';
// @observable
// 等同于 this.state 可以被读取也可以被修改
// @observer
// 等同于 view 页面中
// 主要是为了让页面变成响应式,能进行读取和操作 store
// @action
// 等同于 this.setState 修改
class Store {
  @observable tradeCfg = {
    sadf: "sadf",
  };
  @observable baseInfo = {};
  @observable callback = null;
  @observable token = [
    {
      id: 1,
      name: "YD",
    },
    {
      id: 2,
      name: "ETH",
    },
  ];
}

export default Store;

2.在Router.js入口中引入并注入数据

import NewStore from "./store/store";
const stores = {
  first: new FirstStore(),
  //可以有多个
};

注入数据

 <BrowserRouter>
    {/* 根入口注入数据 */}
    <Provider {...stores}>
      {/* {...store}等同于stores={stores} */}
      <App />
    </Provider>
  </BrowserRouter>

3.src/views/创建first文件/index.jsx

import React, { Component } from "react";
import { withRouter, NavLink } from "react-router-dom";
import { observer, inject } from "mobx-react";
@withRoute //更新数据
@inject('first')//接收数据
@observer 让页面变成响应式
class view extends Component.....

4.在App.js中更改路由配置

引入
const First = lazy(() => import("./views/first"));
 render() {
    return (
      <Suspense fallback={<div>Loading...</div>}>
        <Switch>
          {/* route使用 */}
          <Route exact path="/" component={First} />
          {/*exact 精准匹配 */}
          <Redirect to="/" />
          {/* redirect里面写的相当于404  非法url*/}
        </Switch>
      </Suspense>
    );
  }

以上是关于mobx操作详解的主要内容,如果未能解决你的问题,请参考以下文章

jQuery的DOM操作

线段树详解

20160206.CCPP体系详解(0016天)

用 mobx 反应 Sortable JS

20160206.CCPP体系详解(0016天)

(转) Java中的负数及基本类型的转型详解