小编Ste*_*Bob的帖子

React Hooks - 0 vs. 空数组作为 useEffect 中的第二个参数

我看到有人使用 0 而不是空数组作为 useEffect 中的第二个参数。

所以代替

useEffect(() => {
    console.log('Run once');
}, []);
Run Code Online (Sandbox Code Playgroud)

它是

useEffect(() => {
    console.log('Run once');
}, 0);
Run Code Online (Sandbox Code Playgroud)

它似乎具有相同的效果,所以我想知道他为什么使用它?

根据您的评估方式,空数组被视为 0。例如[] == 0是真的,但是[] === 0是假的。所以也许在这种情况下,引擎盖下没有严格的比较,如果使用 0 也没有关系。

只是按照反应文档我会使用一个空数组。

反应文档

如果您只想运行效果并仅将其清理一次(在装载和卸载时),您可以传递一个空数组 ([]) 作为第二个参数。这告诉 React 你的 effect 不依赖于来自 props 或 state 的任何值,所以它永远不需要重新运行。这不是作为特殊情况处理的——它直接遵循依赖项数组的工作方式。

我想知道0使用 over是否是一个可能更简洁的二进制参数[],或者 using0是否是一种不好的做法,或者它是否无关紧要并且[]只是首选的 React 约定?

谢谢。

javascript reactjs use-effect

10
推荐指数
1
解决办法
3666
查看次数

React-scripts 将文件构建到“build”文件夹中,该文件夹与“public”不同的文件夹

我有一个反应应用程序。在我的package.json

"build": "react-scripts build",
Run Code Online (Sandbox Code Playgroud)

运行此构建脚本后:

npm run build
Run Code Online (Sandbox Code Playgroud)

所有内容都内置到该build文件夹​​中,并且该文件夹中的所有文件public都会按原样复制到该文件夹​​的根目录build(未缩小为块)。因此,我想要复制而不更改的任何静态文件都可以放入该public文件夹中。

我想复制一个文件,就好像它在该public文件夹中一样,但来自不同的文件夹,例如/src/files/config.js

最好的方法是什么?是否类似于将 a 添加webpack.config.js到我的应用程序的根目录并具有用于发送这样的文件的自定义配置?或者也许只是以某种方式快速修改 npm 脚本package.json?或者我错过了什么...

谢谢

node.js npm reactjs webpack react-scripts

5
推荐指数
1
解决办法
7293
查看次数

标签 统计

reactjs ×2

javascript ×1

node.js ×1

npm ×1

react-scripts ×1

use-effect ×1

webpack ×1