国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Vue三種常用傳值示例(父傳子、子傳父、非父子)

2019-11-19 13:25:48
字體:
供稿:網(wǎng)友

1、父組件向子組件進行傳值:

父組件:

  <template>  <div>  父組件:  <input type="text" v-model="name">  <br>  <br>  <!-- 引入子組件 -->  <child :inputName="name"></child>  </div> </template> <script>  import child from './child'  export default {  components: {   child  },  data () {   return {   name: ''   }  }  } </script>

子組件:

 <template>  <div>  子組件:  <span>{{inputName}}</span>  </div> </template> <script>  export default {  // 接受父組件的值  props: {   inputName: String,   required: true  }  } </script>

2.子組件向父組件傳值

子組件:

  <template>   <div>   子組件:   <span>{{childValue}}</span>   <!-- 定義一個子組件傳值的方法 -->   <input type="button" value="點擊觸發(fā)" @click="childClick">   </div>  </template>  <script>   export default {   data () {    return {    childValue: '我是子組件的數(shù)據(jù)'    }   },   methods: {    childClick () {    // childByValue是在父組件on監(jiān)聽的方法    // 第二個參數(shù)this.childValue是需要傳的值    this.$emit('childByValue', this.childValue)    }   }   }  </script> 

父組件:

 <template> <div> 父組件: <span>{{name}}</span> <br> <br> <!-- 引入子組件 定義一個on的方法監(jiān)聽子組件的狀態(tài)--> <child v-on:childByValue="childByValue"></child> </div></template><script> import child from './child' export default { components: {  child }, data () {  return {  name: ''  } }, methods: {  childByValue: function (childValue) {  // childValue就是子組件傳過來的值  this.name = childValue  } } }</script>

3.非父子組件進行傳值。(非父子組件之間傳值,需要定義個公共的公共實例文件bus.js,作為中間倉庫來傳值,不然路由組件之間達不到傳值的效果。)

公共bus.js

//bus.jsimport Vue from 'vue'export default new Vue()

組件A:

<template> <div> A組件: <span>{{elementValue}}</span> <input type="button" value="點擊觸發(fā)" @click="elementByValue"> </div></template><script> // 引入公共的bug,來做為中間傳達的工具 import Bus from './bus.js' export default { data () {  return {  elementValue: 4  } }, methods: {  elementByValue: function () {  Bus.$emit('val', this.elementValue)  } } }</script>

組件B:

 <template>  <div>  B組件:  <input type="button" value="點擊觸發(fā)" @click="getData">  <span>{{name}}</span>  </div> </template> <script>  import Bus from './bus.js'  export default {  data () {   return {   name: 0   }  },  mounted: function () {   var vm = this   // 用$on事件來接收參數(shù)   Bus.$on('val', (data) => {   console.log(data)   vm.name = data   })  },  methods: {   getData: function () {   this.name++   }  }  } </script>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 雷州市| 绥滨县| 贵定县| 洪湖市| 吕梁市| 贵阳市| 佛冈县| 靖边县| 沙河市| 潢川县| 桂东县| 田东县| 雷波县| 贺兰县| 太白县| 兴业县| 建平县| 留坝县| 建湖县| 阿拉尔市| 南汇区| 乌兰县| 托克托县| 宕昌县| 鹤岗市| 会昌县| 英德市| 南丰县| 德保县| 阳新县| 济源市| 芮城县| 大同市| 高邮市| 施甸县| 新河县| 确山县| 嘉禾县| 洛南县| 武威市| 二手房|