1路由
路由是一个比较广义和抽象的概念,路由的本质就是对应关系。
在开发中,路由分为:前端路由和后端路由。
1.1后端路由:
概念:根据不同的用户URL请求,返回不同的内容。
本质:URL请求地址与服务器资源之间的对应关系。
1.2 前端路由
概念:根据不同的用户事件,显示不同的页面内容
本质:用户事件与事件处理函数之间的对应关系
1.3 实现简易前端路由(前端路由的本质)
基于URL中的hash实现(点击菜单的时候改变URL中的hash,根据hash的变化控制组件的切换)。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<!-- 切换组件的超链接 -->
<a href="#/zhuye">主页</a>
<a href="#/keji">科技</a>
<a href="#/money">财经</a>
<!--根据:is属性指定的组件名称,把对应的组件渲染到component标签所在的位置 -->
<!--可以吧component标签当做是组件的占位符-->
<component :is="conName"></component>
</div>
<script>
//定义需要切换的四个组件
//主页组件
const zhuye = {
template: '<h1>主页信息</h1>'
}
//科技组件
const keji = {
template: '<h1>科技信息</h1>'
}
//财经组件
const money = {
template: '<h1>财经信息</h1>'
}
const vm = new Vue({
el: '#app',
data: {
conName: 'zhuye'
},
//注册组件
components: {
zhuye,
keji,
money
},
})
//监听window事件的onhashChange事件,根据获取到的最新的hash值,切换要显示的组件的名称
window.onhashchange = function () {
//通过location.hash获取到最新的hash值
console.log(location.hash);
switch (location.hash.slice(1)) {
case '/zhuye':
vm.conName = "zhuye"
break;
case '/keji':
vm.conName = "keji"
break;
case '/money':
vm.conName = "money"
break;
}
}
</script>
</body>
</html>