React專案中使用Mobx狀態管理(二)

2022-05-06 02:54:12 字數 1693 閱讀 8102

並上一節使用的是普通的資料狀態管理,不過官方推薦使用裝飾器模式,而在預設的react專案中是不支援裝飾器的,需要手動啟用。

官方參考

一、新增配置

官方提供了四種方法, 

方法一、使用typescript,顧名思義該方法是專案使用typescript時的配置

方法二、使用babel-preset-mobx, 安裝並新增到.babelrc配置中,該方法需要公升級一些依賴, 

babel-core -> @/babel-core 7.x

babel-loader -> @/babel-loader 8.x

babel-preset-env -> @/babel-preset-env

babel-preset-react -> @babel-preset-react

同時需要修改.babelrc配置,相當麻煩

方法三、使用babel-plugin-transform-decorators-legacy, 安裝並新增到.babelrc即可, 但需要注意的是必須將其放在其他外掛程式之前。

1. 使用eject時 ($ npm run eject),是將專案的配置檔案全部暴露出來,注意該操作不可逆,然後再使用方法二或者方法三進行配置23

/*config-overrides.js

*/4 module.exports = function

override(config, env)

綜合以上方法,顯而易見方法三最簡單而且不易出錯。

二、修改業務**

1. 根元件不變

1 import react from 'react';

3 import todo from "./components/todo";

45 export default

6render()

13 }

2 . 修改store

1 import  from 'mobx'

2// 常量改成類

34 @observable timer = 056

@action

7resettimer()

1011

@action.bound

12increase() 16}

17 // 將類例項化,後再暴露, 也可以先導出再在元件使用時再例項化

203 . 修改子元件,(將observer改成@observer放在類的前面即可)

1 import react, from 'react';

2 import from 'mobx-react';34

//裝飾器方式@

5@observer

6class todolist extends component

11//

該繫結方式屬於es7,需要新增預設babel-preset-stage-2

12 _resettimer = ()=>

15 _increase = () =>

1819

render() >復位

25this._increase}>增加

2627

);28}29

}3031//

直接匯出類元件

32 export default todolist;

修改完畢,專案正常執行。

React專案中使用Mobx狀態管理(一)

1 安裝 1 yarn add mobx mobx react 2 新建store index.js,存放資料 以下思路僅限於父子元件的簡單應用 1 import from mobx 2 觀察器 狀態 4 timer 1005 方法8 9 方法 11 console.log increase 13 ...

在專案中使用react

1.執行 cnpm install react react dom s react安裝包 專門用於建立元件和虛擬dom的,同時元件的生命週期都在這個包中 react dom安裝包 專門進行dom操作的,最主要的應用場景就是reactdom.render 2.在index.html頁面中建立容器 di...

react專案中使用plop

第一步,安裝依賴 npm install plop dev 或者用yarn yarn add plop dev 第二步,在package同級目錄下新建plopfile.js 這是plop的入口檔案,需要匯出乙個函式,此函式接受乙個plop物件,用於建立生成器任務 1 module.exports p...