亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue 和 React 使用ref的示例詳解

 更新時(shí)間:2025年04月07日 09:56:30   作者:lryh_  
在 Vue 中,ref 是一個(gè)響應(yīng)式對(duì)象,修改 ref 的值會(huì)觸發(fā)組件的重新渲染,因?yàn)?nbsp;Vue 的 ref 是基于其響應(yīng)式系統(tǒng)實(shí)現(xiàn)的,任何對(duì) ref 的修改都會(huì)被 Vue 檢測(cè)到,并觸發(fā)組件的更新,本文給大家介紹Vue 和 React 使用ref的示例,感興趣的朋友一起看看吧

ref 用于訪問(wèn) DOM 元素或子組件實(shí)例

Vue2:

<template>
  <div>
    <input ref="inp" />
  </div>
</template>
<script>
export default {
  mounted() {
    this.$refs.inp.focus()
  }
}
</script>

Vue3 組合式API中使用ref 

<template>
  <div>
    <input ref="inp" />
  </div>
</template>
<script>
import { ref, onMounted } from 'vue';
export default {
  setup() {
    const inp = ref(null)
    onMounted(() => {
      inp.value.focus()
    })
    return {
      inp
    }
  }
}
</script>

        在 Vue 中,ref 是一個(gè)響應(yīng)式對(duì)象,修改 ref 的值會(huì)觸發(fā)組件的重新渲染。因?yàn)?Vue 的 ref 是基于其響應(yīng)式系統(tǒng)實(shí)現(xiàn)的,任何對(duì) ref 的修改都會(huì)被 Vue 檢測(cè)到,并觸發(fā)組件的更新。

React 函數(shù)組件通過(guò)useRef Hook 來(lái)實(shí)現(xiàn):

useRef 不僅可以用于訪問(wèn) DOM 元素,還可以存儲(chǔ)任何可變值

import { useEffect, useRef } from "react"
const Hanshi = () => {
    const inp = useRef(null)
    useEffect(()=>{
        inp.current.focus()
    },[])
    return <>
        <div>
            <h3>函數(shù)組件</h3>
            <input type="text" ref={inp}/>
        </div>
    </>
 }
 export default Hanshi

useRef(null) 創(chuàng)建了一個(gè) ref 對(duì)象,并將其初始值設(shè)置為 null

將 inp 綁定到 <input> 的 ref 屬性上,這樣 inp.current 就會(huì)指向該 DOM 元素

在 useEffect 中,通過(guò) inp.current 訪問(wèn) DOM 元素并調(diào)用 focus() 方法

存儲(chǔ)任何可變值:與 useState 不同,修改 useRef 的值不會(huì)觸發(fā)組件的重新渲染

import { useEffect, useRef } from "react"
const Hanshi = () => {
    const inp = useRef()
    const num = useRef(0)
    useEffect(()=>{
        inp.current.focus()
        num.current += 1
        console.log(`組件渲染了 ${num.current} 次`)
    },[])
    return <>
        <div>
            <h3>函數(shù)組件</h3>
            <input type="text" ref={inp}/>
        </div>
    </>
 }
 export default Hanshi

函數(shù)組件中轉(zhuǎn)發(fā) ref(forwardRef): forwardRef 允許父組件訪問(wèn)子組件中的 DOM 元素或組件實(shí)例

使用 forwardRef 將 ref 從父組件傳遞到子組件

父組件通過(guò) inpt 訪問(wèn)子組件中的 <input> 元素

useImperativeHandle 自定義子組件暴露給父組件的 ref 值

useImperativeHandle 允許子組件自定義暴露給父組件的 ref 值

父組件可以通過(guò) inpt.current 調(diào)用子組件暴露的方法(如 focus 和 getValue)

React 類組件 createRef

1. 通過(guò)createRef創(chuàng)建一個(gè)ref對(duì)象
2. 給元素綁定ref屬性值  為創(chuàng)建的ref對(duì)象
3. 通過(guò)ref對(duì)象的current獲取元素,再獲取它的值

