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

React似乎在验证我注释过的特定组件的属性,但我不记得明确地打开了"开发模式".

我试图寻找如何触发/切换开发模式,但没有任何运气.

推荐答案

另一个答案假设您使用的是react的外部预构建文件,虽然正确,但大多数人不会将react作为一个包来使用.此外,在这一点上,大多数React库和包also都依赖于相同的约定,在生产过程中关闭开发时间助手.只需使用缩小的react,就可以将所有潜在的优化都留在桌面上.

最终,神奇之处在于在整个代码库中嵌入process.env.NODE_ENV个引用;这些功能就像一个功能切换.

if (process.env.NODE_ENV !== "production")
  // do propType checks

以上是最常见的模式,其他库也遵循这种模式.所以要"禁用"这些判断,我们需要将NODE_ENV切换到"production"

禁用"开发模式"的正确方法是通过您 Select 的绑定器.

网页包

在你的网页配置中使用DefinePlugin,如下所示:

new 网页包.DefinePlugin({
  "process.env.NODE_ENV": JSON.stringify("production")
})

Browserify

使用Envify转换并使用NODE_ENV=production(Windows上为"set NODE_ENV=production")运行browserify生成步骤

后果

这将生成输出包,其中process.env.NODE_ENV的所有实例都替换为字符串literal:"production"

prize

缩小转换后的代码时,可以利用"死代码消除".DCE是指minifier足够聪明,能够意识到:"production" !== "production"always false,因此只需删除if块中的任何代码即可节省字节.

Reactjs相关问答推荐

当我在React中使用类方法更新模型的状态时,它在严格模式下触发两次

Redux向后端发送请求时出现钩子问题

react 副作用循环

Redux Provider Stuck甚至彻底遵循了文档

Reaction-路由v6动态路径RegExp

如何在单击行中的图标时避免选中ionic 复选框?

同一文件中前端和后端的Nginx配置

为什么我得不到我想要的数据?

useState导致对函数的无休止调用

无法在 NextJS 中获取嵌套对象

useEffect 和 ReactStrictMode

Next.js 和理智 | npm run build 时预渲染页面/时发生错误

使用带有搜索字符串的全局过滤器时如何在 React-Table 中进行精确匹配?

在复选框中react 检索选中的值

当从数组中删除数据时,UseEffect 不会重新渲染,仅在添加数据时才会重新渲染

自动重新获取不起作用 - RTK 查询

将 Material UI 菜单渲染为

使用 useRef(uuid()) 的目的是什么?

React - useParams() 不会失败 null / undefined 判断

调用函数以获取数据并在数据到达时导航到链接