redux-devtools是一個有趣而又高效的redux開發工具,若是你想直接在github上查看相關的內容,請前往這裏。事實上,也鼓勵你們養成在github上學習第一手資料的習慣。react

ok,首先,讓咱們來下載redux-devtools的相關資料git

$ npm install --save-dev redux-devtools redux-devtools-log-monitor redux-devtools-dock-monitor
  • redux-devtools:redux的開發工具包,並且DevTools支持自定義的 monitor 組件,因此咱們能夠徹底自定義一個咱們想要的 monitor 組件的UI展現風格,如下兩個是咱們示例中用到的。
  • redux-devtools-log-monitor: 這是Redux Devtools 默認的 monitor ,它能夠展現state 和 action 的一系列信息,並且咱們還能夠在monitor改變它們的值。
  • redux-devtools-dock-monitor:這monitor支持鍵盤的快捷鍵來輕鬆的改變tree view在瀏覽器中的展現位置,好比不斷的按‘ctrl + q’組合鍵能夠讓展現工具停靠在瀏覽器的上下左右不一樣的位置,按「ctrl+h」組合鍵則能夠控制展現工具在瀏覽器的顯示或隱藏的狀態。

接下來咱們在containers目錄新增一個DevTools.js文件,而且設置monitor。 代碼清單:demo-redux-devtools/containers/DevTools.jsgithub

import React from 'react';
import { createDevTools } from 'redux-devtools';
import LogMonitor from 'redux-devtools-log-monitor';
import DockMonitor from 'redux-devtools-dock-monitor';

export default createDevTools(
  <DockMonitor toggleVisibilityKey='ctrl-h'
               changePositionKey='ctrl-q'>
    <LogMonitor />
  </DockMonitor>
);

而後在index.js文件引入這個容器組件 代碼清單:demo-redux-devtools/index.jsnpm

import React from 'react'
import { render } from 'react-dom'
import { Provider } from 'react-redux'
import App from './containers/App'
import DevTools from './containers/DevTools'
import { createStore, compose } from 'redux';
import todoApp from './reducers'

// 把多個 store 加強器從右到左來組合起來,依次執行
// 這個地方徹底能夠不用compose,演示一下compose的使用
const enhancer = compose(
  DevTools.instrument()
);

let store = createStore(todoApp, enhancer)
let rootElement = document.getElementById('app')

render(
  <Provider store={store}>
    <div>
      <App />
      <DevTools />
    </div>
  </Provider>,
  rootElement
)

注意:在實際項目開發中時應該根據環境來肯定<DevTools />組件的展現與否,示例中是在開發環境的演示,直接放在Provider裏面。redux