路由就是URL地址,地址不同,则显示的页面内容不同,路由分为前端路由和后端路由,Vue属于前端框架,以下所说的路由都指前端路由。
Vue属于单页面应用程序,通过hash(#)来实现不同页面之间的切换。
单页面程序就是不需要刷新页面,所有组件都在一个页面上的应用程序。
路由的安装方式有两种:cdn和npm
Vue Router官网的cdn
https://router.vuejs.org/zh/installation.html
在页面中使用路由,5步:
举个栗子
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
head>
<body>
<div id="app" v-cloak>
<router-view>router-view>
div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>
<script src="https://unpkg.com/vue-router@2.0.0/dist/vue-router.js">script>
<script>
var login = {
template : '登录
'
}
//创建路由示例对象
var router = new VueRouter({
routes : [{
path : '/login',
component : login
}]
})
var vm = new Vue({
el : '#app',
data : {
},
methods : {
},
components : {
},
//将路由挂载到实例对象
router : router
})
script>
body>
html>
创建登录组件和注册组件,实现组件之间的切换
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
head>
<body>
<div id="app" v-cloak>
<a href="#/login">登录a>
<a href="#/register">注册a>
<router-view>router-view>
div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>
<script src="https://unpkg.com/vue-router@2.0.0/dist/vue-router.js">script>
<script>
//登录组件和注册组件
var login = {
template : '登录
'
}
var register = {
template: '注册
'
}
//创建路由示例对象及路由匹配规则
var router = new VueRouter({
routes : [{
path : '/login',
component : login
},{
path: '/register',
component: register
}
]
})
var vm = new Vue({
el : '#app',
data : {
},
methods : {
},
components : {
login,
register
},
//将路由挂载到实例对象
router : router
})
script>
body>
html>
运行效果
a标签虽然可以实现路由跳转,但是不推荐使用,Vue专门提供了路由跳转的标签
效果是一样的。
优点:
router-link标签默认渲染成a标签,但是可以渲染其他标签,使用tag属性进行控制。
另外,使用router-link标签可以设置高亮显示,当单击了某个导航,该导航就会新增router-link-active这个类,设置类样式即可
运行效果