详解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 相关文章推荐
jQuery 对Select的操作备忘记录
Jul 04 Javascript
JS使用ajax从xml文件动态获取数据显示的方法
Mar 24 Javascript
浅谈JavaScript字符串拼接
Jun 25 Javascript
JavaScript实现的SHA-1加密算法完整实例
Feb 02 Javascript
BootStrap 超链接变按钮的实现方法
Sep 25 Javascript
js中bool值的转换及“&amp;&amp;”、“||”、 “!!”详解
Dec 21 Javascript
Angular路由ui-router配置详解
Aug 01 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
Jun 22 Javascript
JS出现404错误原理及解决方案
Jul 01 Javascript
JS删除对象中某一属性案例详解
Sep 08 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
Sep 21 Javascript
如何手写一个简易的 Vuex
Oct 10 Javascript
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
PHP那些琐碎的知识点(整理)
2017/05/20 PHP
php将字符串转换为数组实例讲解
2020/05/05 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
使用jscript实现二进制读写脚本代码
2008/06/09 Javascript
使用 Node.js 做 Function Test实现方法
2013/10/25 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
2015/01/01 NodeJs
JS获得图片alt信息的方法
2015/04/01 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
2016/05/09 Javascript
DIV+CSS+jQ实现省市联动可扩展
2016/06/22 Javascript
jQuery向父辈遍历的简单方法
2016/09/18 Javascript
ES6实现的遍历目录函数示例
2017/04/07 Javascript
ES6学习笔记之Set和Map数据结构详解
2017/04/07 Javascript
详解angularJs指令的3种绑定策略
2017/04/13 Javascript
vue2.0之多页面的开发的示例
2018/01/30 Javascript
laypage+SpringMVC实现后端分页
2019/07/27 Javascript
Python 时间处理datetime实例
2008/09/06 Python
快速入手Python字符编码
2016/08/03 Python
在Python中使用AOP实现Redis缓存示例
2017/07/11 Python
python3之微信文章爬虫实例讲解
2017/07/12 Python
Python 装饰器使用详解
2017/07/29 Python
python 每天如何定时启动爬虫任务(实现方法分享)
2018/05/21 Python
python 不以科学计数法输出的方法
2018/07/16 Python
django连接mysql配置方法总结(推荐)
2018/08/18 Python
django模板加载静态文件的方法步骤
2019/03/01 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
2019/07/07 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
使用python和pygame制作挡板弹球游戏
2019/12/03 Python
python如何提升爬虫效率
2020/09/27 Python
杭州-飞时达软件有限公司.net笔面试
2012/04/28 面试题
什么是Web Service?
2012/07/25 面试题
车贷收入证明范本
2014/01/09 职场文书
妇联2016年六一国际儿童节活动总结
2016/04/06 职场文书
redis使用不当导致应用卡死bug的过程解析
2021/07/01 Redis
MySQL中EXPLAIN语句及用法
2022/05/20 MySQL