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

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

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

什么是useRef Hook?

useRef就是createRef的Hook版本用來獲取元素, 只不過比createRef更強(qiáng)大一點(diǎn)

createRef只能獲取普通元素和類元素,并且只能獲取到類組件的實(shí)例對(duì)象,不能拿到函數(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ù), 除非手動(dòng)修改, 否則永遠(yuǎn)都不會(huì)發(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>當(dāng)前的值  :{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ù), 除非手動(dòng)修改, 否則永遠(yuǎn)都不會(huì)發(fā)生變化

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

    關(guān)于react+antd樣式不生效問題的解決方式

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

    webpack3+React 的配置全解

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

    React中Key屬性作用

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

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

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

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

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

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

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

最新評(píng)論

柞水县| 汉中市| 马关县| 巴塘县| 资溪县| 阿尔山市| 韩城市| 北碚区| 朔州市| 木兰县| 夏津县| 秀山| 绥中县| 阳城县| 惠水县| 锡林浩特市| 潮州市| 区。| 横山县| 思南县| 长阳| 葵青区| 沂水县| 准格尔旗| 赞皇县| 铜梁县| 赤壁市| 英超| 马关县| 昆明市| 衡阳县| 格尔木市| 林周县| 全南县| 乌鲁木齐县| 武威市| 北流市| 柞水县| 尼木县| 福海县| 阿尔山市|