1. 程式人生 > >Vue2.0中子元件向父元件傳遞資料的方法,以完整demo演示

Vue2.0中子元件向父元件傳遞資料的方法,以完整demo演示

子元件child.vue原始碼:

<template>
  <div class="child">
    <button @click="sendData">點擊向父元件傳資料</button>
  </div>
</template>

<script type="text/ecmascript-6">
export default {
  data() {
    return {
      msg: '子元件資料'
    }
  },
  methods: {
    sendData() {
      this.$emit('childHadSend', this.msg)
    }
  }
}
</script>

<style>

</style>
解釋:點選button觸發sendData方法,sendData方法中使用this.$emit方法向父元件派發了一個childHadSend事件,第二個引數為需要傳遞的資料。

父元件原始碼:

<template>
  <div id="app">
    <child @childHadSend="getData"></child>
   <p>{{childData}}</p>
  </div>
</template>

<script type="text/ecmascript-6">
  import Child from 'components/child/child'
  export default {
    data() {
      return {
        childData: ''
      }
    },
    methods: {
      getData(data) {
        this.childData = data
      }
    },
    components: {
      Child
    }
  }
</script>

<style>
</style>
解釋:父元件接收到子元件派發的childHadSend方法,觸發了getData方法,並將this.childData設定為傳過來的data值,使得<p></p>中的值顯示為子元件資料。

點選button後的執行結果: