今日目标

1.能够说出什么是路由 2.能够说出前端路由的实现原理 3.能够使用Vue-Router实现前端路由 4.能够实现嵌套路由,动态路由
5.能够实现命名路由以及编程式导航 6.理解并实现后台管理案例

 

1.路由的概念

路由的本质就是一种对应关系,比如说我们在url地址中输入我们要访问的url地址之后,浏览器要去请求这个url地址对应的资源。 那么url地址和真实的资源之间就有一种对应的关系,就是路由。

路由分为前端路由和后端路由 1) 后端路由是由服务器端进行实现,并完成资源的分发 2) 前端路由是依靠hash值(锚链接)的变化进行实现

后端路由性能相对前端路由来说较低,所以,我们接下来主要学习的是前端路由

前端路由的基本概念:根据不同的事件来显示不同的页面内容,即事件与事件处理函数之间的对应关系

前端路由主要做的事情就是监听事件并分发执行事件处理函数

SPA

1) 单页面应用程序: 整个网站只有一个页面,内容通过Ajax局部更新实现, 同时支持浏览器地址的前进和后退操作

2) SPA 基于URL地址的hash, hash的变化不会触发新的URL请求

2.前端路由的初体验

前端路由是基于hash值的变化进行实现的(比如点击页面中的菜单或者按钮改变URL的hash值,根据hash值的变化来控制组件的切换) 核心实现依靠一个事件,即监听hash值变化的事件

前端路由实现tab栏切换模板 或者 在素材中复制:

案例效果图:

 

点击每个超链接之后,会进行相应的内容切换,如下:

 

核心思路: 在页面中有一个vue实例对象,vue实例对象中有四个组件,分别是tab栏切换需要显示的组件内容 在页面中有四个超链接,如下:

当我们点击这些超链接的时候,就会改变url地址中的hash值,当hash值被改变时,就会触发onhashchange事件 在触发onhashchange事件的时候,我们根据hash值来让不同的组件进行显示:

3.Vue Router简介

它是一个Vue.js官方提供的路由管理器。是一个功能更加强大的前端路由器,推荐使用。 Vue Router和Vue.js非常契合,可以一起方便的实现SPA(single page web application,单页应用程序)应用程序的开发。 Vue Router依赖于Vue,所以需要先引入Vue,再引入Vue Router

Vue Router的特性:

4.Vue Router的使用步骤(★★★)

A. 导入js文件

B. 添加路由链接: <router-link> 是路由中提供的标签,默认会被渲染为a标签,to属性默认被渲染为href属性, to属性的值会被渲染为#开头的hash地址

C. 添加路由填充位(路由占位符)路由规则匹配到的组件,将会被渲染到 router-view 所在的位置

D.定义路由组件

F.将路由挂载到Vue实例中

小结: Vue Router的使用步骤还是比较清晰的,按照步骤一步一步就能完成路由操作

补充: 路由重定向:可以通过路由重定向为页面设置默认展示的组件 在路由规则中添加一条路由规则即可,如下:

5.嵌套路由,动态路由的实现方式

A.嵌套路由的概念(★★★)

当我们进行路由的时候显示的组件中还有新的子级路由链接以及内容。

嵌套路由最关键的代码在于理解子级路由的概念: 比如我们有一个/register的路由 那么/register下面还可以添加子级路由,如: /register/tab1 /register/tab2

参考代码如下:

页面效果大致如下:

路由嵌套

B.动态路由匹配(★★★)

补充: 如果使用$route.params.id来获取路径传参的数据不够灵活。 1.我们可以通过props来接收参数

2.还有一种情况,我们可以将props设置为对象,那么就直接将对象的数据传递给组件进行使用

3.如果想要获取传递的参数值还想要获取传递的对象数据,那么props应该设置为函数形式。

7.命名路由以及编程式导航

A.命名路由:给路由取别名

案例:

B .编程式导航(★★★)

页面导航的两种方式: A.声明式导航:通过点击链接的方式实现的导航 => router-link B.编程式导航:调用js的api方法实现导航

Vue-Router中常见的导航方式:

this.$router. Go( n );//n为数字,参考history.go this.$router.go( -1 );

 

8.实现后台管理案例(★★★)

案例效果:

点击左侧的"用户管理","权限管理","商品管理","订单管理","系统设置"都会出现对应的组件并展示内容

其中"用户管理"组件展示的效果如上图所示,在用户管理区域中的详情链接也是可以点击的,点击之后将会显示用户详情信息。

案例思路: 1).先将素材文件夹中的11.基于vue-router的案例.html复制到我们自己的文件夹中。 看一下这个文件中的代码编写了一些什么内容, 这个页面已经把后台管理页面的基本布局实现了 2).在页面中引入vue,vue-router 3).创建Vue实例对象,准备开始编写代码实现功能 4).希望是通过组件的形式展示页面的主体内容,而不是写死页面结构,所以我们可以定义一个根组件:

5).当我们访问页面的时候,默认需要展示刚刚创建的app根组件,我们可以 创建一个路由对象来完成这个事情,然后将路由挂载到Vue实例对象中即可

补充:到此为止,基本的js代码都处理完毕了,我们还需要设置一个路由占位符

6).此时我们打开页面应该就可以得到一个VueRouter路由出来的根组件了 我们需要在这个根组件中继续路由实现其他的功能子组件 先让我们更改根组件中的模板:更改左侧li为子级路由链接,并在右侧内容区域添加子级组件占位符

然后,我们要为子级路由创建并设置需要显示的子级组件

7).展示用户信息列表: A.为Users组件添加私有数据,并在模板中循环展示私有数据

8.当用户列表展示完毕之后,我们可以点击列表中的详情来显示用户详情信息,首先我们需要创建一个组件,用来展示详情信息

然后我们需要设置这个组件的路由规则

再接着给用户列表中的详情a连接添加事件