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

React中的useState()是什么?

欧阳哲
2023-03-14
问题内容

我目前正在React中学习钩子概念,并试图理解以下示例。

import { useState } from 'react';

function Example() {
    // Declare a new state variable, which we'll call "count"
    const [count, setCount] = useState(0);

  return (
    <div>
      <p>You clicked {count} times</p>
      <button onClick={() => setCount(count + 1)}>
        Click me
      </button>
    </div>
  );
}

上面的示例在处理程序函数参数本身上增加计数器。如果我想在事件处理函数中修改计数值怎么办

考虑下面的例子

setCount = () => {
  //how can I modify count value here. Not sure if I can use setState to modify its value
  //also I want to modify other state values as well here. How can I do that
}

<button onClick={() => setCount()}>
  Click me
</button>

问题答案:

React钩子是访问React核心功能的一种新方法(仍在开发中),例如state无需使用类,在您的示例中,如果您想直接在处理函数中增加计数器而不在onClickprop中直接指定它,您可以可以做类似的事情:

...
const [count, setCounter] = useState(0);
const [moreStuff, setMoreStuff] = useState(...);
...

const setCount = () => {
    setCounter(count + 1);
    setMoreStuff(...);
    ...
};

和onClick:

<button onClick={setCount}>
    Click me
</button>

让我们快速解释一下这一行的情况:

const [count, setCounter] = useState(0);

useState(0)返回一个元组,其中第一个参数count是计数器的当前状态,并且setCounter是允许我们更新计数器状态的方法。我们可以使用该setCounter方法来更新count任何地方的状态-
在这种情况下,我们在setCount函数中使用它可以做更多的事情;带有钩子的想法是,我们能够使代码保持更多功能,并且在不需要/不需要时避免使用
基于类的组件

我写了多个例子挂钩一个完整的文章(包括计数器)如本codepen,我利用了useStateuseEffectuseContext,和
自定义挂钩 。我可以深入了解钩子如何在此答案上工作,但是文档在解释状态钩子和其他钩子方面做得很好,希望对您有所帮助。

更新:
钩子不再是一个建议,因为版本
16.8 可以使用了,因此React网站上有一个部分可以回答一些FAQ。



 类似资料:
  • 我正在“Hooks FAQ”上阅读React和,我对一些似乎同时解决了useRef和useState问题的用例感到困惑,我不确定哪种方法是正确的。 从关于useRef()的“挂钩常见问题解答”中: "useRef()钩子不仅仅适用于DOM参考。"ref"对象是一个泛型容器,其当前属性是可变的,可以保存任何值,类似于类上的实例属性。" 使用useRef(): 使用useState(): 两个例子的结

  • 问题内容: 以下是使用React useState Hook的标准方法: 但是,显然要将此变量重新分配给其他原始值。 为什么变量没有定义为? 问题答案: 显然将被重新分配给其他原始值 并不是的。重新呈现组件后,将再次执行该函数,从而创建新的作用域,创建新的变量,该变量与先前的变量无关。 例: 注意: 挂钩更为复杂,实际上并未像这样实现。这只是为了演示类似的行为。

  • 本文向大家介绍useState和this.state的区别是什么?相关面试题,主要包含被问及useState和this.state的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 内部基于 实现,方法返回 state 本身以及一个修改 state 的方法。 通过 修改数据,不会和 一样进行对象属性合并,会直接覆盖。 Hooks 函数组件中,存在的概念,在一次渲染闭包中,state 是固定不

  • 问题内容: 如何在useState数组React挂钩中推送元素?那是反应状态下的一种旧方法吗?还是新东西? 问题答案: 使用时,可以获得状态项的更新方法: 然后,当您要添加新元素时,可以使用该函数并传入新数组或将创建新数组的函数。通常情况下是后者,因为状态更新是异步的,有时是分批的: 有时,如果您 仅针对某些特定的用户事件(例如,但不喜欢)更新处理程序中的数组,则无需使用回调形式就可以摆脱困境:

  • 问题内容: 我知道状态允许我们创建动态和交互的组件,但是我想深入了解状态。 有人可以通过一个真实的例子来帮助我理解React中的状态吗? 问题答案: 在上面的代码中,它有一个带有:count 的对象。 状态可以简单地理解为特定组件/应用在该时间点的值。在上面的示例中,当应用首次运行时,该应用处于状态 如我们所见,有两个按钮,它们使用来更新值,它只是更新应用计数的“状态”,并且只要状态改变,应用都会

  • 问题内容: 我正在阅读react-redux上的API并查看Redux的github示例之一:Redux todo应用 其中一个容器具有(和)接受两个参数,其中一个是ownprops。 API文档说: “如果您的mapStateToProps函数声明为带有两个参数,则它将以存储状态作为第一个参数,并将传递给连接组件的props作为第二个参数来调用,并且只要连接的组件收到新的参数,就会重新调用通过浅