当前位置: 首页 > 面试题库 >

惰性初始状态-什么是什么以及在哪里使用?

梅耘豪
2023-03-14
问题内容

我是新来回应胡克斯!我正在尝试在我的代码中使用useState。当我使用它时,我发现了一个术语“惰性初始状态”

https://reactjs.org/docs/hooks-
reference.html

const [state, setState] = useState(() => {
  const initialState = someExpensiveComputation(props);
  return initialState;
});

但是我无法想到任何useCase都可以在这种懒惰的状态初始化中发挥作用!

就像说我的DOM正在渲染并且它需要 状态 值,但是我的useState尚未初始化它!并说如果您已经渲染了DOM并且 useState
ExpensiveComputation
已经完成,那么DOM将重新渲染!

任何帮助将是有用的!


问题答案:

传递给的参数useStateinitialState,该值将在第一个渲染中初始化您的状态,而在后续渲染中将忽略该值。但是想象一下以下情况

const Component = () =>{
    const [state, setState] = useState(getInitialHundredItems())
}

想象一下,不需要每次渲染就调用此方法(请记住,即使在下一次渲染时忽略了初始值,仍会调用初始化它的函数)。

对于像这样的用例,您不仅可以传递一个function返回初始状态的值,还可以传递一个返回初始状态的值,该函数将仅执行一次(初始渲染),而不是像上面的代码那样在每个渲染上执行

const Component = () =>{
    const [state, setState] = useState(() => getInitialHundredItems())
}


 类似资料:
  • 我是新来的反应钩!我正试图在我的代码中使用useState。当我使用它的时候,我发现了一个术语“惰性初始状态” https://reactjs.org/docs/hooks-reference.html 但是我想不出这种惰性状态初始化有什么用处! 就像say am我的DOM正在呈现并且它需要状态值,但是我的useState还没有初始化它!!并且说,如果您已经呈现了DOM,并且Ustate Expe

  • 问题内容: 我是数据库编程的新手,我想知道索引的负面影响是什么?据我了解,索引加快了必须在数据库中搜索特定值(例如SELECT)的操作。 考虑以下示例: 对于table (在column上具有索引),操作: 作为索引的结果将更快。 我的问题是:使用索引有什么弊端?如果索引只是给我们带来好处(提高性能),为什么不将它们设置为默认值呢? 问题答案: 好吧,您可能可以填写有关索引的书,但总之,在创建索引

  • 本文向大家介绍什么是幂等性(Idempotence)及用在那里?相关面试题,主要包含被问及什么是幂等性(Idempotence)及用在那里?时的应答技巧和注意事项,需要的朋友参考一下 幂等性是能够以同样的方式做两次,而最终结果将保持不变,就好像它只做了一次的特性。 用法:在远程服务或数据源中使用幂等性,以便当它多次接收指令时,只处理一次。

  • 问题内容: 我们可以将代码放入构造函数或方法或初始化块中。初始化块有什么用?每个Java程序都必须有它吗? 问题答案: 首先,有两种类型的初始化块: 实例初始化块,以及 静态初始化块。 此代码应说明它们的用法以及执行顺序: 印刷品: 如果要运行某些代码而不管使用哪个构造函数,或者想要对匿名类进行一些实例初始化,则实例迭代块很有用。

  • 有人能用一个真实的例子来帮助我理解React中的状态吗?

  • 为什么x没有在下面初始化? 平均而言,对于一半的迭代,for循环中的将是,从而初始化。对于另一半,找到的 循环替换为 同样糟糕。只有