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

Vue 和 React 使用ref的示例詳解

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

ref 用于訪問 DOM 元素或子組件實例

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 是一個響應(yīng)式對象,修改 ref 的值會觸發(fā)組件的重新渲染。因為 Vue 的 ref 是基于其響應(yīng)式系統(tǒng)實現(xiàn)的,任何對 ref 的修改都會被 Vue 檢測到,并觸發(fā)組件的更新。

React 函數(shù)組件通過useRef Hook 來實現(xiàn):

useRef 不僅可以用于訪問 DOM 元素,還可以存儲任何可變值

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)建了一個 ref 對象,并將其初始值設(shè)置為 null

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

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

存儲任何可變值:與 useState 不同,修改 useRef 的值不會觸發(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 允許父組件訪問子組件中的 DOM 元素或組件實例

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

父組件通過 inpt 訪問子組件中的 <input> 元素

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

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

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

React 類組件 createRef

1. 通過createRef創(chuàng)建一個ref對象
2. 給元素綁定ref屬性值  為創(chuàng)建的ref對象
3. 通過ref對象的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>
    }
}

類子組件

父組件通過 ref 訪問子組件的實例,并調(diào)用子組件的方法(如 focus)

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

函數(shù)式子組件 forwardRef

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

相關(guān)文章

  • vue下拉刷新組件的開發(fā)及slot的使用詳解

    vue下拉刷新組件的開發(fā)及slot的使用詳解

    這篇文章主要介紹了vue下拉刷新組件的開發(fā)及slot的使用詳解,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • vue項目在env文件中設(shè)置的變量無效問題及解決

    vue項目在env文件中設(shè)置的變量無效問題及解決

    這篇文章主要介紹了vue項目在env文件中設(shè)置的變量無效問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 教你在vue?中使用?svg?symbols

    教你在vue?中使用?svg?symbols

    這篇文章主要介紹了如何在?vue?中使用?svg?symbols,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • electron + vue項目實現(xiàn)打印小票功能及實現(xiàn)代碼

    electron + vue項目實現(xiàn)打印小票功能及實現(xiàn)代碼

    這篇文章主要介紹了electron + vue項目實現(xiàn)打印小票功能,需要的朋友可以參考下
    2018-11-11
  • vue構(gòu)建單頁面應(yīng)用實戰(zhàn)

    vue構(gòu)建單頁面應(yīng)用實戰(zhàn)

    本篇文章主要介紹了vue構(gòu)建單頁面應(yīng)用實戰(zhàn),使用 SPA,沒有頁面切換,就沒有白屏阻塞,可以大大提高 H5 的性能,達(dá)到接近原生的流暢體驗。
    2017-04-04
  • vue3 axios安裝及使用示例詳解

    vue3 axios安裝及使用示例詳解

    這篇文章主要介紹了vue3 axios安裝及使用示例代碼,本文通過示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • Vue3管理后臺項目使用高德地圖選點(diǎn)的實現(xiàn)

    Vue3管理后臺項目使用高德地圖選點(diǎn)的實現(xiàn)

    本文主要介紹了Vue3管理后臺項目使用高德地圖選點(diǎn)的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • element自定義表單驗證上傳身份證正反面的實現(xiàn)

    element自定義表單驗證上傳身份證正反面的實現(xiàn)

    表單驗證在很多地方都可以用的到,本文主要介紹了element自定義表單驗證上傳身份證正反面的實現(xiàn),文中根據(jù)實例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 詳細(xì)解讀VUE父子組件的使用

    詳細(xì)解讀VUE父子組件的使用

    這篇文章主要介紹了詳細(xì)解讀VUE父子組件的使用,今天來講一種子父組件深度耦合的方式,使我們不用額外的創(chuàng)建新的組件,也可以達(dá)到一些效果,下面與你們分享一下
    2023-05-05
  • Vue自定義依賴引入的最佳實踐記錄

    Vue自定義依賴引入的最佳實踐記錄

    在現(xiàn)代前端開發(fā)中,自定義引入依賴是提升開發(fā)效率的關(guān)鍵,unplugin-auto-import插件可以幫助開發(fā)者自動引入JS模塊,包括本地編寫的工具方法和第三方庫,通過簡單的配置,開發(fā)者可以實現(xiàn)Vue基本庫、本地文件以及第三方插件的自動引入
    2024-10-10

最新評論

吉木乃县| 阿克苏市| 渑池县| 阳曲县| 潜山县| 清镇市| 出国| 西峡县| 巧家县| 陇南市| 视频| 衢州市| 确山县| 福建省| 开化县| 扎囊县| 车险| 油尖旺区| 慈利县| 东兴市| 台江县| 梓潼县| 德安县| 乌什县| 景东| 广东省| 凌源市| 大安市| 屯昌县| 张家港市| 景谷| 赞皇县| 东光县| 越西县| 新沂市| 宕昌县| 六盘水市| 江阴市| 永济市| 淄博市| 长丰县|