vue.js怎么页面传值?

vue.js怎么页面传值?下面本篇文章给大家介绍一下vuejs几种不同组件(页面)间传值的方式。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

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

在应用复杂时,推荐使用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即为传递过来的值<br>
eventBus.$on('eventBusName', function(val) {<br>   console.log(val)<br>})

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

eventBus.$off('eventBusName');

更多前端开发知识,请查阅 HTML中文网 !!

以上就是vue.js怎么页面传值?的详细内容,更多请关注易知道|edz.cc其它相关文章!

推荐阅读