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

Vue中this.$emit和this.$on的使用

 更新時間:2024年03月24日 10:07:43   作者:易安sparkle  
這篇文章主要介紹了Vue中this.$emit和this.$on的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

1、解決第一次監(jiān)聽不到數據的方法

  • this.$nextTick()
this.$nextTick(function () {
     this.$bus.$emit("yulan", row); 
 })
  • setTimeout
setTimeout(() => {
     //row 代表要傳遞的參數數據
     this.$bus.$emit("yulan", row); 
}, 100);

2、子組件傳值給父組件

子組件中使用$emit觸發(fā)事件的值傳出去,父組件通過事件監(jiān)聽,獲取數據;

兩種情況

由子組件中操作何時傳值

(解決:在子組件中定義一個click事件觸發(fā)自定義事件$emit,在父組件監(jiān)聽)

// 父組件:parent.vue
<template>
  <div>
    <child @childevent='wathChildEvent'></child>
    <div>子組件的數據為:{{msg}}</div>
  </div>
</template>
<script>
import child from "./child";
export default {
  data(){
    return{
      msg:""
    }
  },
  components:{
    child
  },
  methods:{
    wathChildEvent:function(val){//直接監(jiān)聽 又子組件觸發(fā)的事件,參數為子組件的傳來的數據
      console.log(val);   //子組件的數據,將有子組件操作觸發(fā)傳給父組件
      this.msg = val;
    } 
  }
}
</script>

// 子組件:child.vue
<template>
  <div><input type="button" value="子組件觸發(fā)" @click="target"></div>
</template>
<script>
export default {
  data(){
      return {
          texts:'這是子組件的數據,將有子組件操作觸發(fā)傳給父組件'
      }
  },
  methods:{
    target:function(){ //有子組件的事件觸發(fā) 自定義事件childevent
      this.$emit('childevent',this.texts);//觸發(fā)一個在子組件中聲明的事件 childEvnet
    }
  },
}
</script>

由父組件中操作何時傳值

(解決:在父組件中第一一個click點擊事件,在組件中通過refs獲取實例方法來直接觸發(fā)事件,然后在父組件中監(jiān)聽)

// 父組件:parent.vue
<template>
  <div>
    <child @childevent='wathChildEvent' ref="childcomp"></child>
    <input type="button" @click="parentEnvet" value="父組件觸發(fā)" />
    <div>子組件的數據為:{{msg}}</div>
  </div>
</template>
<script>
import child from "./child";
export default {
  data(){
    return{
      msg:""
    }
  },
  components:{
    child
  },
  methods:{
    wathChildEvent:function(val){//直接監(jiān)聽 又子組件觸發(fā)的事件,參數為子組件的傳來的數據
      console.log(val);//子組件的數據,將有子組件操作觸發(fā)傳給父組件
      this.msg = val;
    },
    parentEnvet:function(){
      this.$refs['childcomp'].target(); //通過refs屬性獲取子組件實例,又父組件操作子組件的方法觸發(fā)事件$meit
    }
  }
}
</script>

// 子組件:child.vue
<template>
  <div> dothing </div>
</template>
<script>
export default {
  data(){
      return {
          texts:'這是子組件的數據,將有子組件操作觸發(fā)傳給父組件'
      }
  },
  methods:{
    target:function(){ //又子組件的事件觸發(fā) 自定義事件childevent
      this.$emit('childevent',this.texts);//觸發(fā)一個在子組件中聲明的事件 childEvnet
    }
  },
}
</script>

3、兄弟組件間傳值

  • 傳遞數據方–發(fā)射事件

通過事件傳遞$emit(方法名,傳遞的數據)

  • 接收數據方–監(jiān)聽事件

在mounted()中觸發(fā)$on(方法名,callback(接收數據的數據))

// 建立一個空的Vue實例,將通信事件掛載在該實例上
// emptyVue.js
import Vue from 'vue'
export default new Vue()

