路由,是处理URL和页面之间的映射关系。url和页面之间是一一对应的关系。
路由可以分为后端路由和前端路由:
前后端没有分离的时候,很明显数据渲染也是由后端负责,只要地址传输进来,后端就把对应url的页面处理好,返回html和css给浏览器。
后面慢慢的有了前后端分离。后端只负责提供数据,前端负责页面显示包括通过js拿到数据,进行数据渲染和交互。
再接着出现spa页面,单页面应用。整个网页只有一个html页面。从而诞生了前端路由概念。
相当于1次性从静态服务器下载所有的html+css+js。
下载下来以后,按照前端路由处理,分批次展现。
如果想要不刷新页面进行加载页面请求新数据以外。除了ajax技术,我们还可以通过俩种方式:
url的hash和html5的history。
url的hash:其本质是通过window.loaction对象来改变,如果要刷新页面就是window.location.href。如果不刷新页面就是window.location.hash。
除了url的hash,现在html5还提供了history。
history.pushState(对象,标题,url)。
history.replaceState(对象,标题,url)。
history.back()
history.go(数字),可以为正数,也可以为负数。
history.forward()相当于history.go(1)
介绍了基本的路由概念和路径常用方法。
我们了解下怎么安装vue的路由。vue-router.
步骤一:我们要安装vue-router。 npm install vue-router --save
步骤二:在模块化工程中使用它。vue-router是一个插件。
》1,导入路由对象,然后调用Vue.use(vue-roeter对象)。
》2,创建路由实例,并且传入路由映射配置。
》3,在Vue实例中挂载创建的路由实例。
import Vue from 'xxx'或者import * as Vue from 'xxx'(有时候会报错在Vue.use(),说vue.use不是函数。可以试试这俩个导入语句换着用)
详情截图:
对于第三点,给链接添加点击以后的样式,默认情况下route-link会有个router-link-active类名称。然而这个类名太长了,想要简写,就可以在这个标签里加一个active-class="active",那么类名称就是active了。如下所示:
针对active-class属性,如果标签很多,每个都添加其实不够人性化,所以可以在配置路由的文件中这样使用:
像上面那样就统一配置了router-link的点击样式class。
动态路由:
如果要实现动态路由,可以在如下所示:
像上面这样,就可以实现动态路由: