vue中父傳子,子傳父 怎么相互傳值(個人理解)


父傳子:

子組件使用props接收父組件的值

父組件(test.vue):

 1    <template>
 2   <!-- 父傳子 -->
 3  <div class="container">
 4     父組件:<input type="text" v-model="value">
 5     <!-- 引入子組件 -->
 6     <com-b :zhangsan="value"></com-b>
 7  </div>
 8 </template>
 9 
10 <script>
11 import comB from '@/components/com-b'
12 export default {
13  data() {
14   return {
15     value:''
16   }
17  },
18  methods:{
19    
20  },
21  components: {
22    comB
23  }
24 }
25 </script>
父組件代碼

子組件(com-b.vue)在component文件夾中創建:

 1 <template>
 2  <div class="container">
 3    <!-- 這是子組件 -->
 4    <div>{{zhangsan}}</div>
 5  </div>
 6 </template>
 7 
 8 <script>
 9 export default {
10  data() {
11   return {
12   }
13  },
14  props:['zhangsan'],
15  methods:{
16    
17  },
18 }
19 </script>
子組件代碼

子傳父:

子傳父需要事件觸發

子組件(com-b.vue)在component文件夾中創建:

 1 <template>
 2  <div class="container">
 3    <!-- 這是子組件 -->
 4    <!-- 點擊按鈕后將自組件的數據傳給父組件 -->
 5   {{msg}}
 6    <button @click="ClickEvent()">點擊自組件發送數據給父組件</button>
 7  </div>
 8 </template>
 9 
10 <script>
11 export default {
12  data() {
13   return {
14     msg:'我是自組件數據'
15   }
16  },
17  methods:{
18    //點擊事件
19    ClickEvent(){
20      //this.$emit('監聽事件','要傳遞的值')
21      this.$emit('listenEvent',this.msg)
22    }
23  },
24 }
25 </script>
子組件代碼

父組件(test.vue):

 1   <!-- 子傳父 -->
 2  <template>
 3  <div class="container">
 4   <!-- 引入自組件-->
 5    <!-- 在父組件中使用傳遞的事件進行監聽,回調函數fn -->
 6    <!-- 事件可以自定義,回調函數也可以自定義 -->
 7   <com-b @listenEvent="fn"></com-b>
 8    {{value}}
 9  </div>
10 </template>
11 
12 <script>
13 import comB from '@/components/com-b'
14 export default {
15  data() {
16   return {
17     value:''
18   }
19  },
20  methods:{
21   //函數接收一個參數,這個參數就是子組件傳遞的參數
22    fn(data){
23      this.value=data
24      console.log(data)
25    }
26  },
27  components: {
28    comB
29  }
30 }
父組件代碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM