学习Vue---3.Vue-router
一、相关API说明
编写使用路由的3步:
- 定义路由组件
- 注册路由
- 使用路由
<router-link><router-view>
1.注册路由器(在 main.js)
import Vue from 'vue'
import router from './router'
// 创建vue 配置路由器
new Vue({ //配置对象的属性名都是一些确定的名称,不能随便修改
el: '#app',
router,
render: h => h(app)
})
2.路由器配置:(在 router 目录下 index.js)
import Vue from "vue"; import VueRouter from "vue-router"; Vue.use(VueRouter);
3.路由配置:(在 router 目录下 index.js)
const routes = [
{
path: '/home',
component: home,
// 嵌套路由
children: [
{ // path最左侧的/永远代表根路由
path: '/home/news',
component: News
},
{
path: 'message', //简化写法
component: Message
}
]
},
{
// 一般路由
path: 'about',
component: About
},
{
// 自动跳转路由
path: '/',
redirect: '/about'
}
]
4.VueRouter():用于创建路由器的构建函数
const router = new VueRouter({
mode: "history", // 模式
base: process.env.BASE_URL,
routes
});
export default router;
5.使用路由组件标签
<router-link>:用来生成路由链接 <router-link to="/home/news">News</router-link> <router-view>:用来显示当前路由组件界面 <router-view></router-view>
6.优化路由器配置(可选)
linkActiveClass:'active',//指定选择的路由链接的class
二、向路由组件传递数据
方式1: 路由路径携带参数(param/query)
1) 配置路由
children: [
{
path: 'mdetail/:id',
component: MessageDetail
}
]
2) 路由路径
<router-link :to="'/home/message/mdetail/'+m.id">{{m.title}}</router-link>
或
<router-link :to="`/home/message/mdetail/'${m.id}`">{{m.title}}</router-link>
3) 路由组件中读取请求参数
this.$route.params.id
方式2: <router-view>属性携带数据
<router-view :msg="msg"></router-view>
三、缓存路由组件对象
1) 默认情况下,被切换的路由组件对象会死亡释放,再次回来时是重新创建的(原来的数据就没有了)
2) 如果可以缓存路由组件对象(router-view管理的路由组件,即<router-link>包着的组件),可以提高用户体验
<keep-alive>
<router-view></router-view>
</keep-alive>

四、两种模式的区别
1.hash模式
相关API
2.history模式
相关API
3.区别
五、router与route的区别
参考链接:
【1】vue-router两种模式的区别 - cecelia - 博客园
浙公网安备 33010602011771号