JavaScript中的useRef 和 useState介绍

 更新时间:2021年11月25日 09:10:01   作者:海拥  
这篇文章主要给大家分享的是 JavaScript中的useRef 和 useState介绍,下列文章,我们将学习 useRef 和 useState hook是什么,它们的区别以及何时使用哪个。 这篇文章中的代码示例将仅涉及功能组件,但是大多数差异和用途涵盖了类和功能组件,需要的朋友可以参考一下

1、useState hook

useState 是一个内置的 React hook,它允许您将信息作为状态存储在变量中。它允许您将 React 状态添加到功能组件。在下面的示例中,useState()声明状态变量,而值存储在计数变量中。setCount是用于更新此值的函数。

//从 react 导入 useState

import React, { useState } from 'react';

function Count() {

  // 声明一个名为 count 的新状态变量

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

2、useRef hook

useRef hook 是一个内置的 React hook,它将一个参数或参数作为其初始值,并返回一个引用或持久化的可变值。此引用,或简称 ref,包含可以使用当前属性检索的值。

我们还可以将用户输入存储在 refs 中并显示收集到的数据,如下所示:

//导入 useRef hook

import React, { useRef } from "react"

export default function App() {

  //创建一个变量来存储引用

  const nameRef = useRef();

  function handleSubmit(e) {

    //防止页面在提交时重新加载

    e.preventDefault()

    //输出 name

    console.log(nameRef.current.value)

  }

  return (

    <div className="container">

      <form onSubmit={handleSubmit}>

        <div className="input_group">

          <label>Name</label>

          <input type="text" ref={nameRef}/>

        </div>

        <input type="submit"/>

      </form>

    </div>

  )

}

3、useRef 与 useState

  • 与状态不同,存储在引用或引用中的数据或值保持不变,即使在组件重新渲染之后也是如此。因此,引用不会影响组件渲染,但状态会影响。
  • useState 返回 2 个属性或一个数组。一个是值或状态,另一个是更新状态的函数。相比之下, useRef 只返回一个值,即实际存储的数据。
  • 当参考值发生变化时,无需刷新或重新渲染即可更新。但是在 useState 中,组件必须再次渲染以更新状态或其值。

4、何时使用 Refs 和 States

refs 在获取用户输入、DOM 元素属性和存储不断更新的值时很有用。 但是,如果您要存储组件相关信息或在组件中使用方法,states 则是最佳选择。

所以总而言之,这两种 hook 各有优缺点,会根据情况和用途来使用。

到此这篇关于 JavaScript中的useRef useState介绍的文章就介绍到这了,更多相关 JavaScript中的useRef useState内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • React 模块联邦多模块项目实战详解

    React 模块联邦多模块项目实战详解

    这篇文章主要介绍了React 模块联邦多模块项目实战详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • react-router实现按需加载

    react-router实现按需加载

    本篇文章主要介绍了react-router实现按需加载,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 列表页常见hook封装实例

    列表页常见hook封装实例

    这篇文章主要为大家介绍了列表页常见的hook封装示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • antd 3.x Table组件如何快速实现虚拟列表详析

    antd 3.x Table组件如何快速实现虚拟列表详析

    这篇文章主要给大家介绍了关于antd 3.x Table组件如何快速实现虚拟列表的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用antd具有一定的参考学习价值,需要的朋友可以参考下
    2022-11-11
  • 浅谈React Native 中组件的生命周期

    浅谈React Native 中组件的生命周期

    本篇文章主要介绍了浅谈React Native 中组件的生命周期,非常具有实用价值,需要的朋友可以参考下
    2017-09-09
  • React 的调和算法Diffing 算法策略详解

    React 的调和算法Diffing 算法策略详解

    React的调和算法,主要发生在render阶段,调和算法并不是一个特定的算法函数,而是指在调和过程中,为提高构建workInProcess树的性能,以及Dom树更新的性能,而采用的一种策略,又称diffing算法
    2021-12-12
  • react实现路由动画跳转功能

    react实现路由动画跳转功能

    这篇文章主要介绍了react路由动画跳转功能,大概思路是下载第三方库 引用,创建css文件引用,想要实现跳转动画功能,就在那个组件的根节点绑定classname属性即可,在跳转的时候即可实现,需要的朋友可以参考下
    2023-10-10
  • react+zarm实现底部导航栏的示例代码

    react+zarm实现底部导航栏的示例代码

    本文主要介绍了react + zarm 实现底部导航栏的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • react跳转后路由变了页面没刷新的解决

    react跳转后路由变了页面没刷新的解决

    这篇文章主要介绍了react跳转后路由变了页面没刷新的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • React 实现爷孙组件间相互通信

    React 实现爷孙组件间相互通信

    这篇文章主要介绍了React实现爷孙组件间相互通信,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-08-08

最新评论