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

vue 父組件通過$refs獲取子組件的值和方法詳解

 更新時間:2019年11月07日 17:37:04   作者:LeonWuV  
今天小編就為大家分享一篇vue 父組件通過$refs獲取子組件的值和方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

前言

在vue項目中組件之間的通訊是很常見的問題,同時也是很重要的問題,我們大致可以將其分為三種情況:

父傳子:在父組件中綁定值,在子組件中用props接收

子傳父:在父組件中監(jiān)聽一個事件,在子組件中利用$emit觸發(fā)這個事件并帶上數(shù)據(jù)作為第二個參數(shù),這時父組件中監(jiān)聽事件的回調(diào)函數(shù)就會被調(diào)用,回調(diào)函數(shù)的參數(shù)就是子組件帶上來的數(shù)據(jù),這樣就可以在父組件中使用子組件的數(shù)據(jù)了,

兄弟之間的傳遞:我們可以使用事件總線(eventBus)來輕松的解決,其實就是發(fā)布訂閱者模式

今天我們要看的是父組件如何直接調(diào)取子組件的數(shù)據(jù)和方法,而不是通過子組件傳上來的

在這里我們要理解父組件直接拿事件是在父組件上,子組件傳上來數(shù)據(jù),事件是在子組件上,是完全不同的兩種情況

代碼展示

子組件 children.vue,我們在子組件中定義了數(shù)據(jù)sonData和方法sonMethod

// children.vue

<template>
 <div>我是 children</div>
</template>

<script>
export default {
 data: () => ({
  sonData: '我是子組件的數(shù)據(jù)!'
 }),
 methods: {
  sonMethod() {
   console.log('我是子組件的方法!')
  }
 },
 computed: {
  
 },
 created() {

 }
}
</script>

父組件 文件

// 父組件

<template>
 <div>
  <children ref='ch'>
  </children>
  <h1 @click="onclick">父組件</h1>
 </div>
</template>

<script>
import children from './coms/children'
export default {
 data() {
  return {}
 },
 components: {
  children
 },
 methods: {
  onclick() {
  // 或者 let chil = this.$refs['ch']
   let chil = this.$refs.ch

  // 父組件可以通過$refs拿到子組件的對象
  // 然后直接調(diào)用子組件的 methods里的方法和data里的數(shù)據(jù)
   console.log(chil) //子組件對象
   console.log(chil.sonData) // 我是子組件的數(shù)據(jù)
   console.log(chil.sonMethod()) // 我是子組件的方法
  }
 }
}
</script>

注意事項

因為 ref 本身是作為渲染結(jié)果被創(chuàng)建的,在初始渲染的時候你不能訪問它們 - 它們還不存在!,所以它不是響應式的,不能用在模板或者計算屬性中。

以上這篇vue 父組件通過$refs獲取子組件的值和方法詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論