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

vue實(shí)現(xiàn)父組件獲取子組件的方法或?qū)傩灾翟斀?/h1>
 更新時(shí)間:2022年03月31日 09:22:31   作者:mini74  
這篇文章主要介紹了vue實(shí)現(xiàn)父組件獲取子組件的方法或?qū)傩灾翟斀?,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

父組件獲取子組件方法或?qū)傩灾?/h2>

vue的本質(zhì)就是每一塊只負(fù)責(zé)自己這一塊的工作,這樣更容易維護(hù)。

這里主要使用了vue的$ref

  • 當(dāng)用在一般的標(biāo)簽上時(shí),主要功能是獲取dom節(jié)點(diǎn),進(jìn)行一些dom的操作。
  • 當(dāng)使用在子組件上,可以用來獲取子組件的屬性。

那么下面我們要實(shí)現(xiàn)的就是如何在父組件上使用子組件的方法

目標(biāo):我需要實(shí)現(xiàn)一個(gè)在父組件上控制子組件的彈窗顯示,并且通過參數(shù)判斷顯示哪一個(gè)內(nèi)容。

首先我們很容易想到就是綁定一個(gè)點(diǎn)擊事件,并且攜帶一個(gè)參數(shù),并且獲取子組件的屬性,這樣在這個(gè)父組件中我并沒有控制子組件的開關(guān),只是我獲取了子組件的方法或者屬性,讓子組件自己控制開關(guān)。

//這里是子組件
<popup ?ref="popup"></popup>
//綁定點(diǎn)擊事件,并且攜帶參數(shù)
<div class="item-box" @click="showPop('teacher')">
//定義點(diǎn)擊事件
showPop(event) {
//獲取子組件的屬性/方法,這里是獲取popup子組件的show方法,并且攜帶參數(shù)
?? ?this.$refs.popup.show(event);
},

在子組件中就需要定義方法,控制顯示彈窗內(nèi)容,并且將傳遞過來的參數(shù)保存

//控制彈窗的顯示隱藏
<div v-show="showPopup">
? ? ?<!-- 關(guān)閉按鈕,點(diǎn)擊直接將showPopup定義為false-->
? ? ? <div class="closePopup" @click="showPopup = false"></div>
? ? ? <!-- 老師數(shù)量 -->
? ? ? //通過判斷type值控制顯示哪個(gè)彈窗內(nèi)容
? ? ? <teacher v-if="type =='teacher'"></teacher>
? ? ? <student v-else-if="type =='student'"></student>
? ? ? <turnover v-else></turnover>
</div>
//在data中定義默認(rèn)值
data(){
? ? ?return {
? ? ? ? ? showPopup: false,
? ? ? ? ? type: ''
? ? ? }
? },
//最后在methods中定義show方法,控制彈窗的顯示
methods:{
? ?show(type){
? ? ? ? this.type = type
? ? ? ? this.showPopup = true;
? ? }
}

這樣就完成了,每個(gè)組件只負(fù)責(zé)我自己需要做的事情,不會(huì)影響到其他組件,這樣更易于維護(hù)。 

父組件獲取子組件中的變量

在vue項(xiàng)目日常開發(fā)中,難免要把功能性組件抽離出來,這樣結(jié)構(gòu)就會(huì)出現(xiàn)父子組價(jià),兄弟組件等,但是這樣就會(huì)涉及到不同組件需要互相使用其中的值得問題。

之前有說過通過ref來讓父組件操作子組件,并且傳值,那么我們今天來詳細(xì)看看。

案例一:點(diǎn)擊父組件的按鈕,操作子組件顯示

注:可以通過獲取id/class來操作,這里我就不介紹這種方法了,至于jquery的話,在vue中還是慎用。

介紹:這里通過給子組件綁定ref屬性,引號(hào)命名自定義,然后父組件通過 this.$refs.名字 就可以操作子組件的元素,以改變它的樣式等。

<template>
? ? <div class="DbSource-box">
? ? ? ? <el-button type="primary" icon="" class="addBtn" @click="addDbSource()">新增</el-button>
? ? ? ? <db-source-add ref="addAlert" v-on:init="init"></db-source-add>
? ? </div>
</template>
<script>
? ? import DbSourceAdd from "../components/DbSourceManager/DbSourceAdd";
? ? export default {
? ? ? ? name: "DbSourceManager",
? ? ? ? components: {DbSourceAdd},
? ? ? ? methods: {
? ? ? ? ? ? // 點(diǎn)擊新增按鈕,彈出新增數(shù)據(jù)源的彈框
? ? ? ? ? ? addDbSource(){
? ? ? ? ? ? ? ? this.$refs.addAlert.$el.style.display = "block";
? ? ? ? ? ? },
? ? ? ? }
? ? }
</script>

案列二:獲取子組件data中的變量

父組件:

這里通過給子組件綁定ref屬性,引號(hào)中的命名自定義,然后父組件通過 this.$refs.名字.變量名 就可以獲得子組件中的值

<template>
? ? <div class="DbSource-box">
? ? ? ? <el-button type="primary" icon="" class="selectBtn" @click="deleteSelectDbSource()">批量刪除</el-button>
? ? ? ? <db-source-table ref="getSelectData" :Data="Data" v-on:init="init"></db-source-table>
? ? </div>
</template>
<script>
? ? import DbSourceTable from "../components/DbSourceManager/DbSourceTable";
? ? export default {
? ? ? ? name: "DbSourceManager",
? ? ? ? components: {DbSourceTable},
? ? ? ? methods: {
? ? ? ? ? ? // 刪除選中的數(shù)據(jù)源(批量刪除)
? ? ? ? ? ? deleteSelectDbSource(){
? ? ? ? ? ? ? ? console.log(this.$refs.getSelectData.multipleSelection)
? ? ? ? ? ? },
? ? ? ? }
? ? }
</script>

子組件:

<template>
? ? <div class="table-box">
? ? ? ??
? ? </div>
</template>
<script>
? ? export default {
? ? ? ? name: "DbSourceTable",
? ? ? ? props:["Data"],
? ? ? ? data(){
? ? ? ? ? ? return {
? ? ? ? ? ? ? ? multipleSelection:[],
? ? ? ? ? ? ? ? pagesize: 3,
? ? ? ? ? ? ? ? currpage: 1,
? ? ? ? ? ? ? ? currId:""
? ? ? ? ? ? }
? ? ? ? }
</script>

好了,以上就是父組件獲取子組件的值并且操作子組件的方法。

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

相關(guān)文章

  • Vue中的局部組件介紹

    Vue中的局部組件介紹

    這篇文章主要介紹了Vue中的局部組件,文章圍繞Vue局部組件得相關(guān)資料展開內(nèi)容,需要的的小孩伙伴請(qǐng)參考下面文章的具體介紹,希望對(duì)你有所幫助
    2021-12-12
  • 解決Element-ui radio單選框label布爾/數(shù)值的一個(gè)坑

    解決Element-ui radio單選框label布爾/數(shù)值的一個(gè)坑

    這篇文章主要介紹了解決Element-ui radio單選框label布爾/數(shù)值的一個(gè)坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • JointJS流程圖的繪制方法

    JointJS流程圖的繪制方法

    這篇文章主要為大家介紹了JointJS流程圖的繪制方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Vue 如何使用props、emit實(shí)現(xiàn)自定義雙向綁定的實(shí)現(xiàn)

    Vue 如何使用props、emit實(shí)現(xiàn)自定義雙向綁定的實(shí)現(xiàn)

    這篇文章主要介紹了Vue 如何使用props、emit實(shí)現(xiàn)自定義雙向綁定的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • vue+elementUI實(shí)現(xiàn)動(dòng)態(tài)面包屑

    vue+elementUI實(shí)現(xiàn)動(dòng)態(tài)面包屑

    這篇文章主要為大家詳細(xì)介紹了vue+elementUI實(shí)現(xiàn)動(dòng)態(tài)面包屑,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Vue3如何使用Vue-Router進(jìn)行路由控制

    Vue3如何使用Vue-Router進(jìn)行路由控制

    無論是小型項(xiàng)目還是中大型項(xiàng)目,Vue-Router都是必選的一個(gè)組件,Vue-Router提供了便捷的方式進(jìn)行路由跳轉(zhuǎn),在使用過程中有一些坑,希望能給在編碼找不到問題時(shí)的碼農(nóng)提供一點(diǎn)靈感
    2022-06-06
  • 在uni-app中使用element-ui的方法與報(bào)錯(cuò)解決

    在uni-app中使用element-ui的方法與報(bào)錯(cuò)解決

    我們?cè)陂_web開發(fā)的時(shí)候,經(jīng)常會(huì)使用到element或者uview-ui,下面這篇文章主要給大家介紹了關(guān)于在uni-app中使用element-ui的方法與報(bào)錯(cuò)解決的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • vue中如何防止用戶頻繁點(diǎn)擊按鈕詳解

    vue中如何防止用戶頻繁點(diǎn)擊按鈕詳解

    在后臺(tái)使用過程中經(jīng)常會(huì)因?yàn)榘粹o重復(fù)點(diǎn)擊,而造成發(fā)送多次重復(fù)請(qǐng)求 以下方法可以避免這種情況,下面這篇文章主要給大家介紹了關(guān)于vue中如何防止用戶頻繁點(diǎn)擊按鈕的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • Vue實(shí)現(xiàn)dom元素拖拽并限制移動(dòng)范圍的操作代碼

    Vue實(shí)現(xiàn)dom元素拖拽并限制移動(dòng)范圍的操作代碼

    這篇文章主要介紹了Vue實(shí)現(xiàn)dom元素拖拽并限制移動(dòng)范圍的操作代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-12-12
  • vue自定義組件實(shí)現(xiàn)雙向綁定

    vue自定義組件實(shí)現(xiàn)雙向綁定

    這篇文章主要為大家詳細(xì)介紹了vue自定義組件實(shí)現(xiàn)雙向綁定,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01

最新評(píng)論