最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue實(shí)現(xiàn)父子組件傳值其實(shí)不難

 更新時間:2023年03月24日 14:35:05   作者:小天才程序員  
這篇文章主要介紹了Vue實(shí)現(xiàn)父子組件傳值其實(shí)不難問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

父傳子

通過 props。props 就是用來接收來自父組件的數(shù)據(jù)的。

下圖是大致的示意圖。

父傳子示意圖

代碼實(shí)現(xiàn)

1.在父組件中引用子組件時,使用屬性傳值。

① 如果是簡單的靜態(tài)值可以不適用 v-bind。<Child title="dataToChild" />

② 大多情況下時使用動態(tài)傳值,使用 v-bind 即可。<Child :title="dataToChild" />

parent.vue

<template>
  <Child title="dataToChild" />
</template>
<script>
import Child from './child' //引入子組件
export default{
  components: { Child },
  data () {
    return {
      dataToChild: 'From Parent to Child'
    }
  }
}
</script>

2.子組件中使用 props 接收。

props 可以是對象或簡單數(shù)組,并且可以對對象進(jìn)行類型、默認(rèn)值等高級配置

① 簡單字符數(shù)組。就是簡單列出要接收的數(shù)據(jù)的屬性名,并不可以是對象數(shù)組。

props:[ 'data1', 'data2' ]

② 對象。

props:{ 
  data1:{
    type: String, 
    default: 'no data'
  },
  data2:{
    type: Number, 
    default: 0,
    required: true
  }
}

child.vue

<template>
  <div class="children">
    <div>來自父組件的值是:{{title}}</div>
  </div>
</template>

<script>
export default {
  props: {
    title: {
      type: String, //接收值得類型
      default: '父組件沒傳值' //配置默認(rèn)值
    }
  },
  //或者可以寫成簡單數(shù)組 props: ['title'],
  data () {
    return {}
  }
}
</script>

父組件傳值到子組件就是 vue 單向數(shù)據(jù)流的一般表現(xiàn): 父級 prop 的更新會向下流動到子組件中,但是反過來則不行。

子傳父

通過 v-on$emit

子傳父

Vue中父子組件的關(guān)系可以總結(jié)為 prop 向下傳遞,事件向上傳遞。

父組件通過 prop 給子組件下發(fā)數(shù)據(jù),子組件通過事件給父組件傳遞信息。

父子組件關(guān)系

代碼實(shí)現(xiàn)

1.在父組件中把定義事件綁定到子組件。

parent.vue

<template>
  <div class="parent">
    <Child @child="getChildData" />
    <p>子組件傳給父組件的值:{{dataFromChild}}</p>
  </div>
</template>

<script>
import Child from './Child'
export default {
  components: { Child },
  data () {
    return {
      dataFromChild: ''
    }
  },
  methods: {
  	/* 自定義事件 */
    getChildData (param) {
      this.dataFromChild = param
    }
  }
}
</script>

2.在子組件中觸發(fā)父組件中自定義的函數(shù)并傳遞參數(shù)

child.vue

<template>
  <div class="child-parent">
    <input type="text" v-model="toParent" />
    <button @click="dataToParent">傳值到父組件</button>
  </div>
</template>

<script>
export default {
  data () {
    return {
      toParent: 'From Child to Parent'
    }
  },
  methods: {
    dataToParent () {
      this.$emit('child', this.toParent)
    }
  }
}
</script>

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

济宁市| 绩溪县| 宣恩县| 吴川市| 札达县| 开平市| 确山县| 九江县| 永登县| 乌鲁木齐市| 岑巩县| 巴林右旗| 静安区| 沾化县| 广昌县| 雅安市| 黑水县| 和政县| 阿图什市| 光泽县| 隆回县| 河南省| 肥城市| 临城县| 铁岭市| 乌恰县| 洛南县| 乡城县| 太康县| 区。| 天等县| 井研县| 东安县| 托克逊县| 延安市| 阳朔县| 潢川县| 老河口市| 广饶县| 雷波县| 阿拉善右旗|