欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

React中useRef的具體使用

 更新時(shí)間:2021年04月13日 10:37:38   作者:Meskjei  
這篇文章主要介紹了React中useRef的具體使用,它可以用來(lái)獲取組件實(shí)例對(duì)象或者是DOM對(duì)象,除此之外還有哪些用法,就一起來(lái)了解一下

相信有過(guò)React使用經(jīng)驗(yàn)的人對(duì)ref都會(huì)熟悉,它可以用來(lái)獲取組件實(shí)例對(duì)象或者是DOM對(duì)象。

而useRef這個(gè)hooks函數(shù),除了傳統(tǒng)的用法之外,它還可以“跨渲染周期”保存數(shù)據(jù)。

首先來(lái)看一下它傳統(tǒng)的用法:

import React, { useState, useEffect, useMemo, useRef } from 'react';

export default function App(props){
  const [count, setCount] = useState(0);

  const doubleCount = useMemo(() => {
    return 2 * count;
  }, [count]);

  const couterRef = useRef();

  useEffect(() => {
    document.title = `The value is ${count}`;
    console.log(couterRef.current);
  }, [count]);
  
  return (
    <>
      <button ref={couterRef} onClick={() => {setCount(count + 1)}}>Count: {count}, double: {doubleCount}</button>
    </>
  );
}

代碼中用useRef創(chuàng)建了couterRef對(duì)象,并將其賦給了button的ref屬性。這樣,通過(guò)訪問(wèn)couterRef.current就可以訪問(wèn)到button對(duì)應(yīng)的DOM對(duì)象。

然后再來(lái)看看它保存數(shù)據(jù)的用法。

在一個(gè)組件中有什么東西可以跨渲染周期,也就是在組件被多次渲染之后依舊不變的屬性?第一個(gè)想到的應(yīng)該是state。沒(méi)錯(cuò),一個(gè)組件的state可以在多次渲染之后依舊不變。但是,state的問(wèn)題在于一旦修改了它就會(huì)造成組件的重新渲染。

那么這個(gè)時(shí)候就可以使用useRef來(lái)跨越渲染周期存儲(chǔ)數(shù)據(jù),而且對(duì)它修改也不會(huì)引起組件渲染。

import React, { useState, useEffect, useMemo, useRef } from 'react';

export default function App(props){
  const [count, setCount] = useState(0);

  const doubleCount = useMemo(() => {
    return 2 * count;
  }, [count]);

  const timerID = useRef();
  
  useEffect(() => {
    timerID.current = setInterval(()=>{
        setCount(count => count + 1);
    }, 1000); 
  }, []);
  
  useEffect(()=>{
      if(count > 10){
          clearInterval(timerID.current);
      }
  });
  
  return (
    <>
      <button ref={couterRef} onClick={() => {setCount(count + 1)}}>Count: {count}, double: {doubleCount}</button>
    </>
  );
}

在上面的例子中,我用ref對(duì)象的current屬性來(lái)存儲(chǔ)定時(shí)器的ID,這樣便可以在多次渲染之后依舊保存定時(shí)器ID,從而能正常清除定時(shí)器。

到此這篇關(guān)于React中useRef的具體使用的文章就介紹到這了,更多相關(guān)React useRef內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • React報(bào)錯(cuò)之Parameter event implicitly has an any type解決

    React報(bào)錯(cuò)之Parameter event implicitly has a

    這篇文章主要為大家介紹了React報(bào)錯(cuò)之Parameter event implicitly has an any type,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • React Hooks獲取數(shù)據(jù)實(shí)現(xiàn)方法介紹

    React Hooks獲取數(shù)據(jù)實(shí)現(xiàn)方法介紹

    這篇文章主要介紹了react hooks獲取數(shù)據(jù),文中給大家介紹了useState dispatch函數(shù)如何與其使用的Function Component進(jìn)行綁定,實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • React 源碼中的依賴(lài)注入方法

    React 源碼中的依賴(lài)注入方法

    這篇文章主要介紹了React 源碼中的依賴(lài)注入方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • react路由基礎(chǔ)解讀(Router、Link和Route)

    react路由基礎(chǔ)解讀(Router、Link和Route)

    這篇文章主要介紹了react路由基礎(chǔ)解讀(Router、Link和Route),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • React中使用setInterval函數(shù)的實(shí)例

    React中使用setInterval函數(shù)的實(shí)例

    這篇文章主要介紹了React中使用setInterval函數(shù)的實(shí)例,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • React實(shí)現(xiàn)多標(biāo)簽在有限空間內(nèi)展示

    React實(shí)現(xiàn)多標(biāo)簽在有限空間內(nèi)展示

    在業(yè)務(wù)中,需要在一個(gè)卡片組件中展示多個(gè)標(biāo)簽,標(biāo)簽組件高度相同,寬度和出現(xiàn)順序不同,要求標(biāo)簽只能在有限的空間內(nèi)展示,所以本文給大家介紹了React實(shí)現(xiàn)多標(biāo)簽在有限空間內(nèi)展示,需要的朋友可以參考下
    2023-12-12
  • create-react-app項(xiàng)目配置全解析

    create-react-app項(xiàng)目配置全解析

    這篇文章主要為大家介紹了create-react-app項(xiàng)目配置全解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 實(shí)例講解React 組件生命周期

    實(shí)例講解React 組件生命周期

    這篇文章主要介紹了React 組件生命周期的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 關(guān)于react useState更新異步問(wèn)題

    關(guān)于react useState更新異步問(wèn)題

    這篇文章主要介紹了關(guān)于react useState更新異步問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

    2022-08-08
  • React?Refs?的使用forwardRef?源碼示例解析

    React?Refs?的使用forwardRef?源碼示例解析

    這篇文章主要為大家介紹了React?之?Refs?的使用和?forwardRef?的源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11

最新評(píng)論