zl程序教程

您现在的位置是:首页 >  前端

当前栏目

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

VueJS组件 方式 页面 不同 几种 传值
2023-09-27 14:28:57 时间

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

一、路由传值

  路由对象如下图所示:

  

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

1
2
3
4
5
6
this .$router.push({
                         name:  'routePage' ,
                         query/ params : {
                             routeParams:  params
                         }
                     })

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

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

 

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

  通过下面的方法调用:

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

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

 

三、通过eventBus传递数据

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

1
window.eventBus =  new  Vue();

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

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

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

1
//val即为传递过来的值<br>eventBus.$on('eventBusName', function(val) {<br>   console.log(val)<br>})

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

1
eventBus.$off( 'eventBusName' );
转载http://www.cnblogs.com/ygtq-island/p/6728137.html