国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

React hooks文檔筆記(四) useRef

這篇具有很好參考價(jià)值的文章主要介紹了React hooks文檔筆記(四) useRef。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

useRef

當(dāng)想讓組件記住一些信息,又不想觸發(fā)新的渲染,可以使用ref:總是返回同一個(gè)對(duì)象。

1. state 和 refs 的比較

refs(普通的 JavaScript 對(duì)象)

state

更改時(shí)不觸發(fā)重新渲染

更改時(shí)觸發(fā)重新渲染

可變的——修改/更新current’s value

(修改完立即生效

?ref.current = 5;

??console.log(ref.current); // 5

不可變——必須使用state的setting函數(shù)去修改state變量

React 狀態(tài)的限制(每個(gè)渲染的快照,不會(huì)同步更新)

useRef(initialValue)? returns

{ current: initialValue }

useState(initialValue) returns ( [value, setValue])

每次更新state,組件會(huì)重新渲染

import { useState } from 'react';

export default function Counter() {
  const [count, setCount] = useState(0);
  function handleClick() {
    setCount(count + 1);
  }
  return (
    <button onClick={handleClick}>
      You clicked {count} times
    </button>
  );
}

React hooks文檔筆記(四) useRef,react,react.js,筆記,javascript

?ref.current不要在渲染過程中讀取或?qū)懭?,組件不會(huì)隨著每次ref增量而重新渲染:

import { useRef } from 'react';

export default function Counter() {
  let countRef = useRef(0);
  function handleClick() {
    // This doesn't re-render the component!
    countRef.current = countRef.current + 1;
  }
  return (
    <button onClick={handleClick}>
      You clicked {countRef.current} times
    </button>
  );
}

React hooks文檔筆記(四) useRef,react,react.js,筆記,javascript

2. 常見使用場(chǎng)景

A. 存儲(chǔ)timeout IDs

import { useRef } from 'react';

export default function Chat() {
  let timeoutID = useRef(null);

  function handleSend() {
    timeoutID.current = setTimeout(() => {
      alert('Sent!');
    }, 3000);
  }

  function handleUndo() {
    clearTimeout(timeoutID.current);
  }
}

B. 存儲(chǔ)和操縱dom元素(避免更改由 React 管理的 DOM 節(jié)點(diǎn))

  • 基礎(chǔ)用法: <div ref={counterRef} />

  • 訪問其他組件的dom節(jié)點(diǎn):

import { forwardRef, useRef } from 'react';

const MyInput = forwardRef((props, ref) => {

//(可選)限制公開的內(nèi)容,不讓Form組件的ref調(diào)用處理其他事件(如修改css)
  const realInputRef = useRef(null);
  useImperativeHandle(ref, () => ({
    // Only expose focus and nothing else
    focus() {
      realInputRef.current.focus();
    },
  }));

  return <input {...props} ref={ref} />;
});

export default function Form() {
  const inputRef = useRef(null);

  function handleClick() {
    inputRef.current.focus();
  }

  return (
    <>
      <MyInput ref={inputRef} />
      <button onClick={handleClick}>
        Focus the input
      </button>
    </>
  );
}

?C. 存儲(chǔ)其他對(duì)計(jì)算jsx非必要的對(duì)象文章來源地址http://www.zghlxwxcb.cn/news/detail-517289.html

