router中添加参数
import Vue from 'vue' import Router from 'vue-router' import About from '@/components/About' import Home from '@/components/Home' import User from '@/components/User' import VueRouter from 'vue-router' // 导入路由对象 Vue.use(Router) // 创建VueRouter对象 const routes = [ { // 默认值 path:'', redirect:'/home' }, { path:'/home', component:Home }, { path:'/about', component:About }, { path:'/user/:userId', component:User } ] // 创建路由和组件之间的映射关系 const router = new VueRouter({ routes, mode:'history', // 默认是hash模式 linkActiveClass:'active' // 激活样式 }); export default router
App.Vue中传递参数
<template> <div id="app"> <h1>我是app首页</h1> <router-link to="/home">首页</router-link> <router-link to="/about">关于</router-link> <router-link :to="'/user/'+userId">用户</router-link> <router-view></router-view> </div> </template> <script> export default { name: "App", data() { return { userId: "笨蛋" }; } }; </script> <style> </style>
页面中接受参数
<template> <div> <h2>用户界面</h2> <p> {{$route.params.userId}}</p> </div> </template> <script> export default { name:'User' } </script> <style> </style>
通过query传递参数
App.vue
<template> <div id="app"> <h1>我是app首页</h1> <router-link to="/home">首页</router-link> <router-link to="/about">关于</router-link> <router-link :to="{path:'/user/'+userId, query:{name:'zhansan',age:18,hobby:'足球'}}">用户</router-link> <router-view></router-view> </div> </template> <script> export default { name: "App", data() { return { userId: "笨蛋" }; } }; </script> <style> </style>
User.vue
<template> <div> <h2>用户界面</h2> <p>{{$route.params.userId}}</p> <p>{{$route.query.name}}</p> <p>{{$route.query.age}}</p> <p>{{$route.query.hobby}}</p> </div> </template> <script> export default { name: "User" }; </script> <style> </style>