Mobx配置文档

学无止境,望君把握时间。

Mobx配置(装饰器):
1.创建项目:
cerate-react-app you name
2.进入项目
cd you name
3.进行配置文件抽离
yarn eject
4.安装mobx mobx-react
yarn add mobx mobx-react
5.配置装饰器(修饰器 es6 ) babel:

  yarn add babel-plugin-transform-decorators-legacy -D
  yarn add @babel/preset-env -D
  yarn add babel-plugin-transform-class-properties -D
  yarn add @babel/plugin-proposal-decorators -D

6.配置package.json:

"babel": {
 "plugins": [
   [
     "@babel/plugin-proposal-decorators",
     {
       "legacy": true
     }
   ],
   "transform-class-properties"
 ],
 "presets": [
   "react-app",
   "@babel/preset-env"
 ]
 },

注意;

  [
        "@babel/plugin-proposal-decorators",
        {
          "legacy": true
        }
      ],
      "transform-class-properties"

在项目中使用Mobx:

1.新建store目录:
src
store
  home
    index.js
  car 
    index.js
  index.js

2.在文件入口中使用Provider
  import store from './store'
  import { Provider } from 'mobx-react'
  举例:
  
   ReactDOM.render(
    <Provider store = {store}>
      <Show />
    </Provider>
  , document.getElementById('root'));
 3.那个组件使用,就在那个组件注入'inject'
 import {inject} from 'mobx-react'
 @inject('store')

4.打造mobx数据包:

import { observable, computed, action} from 'mobx'
class Home{
    @observable //监听age
      age = 18
    @computed //当数据发生改变,自动触发
      get doubelage (){
         return this.age *= 2
      }
    @action //用户操作,事件调用。
     increment() {
        this.props.store.home.age ++
        //数据请求
        fetch('data.josn')
         .then(res => res.json())
         .then(result => console.log(result))
         .catch(error => console.log(error))
     }
}
const home = new Home()
export default home
5.打造store
  store/index.js
import home from './home'
const store = {
   home
}
export default store
6.组件内使用数据
this.props.store.xxx可以拿到数据
注意:
1.this.porps里面没有找到 @action 装饰器定义的方法, 但是可以直接使用,
2.this会丢失
  this.props.store.home.increment.bind(this) 
3.在你要使用store的组件上记得做观察
import { observer } from 'mobx-react'

    @observer
    class Mine extends Component{
      
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值