我在使用 React 16.3 作为 UI 库的 Meteor 应用程序中使用以下代码。
这window.__ALLOW_REACT_DEVTOOLS__
只是我在从服务器发送的 SSR html 中设置的一个标志,因为这行代码需要排除任何 React 代码,并且process.env
在浏览器中可用之前我需要它。在服务器上,我在生产中将该值设置为 false。
<script>
if (
!window.__ALLOW_REACT_DEVTOOLS__ &&
window.__REACT_DEVTOOLS_GLOBAL_HOOK__ &&
typeof window.__REACT_DEVTOOLS_GLOBAL_HOOK__ === "object"
) {
for (let [key, value] of Object.entries(window.__REACT_DEVTOOLS_GLOBAL_HOOK__)) {
window.__REACT_DEVTOOLS_GLOBAL_HOOK__[key] = typeof value == "function" ? ()=>{} : null;
}
}
delete window.__ALLOW_REACT_DEVTOOLS__;
</script>
完成这项工作的关键是它是在 React 之前加载的。
这将完全禁用 React-Devtools。当您单击 devtools 选项卡时,它只会说'寻找 React...'。