溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue子組件中怎么通過自定義事件向父組件傳遞數據

發布時間:2021-07-21 14:13:36 來源:億速云 閱讀:331 作者:Leah 欄目:web開發

這篇文章將為大家詳細講解有關vue子組件中怎么通過自定義事件向父組件傳遞數據,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

使用v-on綁定自定義事件可以讓子組件向父組件傳遞數據,用到了this.$emit(‘自定義的事件名稱',傳遞給父組件的數據)

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <script src="../js/vue.js"></script>
</head>
<body>
<div id="app">
<parent-component></parent-component>
</div>
<template id="parent-component">
<div>
 <p>總數是{{total}}</p>
 <child-component @increment="incrementTotal"></child-component>
 <!--@increment是子組件this.$emit('increment'自定義的事件用來告訴父組件自己干了什么事
 然后會觸發父子間incrementTotal的方法來更新父組件的內容)-->
</div>
</template>
<template id="child-component">
 <button @click="increment()">{{mycounter}}</button>
</template>
<script>
 var child=Vue.extend({
  template:"#child-component",
  data:function () {
   return {
    mycounter:0
   }
  },
  methods:{
   increment:function(){
    this.mycounter=10;
    this.$emit("increment",this.mycounter);//把this.mycounter傳遞給父組件
   }
  }
 })
 var parent=Vue.extend({
  data:function () {
   return {
    total:0
   }
  },
  methods:{
   incrementTotal:function(newValue){
    this.total+=newValue;
   }
  },
  template:"#parent-component",
  components:{
   'child-component':child
  }
 })
 var vm=new Vue({
  el:"#app",
  components:{
   'parent-component':parent
  }
 })
</script>
</body>
</html>

@increment是子組件this.$emit('increment'自定義的事件,newValue)用來告訴父組件自己干了什么事

同時還可以傳遞新的數據給父組件

然后會觸發父子間incrementTotal的方法來更新父組件的內容)。

這里需要注意幾個點:

1.

vue子組件中怎么通過自定義事件向父組件傳遞數據

圖中紅色圈中的部分是對應的,子組件在自己的methods方法里面寫自己的事件實現,然后再父組件里面寫字組件時給子組件綁定上methods方法里面的

事件名稱,要一一對應

vue子組件中怎么通過自定義事件向父組件傳遞數據

這里自定義事件里面的要寫父組件的方法名,父組件里面定義該方法。

vue子組件中怎么通過自定義事件向父組件傳遞數據

父組件里面的方法可以接收子組件this.$emit('increment',this.mycounter);傳遞過來的數值:this.mycounter,

到父組件的方法里面就是newValue參數,這樣就實現了子組件向父組件傳遞數據

關于vue子組件中怎么通過自定義事件向父組件傳遞數據就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女