// 兄弟組件a:childa.vue
<template>
  <div>
    <span>A組件->{{msg}}</span>
    <input type="button" value="把a組件數據傳給b" @click ="send">
  </div>
</template>
<script>
import vmson from "./emptyVue"
export default {
  data(){
    return {
      msg:"我是a組件的數據"
    }
  },
  methods:{
    send:function(){
      vmson.$emit("aevent",this.msg)
    }
  }
}
</script>

// 兄弟組件b:childb.vue
<template>
   <div>
    <span>b組件,a傳的的數據為->{{msg}}</span>
  </div>
</template>
<script>
import vmson from "./emptyVue"
export default {
 data(){
    return {
      msg:""
    }
  },
  mounted(){
    vmson.$on("aevent",(val)=>{//監(jiān)聽事件aevent,回調函數要使用箭頭函數;
      console.log(val);//打印結果:我是a組件的數據
      this.msg = val;
    })
  }
}
</script>

// 父組件:parent.vue
<template>
  <div>
    <childa><childa>
    <childb></childb>
  </div>
</template>
<script>
import childa from "./childa";
import childb from "./childb";
export default {
  data(){
    return{
      msg:""
    }
  },
  components:{
    childa,
    childb
  },
}
</script>

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Vue中實現動態(tài)右鍵菜單的示例代碼

    Vue中實現動態(tài)右鍵菜單的示例代碼

    在前端開發(fā)中,實現自定義右鍵菜單能夠為用戶提供更多功能選項,本文就來介紹了Vue中實現動態(tài)右鍵菜單的示例代碼,感興趣的可以了解一下
    2024-11-11
  • vue通過路由實現頁面刷新的方法

    vue通過路由實現頁面刷新的方法

    本篇文章主要介紹了vue通過路由實現頁面刷新的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • Vue 遞歸多級菜單的實例代碼

    Vue 遞歸多級菜單的實例代碼

    這篇文章主要介紹了Vue 遞歸多級菜單的實例代碼,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • Vue+Vant實現7天日歷展示并在切換日期時實時變換功能

    Vue+Vant實現7天日歷展示并在切換日期時實時變換功能

    本文介紹了如何利用Vue和Vant框架結合moment.js插件來實現一個7天日歷展示功能,在這個功能中,用戶可以在切換日期時看到界面的實時變化,此外,文章還提供了代碼實現和效果測試的詳細步驟,幫助開發(fā)者能夠順利完成類似的項目開發(fā)
    2024-10-10
  • ElementUI中<el-form>標簽中ref、:model、:rules的作用淺析

    ElementUI中<el-form>標簽中ref、:model、:rules的作用淺析

    Element官方文檔中寫到,model是表單數據對象,rules是表單驗證規(guī)則,下面這篇文章主要給大家介紹了關于ElementUI中<el-form>標簽中ref、:model、:rules作用的相關資料,需要的朋友可以參考下
    2023-01-01
  • vue動態(tài)路由匹配和路由懶加載多種方法詳解

    vue動態(tài)路由匹配和路由懶加載多種方法詳解

    這篇文章主要介紹了vue動態(tài)路由匹配和路由懶加載,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • Vue常見面試題整理【值得收藏】

    Vue常見面試題整理【值得收藏】

    本文是小編給大家收藏整理的Vue常見面試題,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • Vue.use的原理和設計源碼探究

    Vue.use的原理和設計源碼探究

    這篇文章主要為大家介紹了Vue.use的原理和設計源碼探究詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Vue自定義省市區(qū)三級聯動

    Vue自定義省市區(qū)三級聯動

    這篇文章主要為大家詳細介紹了Vue自定義省市區(qū)三級聯動,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Vue組件間的雙向綁定示例解析

    Vue組件間的雙向綁定示例解析

    這篇文章主要介紹了Vue組件間的雙向綁定,我們都知道當父組件改變了某個值后,如果這個值傳給了子組件,那么子組件也會自動跟著改變,但是這是單向的,使用v-bind的方式,即子組件可以使用父組件的值,但是不能改變這個值
    2023-03-03

最新評論