extension.zip
จากรุ่นล่าสุด แตกไฟล์ เปิด chrome://extensions
url แล้วเปิดโหมดนักพัฒนาซอฟต์แวร์จากด้านซ้ายบน จากนั้นคลิก บน Load Unpacked
และเลือกโฟลเดอร์ที่แตกออกมาเพื่อใช้งานnpm i && npm run build:extension
และโหลดโฟลเดอร์ของส่วนขยาย ./build/extension
;npm i && npm start
และโหลดโฟลเดอร์ของส่วนขยาย ./dev
devnpm i && npm run build:firefox
และโหลดโฟลเดอร์ของส่วนขยาย ./build/firefox
(เพียงเลือกไฟล์จากภายใน dir)REDUX_DEVTOOLS
ใน electron-devtools-installer
remote-redux-devtools
โปรดทราบว่าตั้งแต่เวอร์ชัน 2.7 เป็นต้นไป
window.devToolsExtension
ถูกเปลี่ยนชื่อเป็นwindow.__REDUX_DEVTOOLS_EXTENSION__
/window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__
สำหรับร้านค้า Redux พื้นฐาน เพียงเพิ่ม:
const store = createStore(
reducer, /* preloadedState, */
+ window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
);
โปรดทราบว่าอาร์กิวเมนต์ preloadedState
เป็นทางเลือกใน createStore
ของ Redux
สำหรับแอปสากล ("isomorphic") ให้นำหน้าด้วย
typeof window !== 'undefined' &&
const composeEnhancers = ( typeof window !== 'undefined' && window . __REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ) || compose ;
สำหรับ TypeScript ให้ใช้แพ็คเกจ
redux-devtools-extension
npm ซึ่งมีคำจำกัดความทั้งหมด หรือเพียงแค่ใช้(window as any)
(ดูตัวอย่างสูตรอาหาร)
const composeEnhancers = ( window as any ) . __REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose ;
ในกรณีที่ ESLint ได้รับการกำหนดค่าให้ไม่อนุญาตให้ใช้ห้อยขีดล่าง ให้ล้อมดังนี้:
+ /* eslint-disable no-underscore-dangle */
const store = createStore(
reducer, /* preloadedState, */
window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
);
+ /* eslint-enable */
หมายเหตุ : การส่งผ่านตัวเพิ่มประสิทธิภาพเป็นอาร์กิวเมนต์สุดท้ายต้องใช้ redux@>=3.1.0 สำหรับเวอร์ชันเก่าให้ใช้ดังนี้ ที่นี่ หรือ ที่นี่ อย่าผสม Redux API เก่ากับอันใหม่
คุณไม่จำเป็นต้องติดตั้ง
redux-devtools
npm เมื่อใช้ส่วนขยาย (นั่นคือ lib อื่น)
หากคุณตั้งค่าร้านค้าของคุณด้วยมิดเดิลแวร์และเครื่องมือเพิ่มประสิทธิภาพ ให้เปลี่ยนแปลง:
import { createStore, applyMiddleware, compose } from 'redux';
+ const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
+ const store = createStore(reducer, /* preloadedState, */ composeEnhancers(
- const store = createStore(reducer, /* preloadedState, */ compose(
applyMiddleware(...middleware)
));
โปรดทราบว่าเมื่อไม่ได้ติดตั้งส่วนขยาย เรากำลังใช้การเขียน Redux ที่นี่
หากต้องการระบุตัวเลือกของส่วนขยาย ให้ใช้ดังนี้:
const composeEnhancers =
typeof window === 'object' &&
window . __REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ?
window . __REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ( {
// Specify extension’s options like name, actionsBlacklist, actionsCreators, serialize...
} ) : compose ;
const enhancer = composeEnhancers (
applyMiddleware ( ... middleware ) ,
// other store enhancers if any
) ;
const store = createStore ( reducer , enhancer ) ;
ดูโพสต์สำหรับรายละเอียดเพิ่มเติม
redux-devtools-extension
จาก npmเพื่อให้สิ่งต่าง ๆ ง่ายขึ้น มีแพ็คเกจ npm ที่จะติดตั้ง:
npm install --save redux-devtools-extension
และใช้เช่นนั้น:
import { createStore , applyMiddleware } from 'redux' ;
import { composeWithDevTools } from 'redux-devtools-extension' ;
const store = createStore ( reducer , composeWithDevTools (
applyMiddleware ( ... middleware ) ,
// other store enhancers if any
) ) ;
หากต้องการระบุตัวเลือกของส่วนขยาย:
import { createStore , applyMiddleware } from 'redux' ;
import { composeWithDevTools } from 'redux-devtools-extension' ;
const composeEnhancers = composeWithDevTools ( {
// Specify name here, actionsBlacklist, actionsCreators and other options if needed
} ) ;
const store = createStore ( reducer , /* preloadedState, */ composeEnhancers (
applyMiddleware ( ... middleware ) ,
// other store enhancers if any
) ) ;
มีโค้ดเพียงไม่กี่บรรทัดที่เพิ่มลงในบันเดิลของคุณ
ในกรณีที่คุณไม่ได้รวมเครื่องมือเพิ่มประสิทธิภาพและมิดเดิลแวร์อื่น ๆ เพียงใช้ devToolsEnhancer
:
import { createStore } from 'redux' ;
import { devToolsEnhancer } from 'redux-devtools-extension' ;
const store = createStore ( reducer , /* preloadedState, */ devToolsEnhancer (
// Specify name here, actionsBlacklist, actionsCreators and other options if needed
) ) ;
การรวมส่วนขยายไว้ในการใช้งานจริงก็มีประโยชน์เช่นกัน โดยปกติแล้วคุณสามารถใช้เพื่อการพัฒนาได้
หากคุณต้องการจำกัดไว้ตรงนั้น ให้ใช้ redux-devtools-extension/logOnlyInProduction
:
import { createStore } from 'redux' ;
import { devToolsEnhancer } from 'redux-devtools-extension/logOnlyInProduction' ;
const store = createStore ( reducer , /* preloadedState, */ devToolsEnhancer (
// options like actionSanitizer, stateSanitizer
) ) ;
หรือด้วยมิดเดิลแวร์และเครื่องมือเพิ่มประสิทธิภาพ:
import { createStore , applyMiddleware } from 'redux' ;
import { composeWithDevTools } from 'redux-devtools-extension/logOnlyInProduction' ;
const composeEnhancers = composeWithDevTools ( {
// options like actionSanitizer, stateSanitizer
} ) ;
const store = createStore ( reducer , /* preloadedState, */ composeEnhancers (
applyMiddleware ( ... middleware ) ,
// other store enhancers if any
) ) ;
คุณจะต้องเพิ่ม
'process.env.NODE_ENV': JSON.stringify('production')
ในการกำหนดค่า Webpack ของคุณสำหรับชุดการผลิต (เพื่อยืนยัน) หากคุณใช้create-react-app
มันทำเพื่อคุณแล้ว
หากคุณกำลังตรวจสอบ process.env.NODE_ENV
อยู่แล้วเมื่อสร้างร้านค้า ให้รวม redux-devtools-extension/logOnly
สำหรับสภาพแวดล้อมการใช้งานจริง
หากคุณไม่ต้องการอนุญาตส่วนขยายในการใช้งานจริง เพียงใช้ redux-devtools-extension/developmentOnly
ดูบทความสำหรับรายละเอียดเพิ่มเติม
สำหรับ React Native เราสามารถใช้ react-native-debugger
ซึ่งมี API เดียวกันกับ Redux DevTools Extension อยู่แล้ว
สำหรับแพลตฟอร์มส่วนใหญ่ ให้รวมตัวเพิ่มประสิทธิภาพร้านค้าของ Remote Redux DevTools
และจากเมนูบริบทของส่วนขยาย ให้เลือก 'เปิด Remote DevTools' สำหรับการตรวจสอบระยะไกล
ดูการบูรณาการและโพสต์บนบล็อกสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการใช้ส่วนขยายกับสถาปัตยกรรมใดๆ
การสาธิตสดเพื่อใช้ส่วนขยายกับ:
ดูโฟลเดอร์ . ./examples
ด้วย
สนับสนุนเราด้วยการบริจาครายเดือนและช่วยเราดำเนินกิจกรรมของเราต่อไป [มาเป็นผู้สนับสนุน]
ร่วมเป็นผู้สนับสนุนและรับโลโก้ของคุณบน README บน Github พร้อมลิงก์ไปยังเว็บไซต์ของคุณ [มาเป็นสปอนเซอร์]
เอ็มไอที
หากคุณชอบสิ่งนี้ ติดตาม @mdiordiev บน Twitter