到了這里,關(guān)于React hooks文檔筆記(四) useRef的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • React18 hook學(xué)習(xí)筆記

    useState useState用于在函數(shù)組件中聲明和管理狀態(tài) 它接受初始狀態(tài),并返回一個(gè)狀態(tài)變量和一個(gè)更新狀態(tài)的函數(shù) 通過調(diào)用更新狀態(tài)的函數(shù),可以改變狀態(tài)的值并觸發(fā)組件的重新渲染 useEffect React的useEffect鉤子可以讓開發(fā)者在函數(shù)組件中管理副作用。 副作用操作是指那些與組件渲

    2024年02月14日
    瀏覽(22)
  • [React] useRef用法和特性

    [React] useRef用法和特性

    一般在使用react-hook的時(shí)候,我們用到最多的就是定義變量,以及對(duì)應(yīng)的修改變量 下面是一個(gè)最基本的 react-hook 應(yīng)用程序 以上并不是以使用useState的方式來進(jìn)行對(duì)useRef的襯托,兩者功能是不同的,只是便于區(qū)分 但是如果我想讓瀏覽器渲染的時(shí)候,讓他的次數(shù)自增,這樣就會(huì)有

    2024年02月01日
    瀏覽(33)
  • react中useRef的應(yīng)用

    useRef是隨著react函數(shù)式組件發(fā)展而來的,是react眾多官方hook中的一個(gè),調(diào)用useRef可以返回一個(gè)伴隨這組件整個(gè)聲明周期不發(fā)生改變的對(duì)象,這個(gè)對(duì)象常見的用途有兩個(gè): 用于綁定dom元素,從而實(shí)現(xiàn)對(duì)dom元素的操作 用于保存不希望隨著組件重新渲染而改變的值,如定時(shí)器 我在

    2024年02月06日
    瀏覽(26)
  • 淺談React中的ref和useRef

    淺談React中的ref和useRef

    目錄 什么是useRef? 使用 ref 訪問 DOM 元素 Ref和useRef之間的區(qū)別 Ref和useRef的使用案例 善用工具 結(jié)論 在各種? JavaScript? 庫(kù)和框架中, React ?因其開發(fā)人員友好性和支持性而得到認(rèn)可。 大多數(shù)開發(fā)人員發(fā)現(xiàn)? React ?非常舒適且可擴(kuò)展,因?yàn)樗峁┝算^子。鉤子是 ?React ?附帶的

    2024年02月14日
    瀏覽(18)
  • ahooks.js:一款強(qiáng)大的React Hooks庫(kù)及其API使用教程(四)

    ahooks是一款由阿里巴巴開發(fā)團(tuán)隊(duì)設(shè)計(jì)的React Hooks庫(kù),提供了一系列實(shí)用的React Hooks,以便開發(fā)者更好地使用React的功能。ahooks的設(shè)計(jì)原則是“最小API,最大自由”,旨在提供最小的、最易于理解和使用的API,同時(shí)保留最大的使用自由度。 使用npm或yarn安裝ahooks: API介紹合集:

    2024年02月11日
    瀏覽(18)
  • ahooks.js:一款強(qiáng)大的React Hooks庫(kù)及其API使用教程(二)

    ahooks是一款由阿里巴巴開發(fā)團(tuán)隊(duì)設(shè)計(jì)的React Hooks庫(kù),提供了一系列實(shí)用的React Hooks,以便開發(fā)者更好地使用React的功能。ahooks的設(shè)計(jì)原則是“最小API,最大自由”,旨在提供最小的、最易于理解和使用的API,同時(shí)保留最大的使用自由度。 使用npm或yarn安裝ahooks: 前面的API:aho

    2024年02月12日
    瀏覽(27)
  • ahooks.js:一款強(qiáng)大的React Hooks庫(kù)及其API使用教程(一)

    ahooks是一款由阿里巴巴開發(fā)團(tuán)隊(duì)設(shè)計(jì)的React Hooks庫(kù),提供了一系列實(shí)用的React Hooks,以便開發(fā)者更好地使用React的功能。ahooks的設(shè)計(jì)原則是“最小API,最大自由”,旨在提供最小的、最易于理解和使用的API,同時(shí)保留最大的使用自由度。 使用npm或yarn安裝ahooks: 1. useRequest useR

    2024年02月12日
    瀏覽(22)
  • React鉤子函數(shù)之useRef的基本使用

    React鉤子函數(shù)中的useRef是一個(gè)非常有用的工具,它可以用來獲取DOM元素或者保存一些變量。在這篇文章中,我們將會(huì)討論useRef的基本使用。 首先,我們需要知道useRef是如何工作的。它返回一個(gè)可變的ref對(duì)象,這個(gè)對(duì)象可以在組件的整個(gè)生命周期中被訪問。當(dāng)我們需要獲取DOM元

    2024年02月10日
    瀏覽(19)
  • 3.react useRef使用與常見問題

    https://zh-hans.legacy.reactjs.org/docs/hooks-faq.html#why-am-i-seeing-stale-props-or-state-inside-my-function

    2024年02月12日
    瀏覽(19)
  • 【實(shí)戰(zhàn)】 TS 應(yīng)用:JS神助攻 - 強(qiáng)類型 —— React17+React Hook+TS4 最佳實(shí)踐,仿 Jira 企業(yè)級(jí)項(xiàng)目(三)

    學(xué)習(xí)內(nèi)容來源:React + React Hook + TS 最佳實(shí)踐-慕課網(wǎng) 相對(duì)原教程,我在學(xué)習(xí)開始時(shí)(2023.03)采用的是當(dāng)前最新版本: 項(xiàng) 版本 react react-dom ^18.2.0 react-router react-router-dom ^6.11.2 antd ^4.24.8 @commitlint/cli @commitlint/config-conventional ^17.4.4 eslint-config-prettier ^8.6.0 husky ^8.0.3 lint-staged ^13.1.2 p

    2024年02月09日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包