详解vuejs几种不同组件(页面)间传值的方式


Posted in Javascript onJune 01, 2017

在应用复杂时,推荐使用vue官网推荐的vuex,以下讨论简单SPA中的组件间传值。

一、路由传值

路由对象如下图所示:

在跳转页面的时候,在js代码中的操作如下,在标签中使用<router-link>标签

this.$router.push({

            name: 'routePage',

            query/params: {

              routeParams: params

            }

          })

需要注意的是,实用params去传值的时候,在页面刷新时,参数会消失,用query则不会有这个问题。

这样使用起来很方便,但url会变得很长,而且如果不是使用路由跳转的界面无法使用。

二、通过$parent,$chlidren等方法调取用层级关系的组件内的数据和方法

通过下面的方法调用:

this.$parent.$data.id //获取父元素data中的id

this.$children.$data.id //获取父元素data中的id

这样用起来比较灵活,但是容易造成代码耦合性太强,导致维护困难

三、通过eventBus传递数据

使用前可以在全局定义一个eventBus

window.eventBus = new Vue();

在需要传递参数的组件中,定义一个emit发送需要传递的值,键名可以自己定义(可以为对象)

eventBus.$emit('eventBusName', id);

在需要接受参数的组件重,用on接受该值(或对象)

//val即为传递过来的值

eventBus.$on('eventBusName', function(val) {console.log(val)})

最后记住要在beforeDestroy()中关闭这个eventBus

eventBus.$off('eventBusName');

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

Javascript 相关文章推荐
总结一些js自定义的函数
Aug 05 Javascript
网页禁用右键实现代码(JavaScript代码)
Oct 29 Javascript
JavaScript Timer实现代码
Feb 17 Javascript
谈谈关于JavaScript 中的 MVC 模式
Apr 11 Javascript
js树插件zTree获取所有选中节点数据的方法
Jan 28 Javascript
简介JavaScript中Math.cos()余弦方法的使用
Jun 15 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
Mar 25 Javascript
浅析Bootstrap缩略图组件与警示框组件
Apr 29 Javascript
ionic中列表项增加和删除的实现方法
Jan 22 Javascript
vue自定义一个v-model的实现代码
Jun 21 Javascript
vue中使用element-ui进行表单验证的实例代码
Jun 22 Javascript
vue中音频wavesurfer.js的使用方法
Feb 20 Vue.js
Vue.js中兄弟组件之间互相传值实例
Jun 01 #Javascript
Vue.Draggable实现拖拽效果
Jul 29 #Javascript
JS请求servlet功能示例
Jun 01 #Javascript
vue.js加载新的内容(实例代码)
Jun 01 #Javascript
深入理解JavaScript创建对象的多种方式以及优缺点
Jun 01 #Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
Jun 01 #Javascript
详解Vue2.0里过滤器容易踩到的坑
Jun 01 #Javascript
You might like
使用Curl进行抓取远程内容时url中文编码问题示例探讨
2013/10/29 PHP
JavaScript 节点操作 以及DOMDocument属性和方法
2007/12/06 Javascript
常用简易JavaScript函数
2009/04/09 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
Javascript中的数据类型之旅
2015/10/18 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
2016/09/17 Javascript
微信小程序 教程之WXSS
2016/10/18 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
MVVM框架下实现分页功能示例
2018/06/14 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
2018/08/08 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
JS对象属性的检测与获取操作实例分析
2020/03/17 Javascript
详解Howler.js Web音频播放终极解决方案
2020/08/23 Javascript
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
[03:23:49]2016.12.17日完美“圣”典全回顾
2016/12/19 DOTA
Python模块学习 re 正则表达式
2011/05/19 Python
使用python实现递归版汉诺塔示例(汉诺塔递归算法)
2014/04/08 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
2020/10/23 Python
python读取excel数据绘制简单曲线图的完整步骤记录
2020/10/30 Python
荷兰皇家航空公司中国官网:KLM中国
2017/12/13 全球购物
美国豪华时尚女性精品店:Kirna Zabête
2018/01/11 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
C#可否对内存进行直接的操作
2015/02/26 面试题
妇科医生自荐信
2013/11/05 职场文书
少先队入队活动方案
2014/02/08 职场文书
军训鉴定表自我鉴定
2014/02/13 职场文书
班组长竞聘书
2014/03/31 职场文书
大队委竞选演讲稿
2014/04/28 职场文书
青年岗位能手事迹材料
2014/12/23 职场文书
关于感恩老师的古诗句
2019/08/20 职场文书
浅谈JS的二进制家族
2021/05/09 Javascript
MySQL修炼之联结与集合浅析
2021/10/05 MySQL
「天才王子的赤字国家重生术」妮妮姆·拉雷粘土人开订
2022/03/21 日漫