vue.js几种不同组件(页面)间传值的方式
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'
);
|
相关文章
- 10-vue的介绍
- vue - check-versions.js for child_process
- vue - check-versions.js for shell
- vue - config(index.js)
- vue.js+koa2项目实战(六)数据库建表
- vue-router
- 05Vue - Vue.js 入门(与自定义元素的关系)
- 微信小程序 - 父组件调用子组件的函数方法(像 Vue.js 中 ref 属性一样,直接 this.$refs.xx 获取子组件数据和方法)详细教程示例代码
- 【前端】Vue文件html、js、css分离
- vue.js-详解三大流行框架VUE_快速进阶前端大咖-Vue基础
- (20)打鸡儿教你Vue.js
- Vue中v-model解析、sync修饰符解析
- JS教程之使用 Pinia、Electron 和 Quasar 构建 Vue 3 桌面应用程序
- 在vue.config.js中模拟后端接口数据
- 【转发】vue v-for循环的用法(索引,键值)
- vue实现全屏滚动,非fullpage.js
- [js高手之路] vue系列教程 - vue的事件绑定与方法(2)
- vue中引入第三方字体图标库iconfont及iconfont引入彩色图标
- 01—Vue
- vue a标签使用@click
- VUE 组件 事件传递
- VUE 在组件中 获取 路由信息
- [置顶] vue-cli的webpack模板项目配置文件分析
- VUE.JS组件化开发实践