在hooks中使用Mobx

如果你的项目用了Mobx,部分又用到了Hooks

官方提供的文档在这里:https://github.com/mobxjs/mob... 不喜欢看英文的看我这里吧~

  1. 创建store
import { action, observable } from 'mobx';

class Store {
    @observable
    count = 1;
    
    @action
    setCount = () => {
        this.count++;
    }
}
export const store = new Store();
  1. 注入store,这样既可以在class中使用,也可以在hooks中使用了
// 注入store
import { Provider } from 'mobx-react';
import {store} from './store';


  
  1. 在class中使用

import React, { Component } from 'react';
import { inject, observer } from 'mobx-react';

@inject('scope')
@observer
class Demo1 extends Component { 
    render() {
        return 
{this.props.count}
} }
  1. 在hooks中使用

import React from 'react';
import { useObserver, Observer, useLocalStore } from 'mobx-react';
import {store } from './store';

// 方法1
function Demo2() { 
    const localStore = useLocalStore(() => store);
    return useObserver(() => 
{localStore.count}
) } // 方法2,更新Observer包裹的位置,注意这里包裹的必须是一个函数 function Demo3() { const localStore = useLocalStore(() => store); return {() => {localStore.count}} }

好了,放心的把 Mobx+Hooks 加入到自己的项目中去吧~

你可能感兴趣的:(前端,react.js,hooks,mobx)