You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
import{composeWithDevTools}from'redux-devtools-extension/developmentOnly';// other code...conststore=createStore(rootReducer,composeWithDevTools(middlewareEnhancer));// other code...
一、React Developer Tools和Redux DevTools的使用思考
React Developer Tools、Redux DevTools 可以给开发人员在研发阶段调试程序带来极大的方便。
但是,很多人忽略了一点:上了生产环境后,把一些代码细节轻易让外部人员获取,并不是好事。
二、 禁止React Developer Tools
以下是实现的代码
禁止思路如下:
这样可以阻止devtools访问React上下文
window.__REACT_DEVTOOLS_GLOBAL_HOOK__
下挂载的方法,将其重置为空函数。windwo.__REACT_DEVTOOLS_GLOBAL_HOOK__
的,所以要进行安全防护。综合以上3点,就可以得出
disableReactDevTools
方法。另外,只在生产环境禁止,则需要读取
process.env.NODE_ENV
的值,进行判断。符合要求,则执行disableReactDevTools
方法。三、禁止Redux DevTools
Redux DevTools的作者做得比较全面,已经给出了标准的解决方案。
具体实现步骤如下:
'process.env.NODE_ENV': JSON.stringify('production')
redux-devtools-extension/developmentOnly
引入方法以下是我的项目代码片断:
四、不好的真实项目例子
腾讯云-华佗诊断分析系统
五、参考
[1] Flag to disable devtools
[2] Redux DevTools的README.md
The text was updated successfully, but these errors were encountered: