当前位置:
首页 >
React中的状态管理---Mobx
发布时间:2024/4/13
51
豆豆
生活随笔
收集整理的这篇文章主要介绍了
React中的状态管理---Mobx
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
Mobx的介绍
Mobx是一个功能强大,上手非常容易的状态管理工具。redux的作者也曾经向大家推荐过它,在不少情况下可以使用Mobx来替代掉redux。
Mobx流程图Mobx使用流程
创建项目
npx create-react-app mobx复制代码进入项目
cd mobx复制代码项目抽离
yarn eject复制代码安装mobx mobx-react
yarn add mobx mobx-react复制代码 注意: 如果git冲突解决: 我们要原操作先放到本地暂存盘git add .git commit -m '安装mobx mobx-react'注意不要git push配置装饰器(修饰器 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复制代码配置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应该怎么用?
新建store目录
src下建立
srcstorehomeindex.jscar index.jsindex.js以这种结构建立文件和目录
在主入口文件中 使用 Provider
import store from './store'import { Provider } from 'mobx-react'ReactDOM.render(<Provider store = { store }><App /></Provider> , document.getElementById('root'));复制代码打造mobx 数据包
import {observable, computed,action} from 'mobx'class Home {@observable //监听 ageage = 18@computed //当age发生改变时, 自动触发get doubleAge(){return this.age *= 2}@action // 用户操作 事件调用increment(){this.props.store.home.age ++ console.log( this.props.store.home.age )//数据请求fetch('/data/data.json').then(res => res.json()).then( result => console.log( result )).catch( error => console.log( error ))}}const home = new Home()export default home复制代码打造store
store/index.js
import home from './home'const store = {//实例home}export default store复制代码组件内使用数据
this.props.store.xxx 可以拿到数据
注意:
在你要使用store的组件上记得做观察
import React,{ Component,Fragment } from 'react' import { inject,observer } from 'mobx-react'@inject('store') @observer class Count extends Component {constructor ( props ) {super( props )props.store.count.change = props.store.count.change.bind( this )//this丢失的解决}increment = () => {console.log( 'mine' )this.props.store.count.change()}render () {return (<Fragment><button onClick = { this.increment }>点我+</button><p>count:{ this.props.store.count.count} </p></Fragment>)} }export default Count复制代码总结
以上是生活随笔为你收集整理的React中的状态管理---Mobx的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 云转型缓慢并不甲骨文在中国区大裁员的唯一
- 下一篇: 分析工厂模式中的问题并改造