Vue三种常用传值示例(父传子、子传父、非父子)


Posted in Javascript onJuly 24, 2018

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="点击触发" @click="childClick">
   </div>
  </template>
  <script>
   export default {
   data () {
    return {
    childValue: '我是子组件的数据'
    }
   },
   methods: {
    childClick () {
    // childByValue是在父组件on监听的方法
    // 第二个参数this.childValue是需要传的值
    this.$emit('childByValue', this.childValue)
    }
   }
   }
  </script>

父组件:

<template>
 <div>
 父组件:
 <span>{{name}}</span>
 <br>
 <br>
 <!-- 引入子组件 定义一个on的方法监听子组件的状态-->
 <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.js
import Vue from 'vue'
export default new Vue()

组件A:

<template>
 <div>
 A组件:
 <span>{{elementValue}}</span>
 <input type="button" value="点击触发" @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="点击触发" @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事件来接收参数
   Bus.$on('val', (data) => {
   console.log(data)
   vm.name = data
   })
  },
  methods: {
   getData: function () {
   this.name++
   }
  }
  }
 </script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
深入浅析search 搜索框的写法
Aug 02 Javascript
angular route中使用resolve在uglify压缩后问题解决
Sep 21 Javascript
JavaScript错误处理和堆栈追踪详解
Apr 18 Javascript
浏览器调试动态js脚本的方法(图解)
Jan 19 Javascript
解决vue router组件状态刷新消失的问题
Aug 01 Javascript
微信小程序实现多个按钮的颜色状态转换
Feb 15 Javascript
vuex 中插件的编写案例解析
Jun 10 Javascript
小程序分页实践之编写可复用分页组件
Jul 18 Javascript
es6数组的flat(),flatMap()函数用法实例分析
Apr 18 Javascript
解决Vue 给mapState中定义的属性赋值报错的问题
Jun 22 Javascript
用javascript实现倒计时效果
Feb 09 Javascript
node.js如何自定义实现一个EventEmitter
Jul 16 Javascript
微信小程序实现横向增长表格的方法
Jul 24 #Javascript
vue中使用sessionStorage记住密码功能
Jul 24 #Javascript
Vue-router 中hash模式和history模式的区别
Jul 24 #Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
Jul 24 #Javascript
JS获取浏览器地址栏的多个参数值的任意值实例代码
Jul 24 #Javascript
JS实现全屏预览F11功能的示例代码
Jul 23 #Javascript
AngularJS ui-router刷新子页面路由的方法
Jul 23 #Javascript
You might like
PHP通过内置函数memory_get_usage()获取内存使用情况
2014/11/20 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
2015/05/13 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
PHP中FTP相关函数小结
2016/07/15 PHP
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
详解Yii实现分页的两种方法
2017/01/14 PHP
学习YUI.Ext 第三天
2007/03/10 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
jQuery修改class属性和CSS样式整理
2015/01/30 Javascript
JavaScript常用脚本汇总(一)
2015/03/04 Javascript
jquery实现先淡出再折叠收起的动画效果
2015/08/07 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
2015/11/04 Javascript
微信小程序 swiper组件详解及实例代码
2016/10/25 Javascript
VUE中使用Vue-resource完成交互
2017/07/21 Javascript
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
在Vue中获取组件声明时的name属性方法
2018/09/12 Javascript
JavaScript实现Tab标签页切换的最简便方式(4种)
2020/06/28 Javascript
vue调用微信JSDK 扫一扫,相册等需要注意的事项
2021/01/03 Vue.js
[01:04:35]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第一场
2018/04/04 DOTA
Python 除法小技巧
2008/09/06 Python
python使用reportlab画图示例(含中文汉字)
2013/12/03 Python
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
python搜索指定目录的方法
2015/04/29 Python
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
通过pykafka接收Kafka消息队列的方法
2018/12/27 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
Python实现某论坛自动签到功能
2019/08/20 Python
css3和jquery实现自定义checkbox和radiobox组件
2014/04/22 HTML / CSS
美国机场停车位预订:About Airport Parking
2018/03/26 全球购物
法人授权委托书公证范本
2014/09/14 职场文书
公安机关纪律作风整顿剖析
2014/10/10 职场文书
硕士学位论文评语
2014/12/31 职场文书
班主任寄语2016
2015/12/04 职场文书
2016入党积极分子党校培训心得体会
2016/01/06 职场文书
演讲稿之开卷有益
2019/08/07 职场文书
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
2021/05/25 MySQL