赞
踩
再讲Vue路由之前先简单概括一下路由的概念
URL
地址与服务器资源的匹配关系SPA(单页面应用)
首先让我们通过一个简单的案例来了解路由
首先定义三个锚点来对应响应的页面
<div id="app">
<ul>
<li><a href="#/pageA">页面一</a></li>
<li><a href="#/pageB">页面二</a></li>
<li><a href="#/pageC">页面三</a></li>
</ul>
<!--自定义组件 :is代表跳转自定义的组件 -->
<component :is="component_name"></component>
</div>
创建局部组件并在Vue实例中应用
let pageA = { template: "<div>页面一内容</div>" } let pageB = { template: "<div>页面二内容</div>" } let pageC = { template: "<div>页面三内容</div>" } let app = new Vue({ el: '#app', data: { component_name: pageA }, components: { pageA, pageB, pageC } })
通过hashchange
监听页面锚点的改变
window.addEventListener('hashchange', () => {
let hash = window.location.hash.slice(1)
switch (hash) {
case "/pageA":
app.component_name = 'pageA';
break;
case "/pageB":
app.component_name = "pageB";
break;
case "/pageC":
app.component_name = "pageC"
break
}
})
效果
当然Vue官方为我们提供了vue-router
库,官方文档
接下来让我们使用vue-router
来修改上面的案例
在head
中引入
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
创建组件
const componentA = {
template: "<div>导航一内容</div>"
}
const componentB = {
template: "<div>导航二内容</div>"
}
const componentC = {
template: "<div>导航三内容</div>"
}
const route = {
{ path: "/a", component: componentA },
{ path: "/b", component: componentB },
{ path: "/c", component: componentC }
}
创建VueRouter
实例,并引入组件
const router = new VueRouter({
routes
})
在 Vue
实例中引入
let app = new Vue({
el: '#app',
data: {},
router
})
html
router-link
组件来导航to
属性指定连接<router-link>
默认会被渲染成一个 <a>
标签router-view
定义组件出口<div id="app">
<router-link to="/a">导航一</router-link>
<router-link to="/b">导航二</router-link>
<router-link to="/c">导航三</router-link>
<router-view></router-view>
</div>
效果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。