比如test并不需要显示在页面 但是在组件App中会用到,是不是定义在App组件外部比较好,这样可以减少App组件渲染次数,而count是状态所以通过useState定义在函数内部?
let test = 1;
// App组件
const App = () => {
const [count, setCount] = useState(0)
return (
<span>{count}</span>
)
}
比如test并不需要显示在页面 但是在组件App中会用到,是不是定义在App组件外部比较好,这样可以减少App组件渲染次数,而count是状态所以通过useState定义在函数内部?
let test = 1;
// App组件
const App = () => {
const [count, setCount] = useState(0)
return (
<span>{count}</span>
)
}
换个角度考虑,实际向上追溯作用域链也是有性能浪费的,所以并不一定就比写在里面会更好。简单的变量,也没其他什么复用,就放里面吧。
毕竟大头是要控制的是渲染次数,少一次渲染就抵得过这些消耗了
10 回答11.1k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
4 回答2.4k 阅读✓ 已解决
其实变量是否影响性能,不是看它的值或者它所引用的值是否会被渲染到页面里,因为有很多数据都需要渲染,多来点数据,影响不大。
能影响性能的参数会有如下特征中的一个或多个:
不管是上面的哪一种,都有两个共性:1. 会影响渲染; 2. 会变化。实际上。任何具备这两个共性的参数,不管放到哪里,都有影响性能的潜力;反之,只要不具备其中任何一条,都 可以 (而不是一定)不放进
state
。那么,什么样的数据适合独立到
state
之外来维护呢?两种情况:salt
,它的取值不会影响渲染。