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 相关文章推荐
兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码
Apr 19 Javascript
jQuery中DOM树操作之复制元素的方法
Jan 23 Javascript
优化RequireJS项目的相关技巧总结
Jul 01 Javascript
AngularJS中的包含详细介绍及实现示例
Jul 28 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
Aug 05 Javascript
通过学习bootstrop导航条学会修改bootstrop颜色基调
Jun 11 Javascript
关于页面刷新vuex数据消失问题解决方案
Jul 03 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
Sep 05 Javascript
vue实现随机验证码功能的实例代码
Apr 30 Javascript
JavaScript中callee和caller的区别与用法实例分析
Jun 28 Javascript
如何换个角度使用VUE过滤器详解
Sep 11 Javascript
vue的路由映射问题及解决方案
Oct 14 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
Linux下进行MYSQL编程时插入中文乱码的解决方案
2007/03/15 PHP
如何使用php判断所处服务器操作系统的类型
2013/06/20 PHP
PHP使用逆波兰式计算工资的方法
2015/07/29 PHP
PHP打印输出函数汇总
2016/08/28 PHP
lnmp安装多版本PHP共存的方法详解
2018/08/02 PHP
js每次Title显示不同的名言
2008/09/25 Javascript
用jquery实现的一个超级简单的下拉菜单
2014/05/18 Javascript
JavaScript中DOM详解
2015/04/13 Javascript
javascript判断网页是关闭还是刷新
2015/09/12 Javascript
json与jsonp知识小结(推荐)
2016/08/16 Javascript
bootstrap模态框垂直居中效果
2016/12/03 Javascript
通过AngularJS实现图片上传及缩略图展示示例
2017/01/03 Javascript
jQuery命名空间与闭包用法示例
2017/01/12 Javascript
jquery实现tab键进行选择后enter键触发click行为
2017/03/29 jQuery
JS简单实现数组去重的方法分析
2017/10/14 Javascript
Vue.js中对css的操作(修改)具体方式详解
2018/10/30 Javascript
js实现录音上传功能
2019/11/22 Javascript
js+canvas实现刮刮奖功能
2020/09/13 Javascript
python实现单向链表详解
2018/02/08 Python
Python制作exe文件简单流程
2019/01/24 Python
python3利用Socket实现通信的方法示例
2019/05/06 Python
python使用装饰器作日志处理的方法
2019/07/11 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
2020/04/17 Python
Python监听剪切板实现方法代码实例
2020/11/11 Python
分享全球十款超强HTML5开发工具
2014/05/14 HTML / CSS
Html5实现首页动态视频背景的示例代码
2019/09/25 HTML / CSS
简历中求职的个人自我评价
2013/12/03 职场文书
毕业生面试求职信
2014/06/23 职场文书
公司股东合作协议书
2014/09/14 职场文书
党委书记个人对照检查材料
2014/09/15 职场文书
辞职信的写法
2015/02/27 职场文书
奖金申请报告模板
2015/05/15 职场文书
人事行政部各岗位职责说明书!
2019/07/15 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
centos7安装mysql5.7经验记录
2022/05/02 Servers