(React) React配置Mobx&装饰器, Babel7

因为网上大多都是基于Babel6的,可是最近生成的新项目都是Babel7,试了网上一些方法都不行,只能靠自己了。。。所以爬完坑的总结如下:

链接地址:https://cn.mobx.js.org/best/decorators.html

一、项目配置

1.生成React项目:

create-react-app demo

 

2.使用eject命令

cd demo

yarn run eject

 

3.安装mobx mobx-react

yarn add mobx mobx-react

 

4.安装babel-plugin-transform-decorators-legacy

yarn add babel-plugin-transform-decorators-legacy -D

 

5.修改配置文件,在package.json babel中加入红色字即可:

"babel": {

"plugins": [

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

],

"presets": [

"react-app"

]

}

 

 

二、项目测试

1.src/index.js下新增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';

ReactDOM.render(<Provider><App/></Provider>, document.getElementById('root'));

// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.
// Learn more about service workers: https://bit.ly/CRA-PWA
serviceWorker.unregister();

 

2.新增Test类

import { observer } from 'mobx-react';
import { observable, action } from 'mobx';

class Test {
  @observable name = 'chenzhe'

  @action
  setName = () => {
    this.name = "haohaizi"
  }
}

export default Test

 

3.新增Banner组件

import React from 'react';
import Test from './Test';
import { observer } from 'mobx-react';

@observer
class Banner extends React.Component {

  constructor () {
    super();
    this.test = new Test();
    setTimeout(() => {
      this.test.setName();
    }, 1000);
  }

  render () {
    const { test } = this;
    return (
      <p>{test.name}</p>
    )
  }
}

export default Banner

 

4.修改App.js文件

import React from 'react';
import './App.css';
import Banner from './Banner';

function App() {
  return (
    <Banner></Banner>
  );
}

export default App;

 

三、运行

在项目根目录下运行yarn start,显示chenzhe后,一秒后显示haohaizi

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值