Redux-devTools簡單的使用

Introducing

redux-devtools 是一個(gè)非常棒的工具,它可以讓你實(shí)時(shí)的監(jiān)控Redux的狀態(tài)樹的Store

Installation

npm install --save-dev redux-devtools
npm install --save-dev redux-devtools-log-monitor
npm install --save-dev redux-devtools-dock-monitor

Usege

創(chuàng)建DevTools組件

在你的App項(xiàng)目中,通過“Monitor(監(jiān)視顯示)”用createDevTools創(chuàng)建一個(gè)DevTools組件。示例用了最常用,最簡單的LogMonitorDockMonitor

containers/DevTools.js

import React from 'react'

//從redux-devtools中引入createDevTools
import { createDevTools } from 'redux-devtools';

//顯示包是單獨(dú)的,要額外指定
import LogMonitor from 'redux-devtools-log-monitor';
import DockMonitor from 'redux-devtools-dock-monitor';

//創(chuàng)建DevTools組件
const DevTools = createDevTools(
  <DockMonitor toggleVisibilityKey='ctrl-h'
               changePositionKey  ='ctrl-q'>
    <LogMonitor theme='tomorrow' />
  </DockMonitor>
);

export default DevTools

DevTools.instrument()通過redux的compose來擴(kuò)展store

createDevTools()創(chuàng)建的DevTools組件有個(gè)特殊的靜態(tài)方法instrument(),它返回一個(gè)store的增強(qiáng)器,在開發(fā)中你需要在compose中使用。注意DevTools.instrument()要放在applyMiddleware后,因?yàn)槟愕?code>applyMiddleware可以存在異步行為,為了確保所有的actions顯示在store中,所以要放在后面

store/create.js

import {createStore,applyMiddleware,compose} from 'redux'
import rootReducer from './modules/reducers'

import thunk from './middleware/thunk'
import DevTools from '../containers/DevTools'

const enhancer = compose(
  //你要使用的中間件,放在前面
  applyMiddleware(thunk),
  //必須的!啟用帶有monitors(監(jiān)視顯示)的DevTools
  DevTools.instrument()
)

export default function createStoreWithMiddleware(initialState){
  //注意:僅僅只有redux>=3.1.0支持第三個(gè)參數(shù)
  const store = createStore(rootReducer,initialState,enhancer)
  return store
}

Render <DevTools /> in your App

import React from 'react';
import { render } from 'react-dom';
import { Provider } from 'react-redux';
import configureStore from './store/configureStore';
import TodoApp from './components/Counter';

//注意,不要直接這樣做,要區(qū)分開發(fā)環(huán)境和生產(chǎn)環(huán)境
import DevTools from './containers/DevTools';

const store = configureStore();

render(
  <Provider store={store}>
    <div>
      <Counter />
      <DevTools />
    </div>
  </Provider>
  document.getElementById('app')
);

參考文檔:redux-devTools

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 本文 有配套視頻,可以酌情觀看。 文中內(nèi)容因各人理解不同,可能會(huì)有所偏差,歡迎朋友們聯(lián)系我討論。 文中所有內(nèi)...
    珍此良辰閱讀 12,191評論 23 111
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,036評論 25 709
  • 學(xué)習(xí)必備要點(diǎn): 首先弄明白,Redux在使用React開發(fā)應(yīng)用時(shí),起到什么作用——狀態(tài)集中管理 弄清楚Redux是...
    賀賀v5閱讀 9,069評論 10 58
  • 看到這篇文章build an image gallery using redux saga,覺得寫的不錯(cuò),長短也適...
    smartphp閱讀 6,336評論 1 29
  • 對那些非常努力學(xué)習(xí)的高中生,但成績很難提高的同學(xué),特別是來自農(nóng)村的學(xué)生,我非常同情,我也是其中的一位,明白...
    殘花累累閱讀 297評論 0 0

友情鏈接更多精彩內(nèi)容