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 相关文章推荐
javascript动态添加表格数据行(ASP后台数据库保存例子)
May 08 Javascript
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
Jun 19 Javascript
关于js获取radio和select的属性并控制的代码
May 12 Javascript
node.js 一个简单的页面输出实现代码
Mar 07 Javascript
常用Extjs工具:Extjs.util.Format使用方法
Mar 22 Javascript
js操作iframe的一些方法介绍
Jun 25 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
Oct 23 Javascript
javascript中的this详解
Dec 08 Javascript
原生JS获取元素集合的子元素宽度实例
Dec 14 Javascript
Node.js 的模块知识汇总
Aug 16 Javascript
JavaScript快速调试的两个技巧
Nov 04 Javascript
Vue Elenent实现表格相同数据列合并
Nov 30 Vue.js
微信小程序实现横向增长表格的方法
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
ajax缓存问题解决途径
2006/12/06 PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
2014/12/17 PHP
PHP数据的提交与过滤基本操作实例详解
2016/11/11 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
2019/10/16 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
Ext grid 添加右击菜单
2009/11/26 Javascript
jquery对表单操作2
2011/04/06 Javascript
javascript日期格式化方法汇总
2015/10/04 Javascript
实例详解JavaScript获取链接参数的方法
2016/01/01 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
2016/03/07 Javascript
浅谈bootstrap使用中的一些问题以及解决过程
2016/10/18 Javascript
Angular实现预加载延迟模块的示例
2017/10/12 Javascript
layui.js实现的表单验证功能示例
2017/11/15 Javascript
Vue组件之极简的地址选择器的实现
2018/05/31 Javascript
在vue中使用v-bind:class的选项卡方法
2018/09/27 Javascript
vue src动态加载请求获取图片的方法
2018/10/17 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
2019/07/17 Javascript
快速对接payjq的个人微信支付接口过程解析
2019/08/15 Javascript
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
[02:23]1个至宝=115个英雄特效 最“绿”至宝拉比克“魔导师密钥”登场
2018/12/29 DOTA
python益智游戏计算汉诺塔问题示例
2014/03/05 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
2019/08/05 Python
Django项目后台不挂断运行的方法
2019/08/31 Python
python正则表达式实例代码
2020/03/03 Python
Python使用进程Process模块管理资源
2020/03/05 Python
Python多线程threading创建及使用方法解析
2020/06/17 Python
使用pytorch实现论文中的unet网络
2020/06/24 Python
python实现邮件循环自动发件功能
2020/09/11 Python
精神文明建设先进工作者事迹材料
2014/05/02 职场文书
学生夜不归宿检讨书
2014/09/23 职场文书
2014年医院工作总结
2014/11/20 职场文书
质量整改通知单
2015/04/21 职场文书
检讨书格式
2019/04/25 职场文书
HTML CSS 一个标签实现带动画的抖音LOGO
2022/04/26 HTML / CSS