如果在 React 函数组件上方或内部声明常量,会发生什么变化?

问题描述 投票:0回答:1

我的问题是,如果您在 React 函数组件(或类组件)上方或内部声明一个常量,会发生什么变化? 例如,如果我这样做有什么区别:

const myName = "Olivier";
const myReactComponent = () => {
  const whatsMyName = (name) => console.log(name);
  whatsMyName(myName);
  return <div></div>;
};

const myReactComponent = () => {
  const myName = "Olivier";

  const whatsMyName = (name) => console.log(name);
  whatsMyName(myName);
  return <div></div>;
};

如果有人可以向我解释其中的区别,那就太好了! 又例如,我可以将上面的

whatsMyName
函数也移动吗? 我的猜测是它与反应生命周期有关。

reactjs variables components declaration react-lifecycle
1个回答
3
投票

主要区别在于重新渲染。

在组件外部设置的变量不会触发重新渲染,而在组件内部设置的变量则会触发重新渲染。

一般来说,由于这个原因,您不会在组件内部设置常量...如果您有一个常量,请将其放入常量文件中并根据需要调用 - 这样您就不会出现任何意外的重新渲染。

如果您需要更新变量,请使用

useState
钩子来管理它:

const [name, setName] = useState('Tom');

当您使用

name
更新
setName('New Name')
时,它将触发重新渲染。

© www.soinside.com 2019 - 2024. All rights reserved.