1.params与query的区别:query传的值显示在地址栏里,无论路由那边设不设置
2.params传数据:
this.$router.push({name: 'oldDetail', params: {id: ids}})
目标页面接收params数据:
this.id = this.$route.params.id
路由:
{
path: '/data-manage',
name: 'argu',
meta: {
hideInMenu: true,
},
component: Main,
children: [
{
path: 'infoData/:text/:id',
name: 'oldDetail',
meta: {
title: route => `${route.params.text}`,
notCache: true
},
component: () => import('@/view/argu-page/query.vue')
}
]
}
3.query传数据:
this.$router.push({name: 'oldDetail', query: {id: ids}})
目标页面接收query数据:
this.id = this.$route.query.id
注意:无论是vuex params query传值的时候,只要页面一刷新,传过来的数据都会丢失,prams与query可以将传递过来的值放到url(就是传过来的值必须在地址栏以参数的形式显示)
比如:
path: 'infoData/:text/:id’,
这样才能保证页面刷新传过来的值一直存在。这种传值只适合string number这种简单的值,毕竟在地址栏显示的内容太多不太好。如果传递过来的是一个对象,我暂时采用的方式是放在sessionStorage保存。
比如:
if(this.$route.params.content){
editor.txt.html(this.$route.params.content)
sessionStorage.setItem('content',this.$route.params.content)
}else{
editor.txt.html(sessionStorage.getItem('content'))
}
网友评论