最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React Hooks之useRef獲取元素示例詳解

 更新時間:2023年07月17日 10:30:03   作者:YiYa_咿呀  
這篇文章主要介紹了React Hooks之useRef獲取元素示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

什么是useRef Hook?

useRef就是createRef的Hook版本用來獲取元素, 只不過比createRef更強大一點

createRef只能獲取普通元素和類元素,并且只能獲取到類組件的實例對象,不能拿到函數(shù)式組件

import React, {createRef, useRef} from 'react';
class Home extends React.PureComponent{
    render() {
        return (
            <div>Home</div>
        )
    }
}
function About() {
    return (
        <div>About</div>
    )
}
function App() {
    const pRef = createRef();
    const homeRef = createRef();
    function btnClick() {
        console.log(pRef.current);
        console.log(homeRef.current);
    }
    return (
        <div>
            <p ref={pRef}>我是段落</p>
            <Home ref={homeRef}/>
            <About/>
            <button onClick={()=>{btnClick()}}>獲取</button>
        </div>
    )
}
export default App;
import React, {createRef, useRef} from 'react';
class Home extends React.PureComponent{
    render() {
        return (
            <div>Home</div>
        )
    }
}
function About() {
    return (
        <div>About</div>
    )
}
function App() {
    // const pRef = createRef();
    // const homeRef = createRef();
    const pRef = useRef();
    const homeRef = useRef();
    function btnClick() {
        console.log(pRef.current);
        console.log(homeRef.current);
    }
    return (
        <div>
            <p ref={pRef}>我是段落</p>
            <Home ref={homeRef}/>
            <About/>
            <button onClick={()=>{btnClick()}}>獲取</button>
        </div>
    )
}
export default App;

兩種方法都能拿到ref,結(jié)果如下:

createRef和useRef

useState和useRef區(qū)別:

useRef中保存的數(shù)據(jù), 除非手動修改, 否則永遠都不會發(fā)生變化

const age = useRef(18);

如果說useRef也可以保存數(shù)據(jù)的話那么為什么還要有useState呢?

function App() {
    const pRef = createRef();
    const homeRef = useRef();
    function btnClick() {
        console.log(pRef); // {current: p}
        console.log(homeRef); // {current: Home}
    }
    const [numState, setNumState] = useState(0);
    // const age = useRef(18); // {current: 18}
    const age = useRef(numState); // {current: 0}
    useEffect(()=>{
        age.current = numState;
    }, [numState]);
    return (
        <div>
            <p>上一次的值: {age.current}</p>
            <p>當前的值  :{numState}</p>
            <button onClick={()=>{setNumState(numState + 1)}}>增加</button>
        </div>
    )
}
export default App;

總結(jié)

useRef可以獲取元素,可以保存數(shù)據(jù),和createRef的區(qū)別是可以保存數(shù)據(jù),和useState的區(qū)別是:useRef中保存的數(shù)據(jù), 除非手動修改, 否則永遠都不會發(fā)生變化

以上就是React Hooks之useRef獲取元素示例詳解的詳細內(nèi)容,更多關于React Hooks之useRef的資料請關注腳本之家其它相關文章!

相關文章

  • React實現(xiàn)翻頁時鐘的代碼示例

    React實現(xiàn)翻頁時鐘的代碼示例

    本文給大家介紹了React實現(xiàn)翻頁時鐘的代碼示例,翻頁時鐘把數(shù)字分為上下兩部分,翻頁效果的實現(xiàn)需要通過設置 position 把所有的數(shù)組放在同一個位置疊加起來,文中有詳細的代碼講解,需要的朋友可以參考下
    2023-08-08
  • React diff算法的實現(xiàn)示例

    React diff算法的實現(xiàn)示例

    這篇文章主要介紹了React diff算法的實現(xiàn)示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • 淺談React Event實現(xiàn)原理

    淺談React Event實現(xiàn)原理

    這篇文章主要介紹了淺談React Event實現(xiàn)原理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • React中CSS模塊沖突的問題及解決

    React中CSS模塊沖突的問題及解決

    本文將探討 React 中 CSS 模塊沖突的常見原因,并提供解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • 關于react+antd樣式不生效問題的解決方式

    關于react+antd樣式不生效問題的解決方式

    最近本人在使用Antd開發(fā)時遇到些問題,所以下面這篇文章主要給大家介紹了關于react+antd樣式不生效問題的解決方式,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • webpack3+React 的配置全解

    webpack3+React 的配置全解

    本篇文章主要介紹了webpack3+React 的配置全解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • React中Key屬性作用

    React中Key屬性作用

    react中的key屬性,它是一個特殊的屬性,它是出現(xiàn)不是給開發(fā)者用的,而是給React自己使用,有了key屬性后,就可以與組件建立了一種對應關系,本文主要介紹了React中Key屬性作用,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • React為 Vue 引入容器組件和展示組件的教程詳解

    React為 Vue 引入容器組件和展示組件的教程詳解

    這篇文章主要介紹了React為 Vue 引入容器組件和展示組件的教程詳解,文中很詳細的給大家介紹了使用容器組件的原因,需要的朋友可以參考下
    2018-05-05
  • React進行路由跳轉(zhuǎn)的方法匯總

    React進行路由跳轉(zhuǎn)的方法匯總

    在 React 中進行路由跳轉(zhuǎn)有多種方法,具體取決于你使用的路由庫和版本,以下是常見的路由跳轉(zhuǎn)方法匯總,主要基于 react-router-dom 庫,文中并通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2025-02-02
  • 解決antd的Table組件使用rowSelection屬性實現(xiàn)多選時遇到的bug

    解決antd的Table組件使用rowSelection屬性實現(xiàn)多選時遇到的bug

    這篇文章主要介紹了解決antd的Table組件使用rowSelection屬性實現(xiàn)多選時遇到的bug問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08

最新評論

蒙阴县| 康平县| 历史| 福海县| 清新县| 花莲市| 阳信县| 迁西县| 苏尼特右旗| 增城市| 于都县| 东丰县| 新余市| 军事| 新龙县| 庆云县| 新巴尔虎左旗| 四川省| 三明市| 江城| 临猗县| 乌拉特前旗| 塔河县| 家居| 江北区| 井研县| 铜山县| 桐梓县| 响水县| 三亚市| 梁平县| 澄迈县| 华亭县| 石门县| 象山县| 临潭县| 平顺县| 潍坊市| 炉霍县| 泾川县| 神池县|