赞
踩
场景:点击当前页的某个按钮跳转到另一个页面,并将某个值带过去
<div class=“item” @click=“getDetail(3)”>查看详情
methods:{
getDetail(id){
this.$router.push({path:`/user/${id}/`})
}
}
对应的路由配置(每个路由配置信息以对象的形式保存)
import VueRouter from 'vue-router'; //引入vue-router
Vue.config.producionTip = false; //阻止启动生产消息
Vue.use(VueRouter); //使用VueRouter,注入到Vue实例中
const router = new VueRotuer({ //创建路由对象
mode:'history', //设置路由模式为history模式
{
path:'/user/:id',
name:'User',
component:User
}
});
//将路由对象添加到vue实例对象中
new Vue({router,render:h=>h(App)}).$mount('#app');
子组件中获取并使用传过来的参数值
this.$route.params.id
补充一点额外的东西:
Vue.config.producionTip = false
; 这是啥意思?
开发环境下,Vue 会提供很多警告信息来帮你对付常见的错误与陷阱。
而在生产环境下,这些警告语句却没有用,反而会增加应用的体积。
此外,有些警告检查还有一些小的运行时开销,这在生产环境模式下是可以避免的。
Vue.config.producionTip = false; 可以当做是消息提示的环境配置,
false即设置为开发环境下,true即生产环境下
注意:params方式传参刷新页面时,参数会丢失!
methods:{
getDetail(id) {
this.$router.push({
name: 'User',
params: { id: id }
})
}
}
对应路由配置
{
path: '/user',
name: 'User',
component: User
}
子组件获取参数
this.$route.params.id
注意:这种情况下 query传递的参数会显示在url后面,
如 /user?id=?即参数再浏览器刷新时不会丢失!
methods:{
getDetail(id) {
this.$router.push({
path: '/user',
query: { id: id }
})
}
}
对应路由配置
{
path: '/user',
name: 'User',
component: User
}
子组件获取参数
this.$router.query.id
(1)使用方面
query用path来匹配路由,接收参数this.
r
o
u
t
e
.
q
u
e
r
y
.
n
a
m
e
。
p
a
r
a
m
s
用
n
a
m
e
来
匹
配
路
由
,
接
收
参
数
t
h
i
s
.
route.query.name。 params用name来匹配路由,接收参数this.
route.query.name。params用name来匹配路由,接收参数this.route.params.name。
注意:
如果params方式写成path引入,接收的参数会是undefined。
(2)浏览器地址栏显示方面
query传参方式,在地址栏会显示参数;
params传参方式,地址栏不显示参数。
//用params传参方式的参数用/来间隔显示,如/login/10/tom;
//用query传参方式的参数url+?参数1=xx&参数2=xx,如/login?id=1&name=tom
注意:如果你在地址栏中手动输入参数后,当页面一刷新时,params的值就消失了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。