从使用ReactJS的prop validation feature开始,正如文档所说,出于性能原因,它只能在“开发模式”下工作。

React似乎正在验证我注释的特定组件的属性,但我不记得显式打开“开发模式”。

我尝试搜索如何触发/切换开发模式,但是没有任何运气。

最佳答案

另一个答案是假设您使用的是来自React的外部预构建文件,并且正确地说,这不是大多数人打算使用或作为包使用React的方式。而且,在这一点上,大多数每个React库和包都还依赖相同的约定来在生产期间关闭开发人员时间助手。仅使用缩小的反应,所有这些潜在的优化也会留在桌面上。
最终,魔术归结为React在整个代码库中嵌入对process.env.NODE_ENV的引用;这些就像功能切换一样。

if (process.env.NODE_ENV !== "production")
  // do propType checks
上面是最常见的模式,其他库也遵循它。因此,要“禁用”这些检查,我们需要将NODE_ENV切换为"production"禁用“开发模式”的正确方法是通过选择的 bundle 程序。
网络包
像这样在您的webpack配置中使用 DefinePlugin :
new webpack.DefinePlugin({
  "process.env.NODE_ENV": JSON.stringify("production")
})
浏览器
使用Envify转换,并使用NODE_ENV=production(在Windows上为"set NODE_ENV=production")运行browserify构建步骤
结果
这将产生输出 bundle ,其中所有process.env.NODE_ENV实例都替换为字符串文字:"production"奖金
最小化转换后的代码时,您可以利用“消除死代码”的优势。 DCE是Minifier足够聪明地认识到的:"production" !== "production"始终为false,因此只要删除if块中的任何代码即可为您节省字节。

关于reactjs - 如何打开/关闭ReactJS 'development mode'?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22118915/

10-11 19:52