新建页面,创建路由是经常要做的事,而我总是站在前人的基础上,简单粗暴看下官网的教程,按着他们的格式创建和增加,自己创建项目也是看着教程走,不愿多动脑子去好好想想,所以某些概念总是模棱两可和记不住。
(1)前端中的路由是什么?
简单来说就是根据不同的 url 地址展示不同的内容或页面
(2)用于什么场景?
前端路由更多用在单页应用上, 也就是SPA(单页应用程序), 因为单页应用, 基本上都是前后端分离的, 后端自然也就不会给前端提供路由。
(3)什么是单页应用?
SPA是一种特殊的Web应用。它将所有的活动局限于一个Web页面中,仅在该Web页面初始化时加载相应的HTML、JavaScript、CSS。一旦页面加载完成,SPA不会因为用户的操作而进行页面的重新加载或跳转,而是利用JavaScript动态的变换HTML,实现UI与用户的 交互。与单页应用相呼应的是多页应用。
(4)什么是多页应用?
每一次页面跳转的时候,后台服务器都会给返回一个新的html
文档,这种类型的网站也就是多页网站,也叫做多页应用。
(5)单页应用与多页应用的比较
单页面应用 多页面应用
组成 一个外壳页面和多个片段页面组成 多个完成的html页面组成
页面跳转 片段页面之间的切换,共用外壳页面 从一个完整的页面跳转到另外一个完整页面
刷新方式 页面片段的局部刷新 整页刷新
url模式 http://xxx/flight.html http://xxx/flight/page1
用户体验 页面间片段切换快,用户体验好 页面间切换慢,不流畅,用户体验差
页面间数据传递 依赖从url提取参数,cookie,localStorage等,较麻烦 在一个页面内,页面片段间传递数据容易
以上为参考大部分博客总结的某些概念性东西,vue中路由的使用规则接着往下走:
(1) 基本案列
(2) 动态路由匹配
某种模式匹配到的所有路由全都映射到同个组件。例如,一个 User
组件,对于所有 ID 各不相同的用户,都要使用这个组件来渲染。那么,通过在vue-router
的路由路径中使用“动态路径参数”(dynamic segment) 。
const router = new VueRouter({ routes: [ // 动态路径参数以冒号开头 { path: '/user/:id', component: User } ] })
像/user/fooID1
和/user/fooID2
都将映射到相同的路由
此外可以通过this.$route.params.id取得用户的ID值,例如:
/user/:id
匹配路径为 /user/fooID1时, 此时
this.$route.params = {id: 'fooID1'}
/user/:id/name/:name
匹配路径为/user/fooID1/name/yang时, 此时this.$route.params = {id: 'fooID1', name: 'yang'}
还有一个常用的this.$route.query.id从url中查询参数,例如:
/flights/id="foolD1"
此时this.$route.query.id值为fooID1