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

React中的Refs屬性你來了解嗎

 更新時間:2022年03月09日 16:58:36   作者:橘貓吃不胖~  
這篇文章主要為大家詳細(xì)介紹了的React?Refs屬性,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

1 介紹

react組件的三大屬性:

1.props屬性:封裝傳遞給組件的參數(shù)

2.state屬性:組件的狀態(tài),當(dāng)值發(fā)生改變后,重新渲染組件

3.refs屬性:

(1)通過該屬性可以去訪問DOM元素或render函數(shù)中的react元素(虛擬的DOM元素) ——DOM元素或render函數(shù)中的react元素的代理(句柄)

(2)本質(zhì)是ReactDOM.render()函數(shù)返回的實(shí)例(組件實(shí)例或DOM節(jié)點(diǎn))

Refs在計算機(jī)中稱為彈性文件系統(tǒng)。React中的Refs提供了一種方式,允許我們訪問DOM節(jié)點(diǎn)或在render方法中創(chuàng)建的React元素。本質(zhì)為ReactDOM.render()返回的組件實(shí)例,如果是渲染組件則返回的是組件實(shí)例,如果渲染dom則返回的是具體的dom節(jié)點(diǎn)。

作用:Refs時React提供給我們安全訪問DOM元素或者某個組件實(shí)例的句柄。在類組件中,React將ref屬性中第一個參數(shù)作為DOM中的句柄。在函數(shù)組件中,React用hooks的api useRef也能獲得ref。

2 使用方法

2.1 createRef(版本>=React16.3)

一般在構(gòu)造函數(shù)中將refs分配給實(shí)例屬性,以供組件的其他方法中使用。

1、對于html元素:可以獲取元素實(shí)例

示例代碼:

class Refs extends React.Component {
    constructor(props) {
        super(props);
        // 在構(gòu)造函數(shù)中初始化一個ref,然后在return中就可以使用了
        this.myRef = React.createRef();
        console.log(this.myRef);
    }
    componentDidMount() { // 在render()函數(shù)執(zhí)行完成后調(diào)用
        this.myRef.current.innerHTML = "橘貓吃不胖"; // this.myRef中有一個current屬性
    }
    render() {
        return (
            <div>
                {/*如果ref屬性被用于html,那么它的值就是底層DOM元素*/}
                <div ref={this.myRef}></div>
            </div>
        );
    }
}

在這里插入圖片描述

2、可以和類組件進(jìn)行綁定 —— 代表類組件的實(shí)例

示例代碼:

class Refs extends React.Component {
    constructor(props) {
        super(props);
        this.myRef = React.createRef();
    }
    componentDidMount() {
        // 在父組件中調(diào)用了子組件的方法
        this.myRef.current.change();
    }
    render() {
        return <Children ref={this.myRef}/>
    }
}

class Children extends React.Component {
    change() {
        console.log("橘貓吃不胖變身");
    }
    render() {
        return <span>橘貓吃不胖</span>
    }
}

2.2 回調(diào)Refs

React將在組件掛載時,會調(diào)用ref回調(diào)函數(shù)并傳入DOM怨怒是,當(dāng)卸載時調(diào)用它并傳入null。早componentDidMount或componentDidUpdate觸發(fā)前,React會保證refs一定是最新的。

示例代碼:

class Refs extends React.Component {
    constructor(props) {
        super(props);
        this.targetRef = null;
        this.myRef = (e) => this.targetRef = e;
    }
    componentDidMount() {
        console.log("this.refs" + this.refs.container);
    }
    render() {
        return <div ref={this.myRef}>
            橘貓吃不胖
        </div>
    }
}

2.3 String類型的Refs(已過時,不推薦使用)

示例代碼:

class Refs extends React.Component {
    constructor(props) {
        super(props);
        this.targetRef = null;
        this.myRef = (e) => this.targetRef = e;
    }
    componentDidMount() {
        console.log("this.refs" + this.refs.container);
    }
    render() {
        return <div ref={this.myRef}>
            橘貓吃不胖
        </div>
    }
}

2.4 useRef(React Hooks)

function HookRef(props) {
    const inputElement = useRef();
    return (
        <div>
            <input ref={inputElement}/>
            <button onClick={() => {
                inputElement.current.focus()
            }}>獲得焦點(diǎn)
            </button>
        </div>
    )
}

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!    

相關(guān)文章

  • 關(guān)于react中列表渲染的局部刷新問題

    關(guān)于react中列表渲染的局部刷新問題

    這篇文章主要介紹了關(guān)于react中列表渲染的局部刷新問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • React Native中Navigator的使用方法示例

    React Native中Navigator的使用方法示例

    導(dǎo)航組件Navigator可以讓我們客戶端在不同的頁面見進(jìn)行切換,下面這篇文章主要給大家介紹了關(guān)于React Native中Navigator的使用方法,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • React初始化渲染過程示例詳解

    React初始化渲染過程示例詳解

    這篇文章主要為大家介紹了React初始化渲染過程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • react路由配置方式詳解

    react路由配置方式詳解

    本篇文章主要介紹了react路由配置方式詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 2022最新前端常見react面試題合集

    2022最新前端常見react面試題合集

    這篇文章主要介紹了前端常見react面試題合集,介紹了React?Fiber的簡介及fetch封裝代碼,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • react新版本生命周期鉤子函數(shù)及用法詳解

    react新版本生命周期鉤子函數(shù)及用法詳解

    這篇文章主要介紹了react新版本生命周期鉤子函數(shù)及用法詳解,本文通過示例圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • react進(jìn)階教程之異常處理機(jī)制error?Boundaries

    react進(jìn)階教程之異常處理機(jī)制error?Boundaries

    在react中一旦出錯,如果每個組件去處理出錯情況則比較麻煩,下面這篇文章主要給大家介紹了關(guān)于react進(jìn)階教程之異常處理機(jī)制error?Boundaries的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • 詳解React中的不可變值

    詳解React中的不可變值

    這篇文章主要介紹了React中的不可變值的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用react.js,感興趣的朋友可以了解下
    2021-04-04
  • 詳解React中的this指向

    詳解React中的this指向

    這篇文章主要介紹了React中的this指向的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用React,感興趣的朋友可以了解下
    2021-04-04
  • React useContext與useReducer函數(shù)組件使用

    React useContext與useReducer函數(shù)組件使用

    useContext和useReducer 可以用來減少層級使用, useContext,可以理解為供貨商提供一個公共的共享值,然后下面的消費(fèi)者去接受共享值,只有一個供貨商,而有多個消費(fèi)者,可以達(dá)到共享的狀態(tài)改變的目的
    2023-02-02

最新評論