mobx在react hooks中的應用方式
更新時間:2023年10月13日 09:17:38 作者:Ctrl30xsx
這篇文章主要介紹了mobx在react hooks中的應用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
mobx在react hooks的應用
hooks 實現(xiàn)inject功能
// utils/useStores.js
import React from 'react'
import { MobXProviderContext} from 'mobx-react';
import RootStore from '~/stores/index'
const useStores = (name) => React.useContext(MobXProviderContext)[name]
export default useStores局部的store
// store.js
import { observable, action } from 'mobx';
class Store {
@observable userInfo = { name: 'xsx' };
@observable count = 11;
@action
handleClick() {
this.count +=1;
}
}
export default Store;頁面中使用
import React, { ReactElement } from 'react';
import Store from './store.ts';
import useStores from '~/utils/useStores';
import { useObserver, useObservable } from 'mobx-react-lite';
interface Props {
[props: string]: any;
}
export default function index(props: any): ReactElement {
// 手動傳入字符串,選擇要使用的內容 該處為全局store的引用,與之前的class下的@inject('userStore')同理
const globalStore = useStores('userStore');
// 添加觀察者模式 該處為局部的store 與之前class下的 let myStore = new Store(); 同理
let myStore = useObservable(new Store());
return useObserver(() => (
<div>
{myStore.count}
====================
{store.count}
<button
onClick={() => {
myStore.handleClick();
globalStore .handleClick();
}}
>
add
</button>
</div>
));
}mobx與react hooks配合使用
import React from 'react';
import {useObserver, Observer, observer} from 'mobx-react';
import {appStore} from './appStore';
// 方法1:
function Methods1() {
return useObserver(() => (
<div onClick={() => {appStore.count = 1}}>{appStore.count}</div>
))
}
// 方法2(Observer一定要用函數(shù)):
function Methods2 () {
return (
<Observer>
{() => <div onClick={() => {appStore.count = 1}}>{appStore.count}</div>}
</Observer>
)
}
// 方法3(推薦):
export default observer(props => {
return <div onClick={() => {appStore.count = 1}}>{appStore.count}</div>
})
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
react-three-fiber實現(xiàn)炫酷3D粒子效果首頁
這篇文章主要介紹了react-three-fiber實現(xiàn)3D粒子效果,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08
react清空ant.design中表單內容的方法實現(xiàn)
本文主要介紹了react清空ant.design中表單內容的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-12-12
React Native使用fetch實現(xiàn)圖片上傳的示例代碼
本篇文章主要介紹了React Native使用fetch實現(xiàn)圖片上傳的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03
詳解使用create-react-app快速構建React開發(fā)環(huán)境
這篇文章主要介紹了詳解使用create-react-app快速構建React開發(fā)環(huán)境,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05

