参考
vue官网
https://juejin.im/post/5b0281b851882542845257e7
简介
Vue Router 是 Vue.js 官方的路由管理器。也就是SPA(单页应用)的路径管理器。
vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。
路由模块的本质就是建立起url和页面之间的映射关系。实质上就是路劲的切换,也就是组件之间的切换。
传统的页面应用,是用一些超链接来实现页面切换和跳转的。
至于我们为啥不能用a标签,这是因为用Vue做的都是单页应用(当你的项目准备打包 时,运行npm run build
时,就会生成dist文件夹,这里面只有静态资源和一个 index.html页面),所以你写的标签是不起作用的,
你必须使用vue-router来进行管理。
实现原理
SPA(single page application):单一页面应用程序,只有一个完整的页面;它在加载页面时,不会加载整个页面,
而是只更新某个指定的容器中内容。
单页面应用(SPA)的核心之一是: 更新视图而不重新请求页面; vue-router在实现单页面前端路由时,提供了两种方
式:Hash模式和History模式。
根据mode参数来决定采用哪一种方式。
1 | // 在 router/index.js 文件中 |
1.Hash模式
vue-router
默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重
新加载。
例如 http://yoursite.com/user/#/id
hash 模式的原理是 onhashchange 事件(监测hash值变化),可以在 window 对象上监听这个事件。
2.HTML5 History 模式
如果不想要很丑的 hash(路径有 #),我们可以用路由的 history 模式,这种模式充分利用
history.pushState
API 来完成 URL 跳转而无须重新加载页面。
当你使用 history 模式时,URL 就像正常的 url,例如 http://yoursite.com/user/id
,也好看!不过这种模式
要玩好,还需要后台配置支持。具体操作见官网文档[https://router.vuejs.org/zh/guide/essentials/history-mode.html
vue-router使用方式
通过 vue-cli 直接配置
生成的 router/index.js 直接使用
通过包管理工具手动配置
(基于vue-cli自动生成的目录)
1.下载
直接下载 / CDN
npm
1 | npm install vue-router |
cdn
https://unpkg.com/vue-router/dist/vue-router.js
2.引入安装
下载完成后 在router/index.js
文件中引入安装
1 | import Vue from 'vue' |
3.创建路由对象并配置路由规则
router/index.js
1 | const routes = [ |
4.导出routes 导入main.js
router/index.js
1 | export default router |
src/main.js
1 | import router from './router' |
5.挂载
在src/main.js
中 vue的实例挂载router
1 | new Vue({ |
6.渲染
src/App.vue
1 | <template> |