日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

react中的useRef的使用

作者:海鷗-w 更新時間: 2023-07-13 編程語言
import React, { useState, useEffect, useRef } from "react";
import { Button } from 'antd';
let prev1,
    prev2;
const Demo = function Demo() {
    let [num, setNum] = useState(0);
    let box1 = useRef(null),
        box2 = React.createRef();
    if (!prev1) {
        // 第一次DEMO執行,把第一次創建的REF對象賦值給變量
        prev1 = box1;
        prev2 = box2;
    } else {
        // 第二次DEMO執行,我們驗證一下,新創建的REF對象,和之前第一次創建的REF對象,是否一致?
        console.log(prev1 === box1); //true  useRef再每一次組件更新的時候(函數重新執行),再次執行useRef方法的時候,不會創建新的REF對象了,獲取到的還是第一次創建的那個REF對象!!
        console.log(prev2 === box2); //false createRef在每一次組件更新的時候,都會創建一個全新的REF對象出來,比較浪費性能!!
        // 總結:在類組件中,創建REF對象,我們基于 React.createRef 處理;但是在函數組件中,為了保證性能,我們應該使用專屬的 useRef 處理!!
    }

    useEffect(() => {
        console.log(box1.current);
        console.log(box2.current);
    });

    return <div className="demo">
        <span className="num" ref={box1}>{num}</span>
        <span className="num" ref={box2}>哈哈哈</span>
        <Button type="primary" size="small"
            onClick={() => {
                setNum(num + 1);
            }}>
            新增
        </Button>
    </div>;
};

原文鏈接:https://blog.csdn.net/weixin_50379372/article/details/131318320

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新
<label id="emftv"></label>
    1. <abbr id="emftv"></abbr>

      <label id="emftv"></label>
    2. <p id="emftv"></p>