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

vue中關(guān)于this.refs為空出現(xiàn)原因及分析

 更新時(shí)間:2023年05月19日 09:13:56   作者:27℃涼白開  
這篇文章主要介紹了vue中關(guān)于this.refs為空出現(xiàn)原因及分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue關(guān)于this.refs為空出現(xiàn)原因分析

場(chǎng)景

在使用vue過程中,本想調(diào)用子組件的數(shù)據(jù),但嘗試多次一直獲取失敗。

經(jīng)過分析有以下原因

這里寫圖片描述

1、在生命周期mounted之前的鉤子函數(shù)中去調(diào)用會(huì)獲取不到,原因是DOM節(jié)點(diǎn)都沒有生成。

2 、this.refs的組件在v-if為false的父節(jié)點(diǎn)下,導(dǎo)致這個(gè)子組件未渲染,所以獲取不到。

注意

一定是組件已經(jīng)渲染成功才能調(diào)用組件的數(shù)據(jù)。而不是頁(yè)面加載完成后就一定能獲取到

vue this.$refs的使用

案例一、ref 寫在標(biāo)簽上時(shí)

<!-- ref 寫在標(biāo)簽上時(shí):this.$refs.名字  獲取的是標(biāo)簽對(duì)應(yīng)的dom元素
     ref 寫在組件上時(shí):這時(shí)候獲取到的是 子組件(比如counter)的引用-->
    <div id="root">
        <!-- ref = 'hello': 給div 起了一個(gè)引用的名字 hello -->
        <div
            ref = 'hello'
            @click = "handleClick">
            laugh yourself
        </div>
    </div>
    <script>
        var vm = new Vue({
            el: '#root',
            methods: {
                handleClick: function() {
                    //this.$refs : 獲取整個(gè)Vue實(shí)例中所有的引用 然后再找到hello這個(gè)引用 指向div那個(gè)dom節(jié)點(diǎn)
                    //console.log(this.$refs.hello)
                    alert(this.$refs.hello.innerHTML)
                }
            }
        })
    </script>

案例二、 ref 寫在組件上時(shí)

計(jì)數(shù):

