我看到有人使用 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 约定?
谢谢。
我有一个反应应用程序。在我的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
?或者我错过了什么...
谢谢