Vue Router 是 Vue.js 官方的路由管理器 github: https://github.com/vuejs/vue-router 中文官方网站https://router.vuejs.org/zh/ 安装vue-router
npm isntall vue-router --save
<template> <div > <h1>Bar</h1> <router-link to="foo">跳转到Foo</router-link> </div> </template> <script> export default { name: 'Bar', } </script>
<template> <div> <h1>Foo</h1> <router-link to="bar">跳转到Bar</router-link> </div> </template> <script> export default { name: "Foo", } </script> <style scoped> </style>
import Router from 'vue-router' import Vue from 'vue' Vue.use(Router) import Bar from '../components/Bar' import Foo from '../components/Foo' export default new Router({ routes: [ { path:"/", redirect:"/foo" }, { path: '/foo', component: Foo }, { path: '/bar', component: Bar } ] });
<template> <div id="app"> <img alt="Vue logo" src="./assets/logo.png"> <router-view></router-view> </div> </template> <style> #app { text-align: center; margin-top: 60px; } </style>
import Vue from 'vue' import App from './App.vue' import router from './router/index' Vue.config.productionTip = false; new Vue({ router, render: h => h(App), }).$mount('#app')
创建组件User.vue
<template> <div> {{$route.params.id}} </div> </template>
修改router目录的index文件
import Router from 'vue-router' import Vue from 'vue' Vue.use(Router) import User from '../components/User' export default new Router({ routes: [ { path:'/user/:id', component:User } ] });
访问的http://localhost:8080/#/user/12347
图片.png
设置“路径参数”,将User.vue 修改成
<template> <div> {{$route.query.id}} </div> </template>
增加路由配置
{ path:'/user', component:User }
访问路径 http://localhost:8080/#/user?id=2
创建组件文件Profile.vue
<template> <div> 用户画子界面 </div> </template> <script> export default { name: "Profile" } </script> <style scoped> </style>
修改路由文件router/index.js
import Router from 'vue-router' import Vue from 'vue' Vue.use(Router) import User from '../components/User' import Profile from '../components/Profile' export default new Router({ routes: [ { path:'/user', component:User, children:[ { path:"profile", component:Profile } ] }, { path:'/user/:id', component:User } ] });
同一个路径可以匹配多个路由,此时,匹配的优先级就按照路由的定义顺序:谁先定义的,谁的优先级就最高。 访问http://localhost:8080/#/user/profile
图片.png
方式 1: 路由路径携带参数(param/query) 配置路由
children: [ { path: 'mdetail/:id', component: MessageDetail } ]
路由路径
参数传递 注意需要加上冒号:
<router-link :to="'/home/message/mdetail/'+m.id">{{m.title}}</router-link>
路由组件中读取请求参数,获取传递数据 注意是route
而不是router
this.$route.params.id
方式2 <router-view>属性携带数据
<router-view :msg="msg"></router-view>
<keep-alive> <router-view></router-view> </keep-alive>
相关 API
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句