<!-- ref 寫在標(biāo)簽上時(shí):this.$refs.名字  獲取的是標(biāo)簽對(duì)應(yīng)的dom元素
     ref 寫在組件上時(shí):這時(shí)候獲取到的是 子組件(比如counter)的引用-->
    <div id="root">
        <!-- 子組件觸發(fā)了事件 這里父組件(模板區(qū)里面)監(jiān)聽該事件 調(diào)用handleChange方法 
                                    因此handleChange方法定義在父組件的methods里面-->
        <counter ref="one" @change="handleChange"></counter>
        <counter ref="two" @change="handleChange"></counter>
        <div>{{total}}</div>
    </div>
    <script>
        Vue.component('counter', {
            template: '<div @click="handleClick"> {{number}} </div>',
            data: function() {
                return {
                    number: 0
                }
            },
            methods: {
                handleClick: function() {
                    this.number ++
                    //子組件向父組件傳值  子組件被點(diǎn)擊的時(shí)候 number+1  同時(shí)告訴外面 也即是觸發(fā)一個(gè)事件
                    this.$emit('change')
                }
            },
        })
        var vm = new Vue({
            el: '#root',
            data: {
                total: 0
            },
            methods: {
                handleChange: function() {
                    //在此方法中計(jì)算兩個(gè)數(shù)量的和  通過this.$refs.引用名字 獲取兩個(gè)子組件的引用
                    this.total = this.$refs.one.number +
                                    this.$refs.two.number
                }
            }
        })
    </script>

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue實(shí)現(xiàn)下拉菜單樹

    vue實(shí)現(xiàn)下拉菜單樹

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)下拉菜單樹,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • vue項(xiàng)目中使用vue-i18n報(bào)錯(cuò)的解決方法

    vue項(xiàng)目中使用vue-i18n報(bào)錯(cuò)的解決方法

    這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目中使用vue-i18n報(bào)錯(cuò)的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • VUE2語(yǔ)法中$refs和ref屬性的使用方式

    VUE2語(yǔ)法中$refs和ref屬性的使用方式

    在Vue中如何使用$refs和ref屬性來(lái)操作DOM和組件實(shí)例,$refs是一個(gè)對(duì)象,包含由ref屬性注冊(cè)的DOM元素和組件實(shí)例,通過$refs可以在Vue中獲取DOM節(jié)點(diǎn)、組件實(shí)例、組件數(shù)據(jù)和屬性等
    2025-10-10
  • vue之寬度動(dòng)態(tài)設(shè)置的幾種常用方式

    vue之寬度動(dòng)態(tài)設(shè)置的幾種常用方式

    這段文章介紹了如何在Vue項(xiàng)目中根據(jù)窗口尺寸動(dòng)態(tài)設(shè)置元素寬度的方法,重點(diǎn)提及了vw單位、resize事件及@vueuse/core庫(kù)的應(yīng)用,適用于前端開發(fā)人員優(yōu)化布局適應(yīng)性屏幕
    2026-05-05
  • vue利用better-scroll實(shí)現(xiàn)輪播圖與頁(yè)面滾動(dòng)詳解

    vue利用better-scroll實(shí)現(xiàn)輪播圖與頁(yè)面滾動(dòng)詳解

    在我們?nèi)粘5捻?xiàng)目開發(fā)中,處理滾動(dòng)和輪播圖是再常見不過的需求了,下面這篇文章主要給大家介紹了關(guān)于vue利用better-scroll實(shí)現(xiàn)輪播圖與頁(yè)面滾動(dòng)的相關(guān)資料,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來(lái)一起看看吧。
    2017-10-10
  • vue切換菜單取消未完成接口請(qǐng)求的案例

    vue切換菜單取消未完成接口請(qǐng)求的案例

    這篇文章主要介紹了vue切換菜單取消未完成接口請(qǐng)求的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-11-11
  • vue使用el-upload上傳文件及Feign服務(wù)間傳遞文件的方法

    vue使用el-upload上傳文件及Feign服務(wù)間傳遞文件的方法

    這篇文章主要介紹了vue使用el-upload上傳文件及Feign服務(wù)間傳遞文件的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2019-03-03
  • 使用vue-antd動(dòng)態(tài)切換主題

    使用vue-antd動(dòng)態(tài)切換主題

    這篇文章主要介紹了使用vue-antd動(dòng)態(tài)切換主題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue.js中實(shí)現(xiàn)密碼修改及頁(yè)面跳轉(zhuǎn)和刷新的完整指南

    Vue.js中實(shí)現(xiàn)密碼修改及頁(yè)面跳轉(zhuǎn)和刷新的完整指南

    在現(xiàn)代Web應(yīng)用中,用戶賬戶管理是一個(gè)核心功能,其中密碼修改是一個(gè)常見的需求,本文將詳細(xì)介紹如何在Vue.js應(yīng)用中實(shí)現(xiàn)用戶密碼修改功能,并在成功后跳轉(zhuǎn)到登錄頁(yè)面并刷新該頁(yè)面,需要的朋友可以參考下
    2024-12-12
  • Vue實(shí)現(xiàn)點(diǎn)擊按鈕復(fù)制文本內(nèi)容的例子

    Vue實(shí)現(xiàn)點(diǎn)擊按鈕復(fù)制文本內(nèi)容的例子

    今天小編就為大家分享一篇Vue實(shí)現(xiàn)點(diǎn)擊按鈕復(fù)制文本內(nèi)容的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2019-11-11

最新評(píng)論

永胜县| 山西省| 玛多县| 横峰县| 恩施市| 蓬安县| 嫩江县| 清原| 南溪县| 洪湖市| 长治市| 青川县| 文成县| 马边| 石门县| 温泉县| 大田县| 平南县| 神农架林区| 上饶市| 洪江市| 四会市| 醴陵市| 确山县| 福清市| 辽源市| 乌苏市| 孟州市| 化德县| 甘肃省| 汉中市| 北安市| 儋州市| 北京市| 启东市| 安龙县| 廊坊市| 云霄县| 江北区| 凤台县| 商水县|