import { Component,createRef } from "react";
export default class Detail extends Component{
    inp = createRef()
    getInp(){
     console.log(this.inp.current.value)
    }
    componentDidMount(){
        this.inp.current.focus()
    }
    render() {
        return <div>
            <h3>類組件</h3>
            <input type="text" ref={this.inp}/>
            <button onClick={this.getInp.bind(this)}>獲取值按鈕</button>
        </div>
    }
}

類子組件

父組件通過(guò) ref 訪問(wèn)子組件的實(shí)例,并調(diào)用子組件的方法(如 focus)

這種方式僅適用于類組件,函數(shù)組件沒(méi)有實(shí)例

函數(shù)式子組件 forwardRef

到此這篇關(guān)于Vue 和 React 使用ref的文章就介紹到這了,更多相關(guān)Vue 和 React 使用ref內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • ElementUI之表格toggleRowSelection選中踩坑記錄

    ElementUI之表格toggleRowSelection選中踩坑記錄

    這篇文章主要介紹了ElementUI之表格toggleRowSelection選中踩坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 使用mint-ui實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)效果的示例代碼

    使用mint-ui實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)效果的示例代碼

    下面小編就為大家分享一篇使用mint-ui實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)效果的示例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • vue-router history模式服務(wù)器端配置過(guò)程記錄

    vue-router history模式服務(wù)器端配置過(guò)程記錄

    vue路由有hash和history兩種模式,這篇文章主要給大家介紹了關(guān)于vue-router history模式服務(wù)器端配置的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • Vue3+Antd實(shí)現(xiàn)彈框顯示內(nèi)容并加入復(fù)制按鈕

    Vue3+Antd實(shí)現(xiàn)彈框顯示內(nèi)容并加入復(fù)制按鈕

    這篇文章主要介紹了Vue3+Antd實(shí)現(xiàn)彈框顯示內(nèi)容并加入復(fù)制按鈕,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-12-12
  • Vue?Router路由hash模式與history模式詳細(xì)介紹

    Vue?Router路由hash模式與history模式詳細(xì)介紹

    Vue?Router是Vue.js官方的路由管理器。它和Vue.js的核心深度集成,讓構(gòu)建單頁(yè)面應(yīng)用變得易如反掌。路由實(shí)際上就是可以理解為指向,就是我在頁(yè)面上點(diǎn)擊一個(gè)按鈕需要跳轉(zhuǎn)到對(duì)應(yīng)的頁(yè)面,這就是路由跳轉(zhuǎn)
    2022-08-08
  • Vue3?中實(shí)現(xiàn)元素拖拽功能

    Vue3?中實(shí)現(xiàn)元素拖拽功能

    這篇文章主要介紹了在Vue3中實(shí)現(xiàn)飄逸的元素拖拽,在本次案例中需要認(rèn)真思考對(duì)應(yīng)的幾個(gè)坐標(biāo)和移動(dòng)時(shí)坐標(biāo)如何更新,事件的使用要成對(duì)出現(xiàn),如何在這個(gè)拖拽的 Icon 上增加點(diǎn)擊事件時(shí)還需要多做一些處理,需要的朋友可以參考下
    2023-07-07
  • vue3獲取當(dāng)前路由地址

    vue3獲取當(dāng)前路由地址

    本文詳細(xì)講解了vue3獲取當(dāng)前路由地址的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • vue element-ui中table合計(jì)指定列求和實(shí)例

    vue element-ui中table合計(jì)指定列求和實(shí)例

    這篇文章主要介紹了vue element-ui中table合計(jì)指定列求和實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • vue3中使用router路由實(shí)現(xiàn)跳轉(zhuǎn)傳參的方法

    vue3中使用router路由實(shí)現(xiàn)跳轉(zhuǎn)傳參的方法

    這篇文章主要介紹了vue3中使用router路由實(shí)現(xiàn)跳轉(zhuǎn)傳參的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • vue項(xiàng)目預(yù)覽excel表格功能(file-viewer插件)

    vue項(xiàng)目預(yù)覽excel表格功能(file-viewer插件)

    這篇文章主要介紹了vue項(xiàng)目預(yù)覽excel表格功能(file-viewer插件),本文分步驟結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-10-10

最新評(píng)論