vue組件通信傳值操作示例

這篇文章主要介紹了vue組件通信傳值操作,結合實例形式分析了vue.js父子組件通信及兄弟組件通信相關操作技巧,需要的朋友可以參考下

本文實例講述了vue組件通信傳值操作。分享給大家供大家參考,具體如下:

父子組件通信:

子組件

<template>
 <div>
  <h3 @click="alerrt"> 我是子組件一</h3>
  <span>{{parentMessage}}</span>
 </div>
</template>
<script>
 export default{
  props: ['parentMessage'],
  mounted() {
   // this.$emit('childEvent');
  },
  methods:{
   alerrt(){
    this.$emit('childEvent',{name:'zhangsan',age:10 });
   }
  }
 }
</script>
<style scoped>
</style>

父組件

<template>
 <div>
  <h2>父組件</h2>
  <span>父組件傳遞消息給子組件</span>
  <br>
  <router-view @childEvent="parentMethod" :parentMessage="parentMessage" />
  <!-- <Child-one :parentMessage="parentMessage"></Child-one> -->
  <button type="" @click='extendTest'>extend</button>
  <div id="extend"></div>
 </div>
</template>
<script>
 import ChildOne from './ChildOne'
 export default{
  components: {
   ChildOne
  },
  methods: {
   parentMethod({name,age}) {
    alert(this.parentMessage);
    console.log(this.parentMessage,name,age);
   },
   extendTest() {
    console.log('333');
    var Extend = Vue.extend({
     template: '<p>{{firstName}} {{lastName}} aka {{alias}}</p>',
     data: function () {
      return {
       firstName: 'Walter',
       lastName: 'White',
       alias: 'Heisenberg'
      }
     }
    })
    new Extend().$mount('#extend')
   },
  },
  data () {
   return {
    parentMessage: '我是來自父組件的消息aaaa'
   }
  }
 }
</script>
<style scoped>
</style>

兄弟組件通信:

在main,js里加

import Vue from 'vue'
window.eventBus = new Vue();

在組件裏

兄弟1組件:

window.eventBus.$emit('函數名稱', {參數 鍵:值});

兄弟2組件:

window.eventBus.$on('grouprecording',參數 =>{
//處理數據
})

希望本文所述對大家vue.js程序設計有所幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章