<body>
<a href="http://www.baidu.com">百度</a> <br>
<a href="javascript:;">js实现</a> <br>
<a href="#">点击会在url后追加#,不刷新页面</a> <br>
<!-- vue路由的原理: a标签请求时, 如果请求地址以#开头, 则页面不刷新 -->
<a href="#/main">主页</a> |
<a href="#/login">登录页</a> |
<a href="#/user">个人页</a> <br>
<!-- #相当于省略了当前文件url路径, 所以完整的写法如下 -->
<!-- 127.0.0.1 本机 -->
<a href="http://127.0.0.1:5500/3,vue%E8%B7%AF%E7%94%B1%E5%8E%9F%E7%90%86.html#/main">主页</a> |
<a href="http://127.0.0.1:5500/3,vue%E8%B7%AF%E7%94%B1%E5%8E%9F%E7%90%86.html#/login">登录页</a> |
<a href="http://127.0.0.1:5500/3,vue%E8%B7%AF%E7%94%B1%E5%8E%9F%E7%90%86.html#/user">个人页</a>
<!-- a标签的请求url中如果只是#后的路径发生变化, 页面不会刷新 -->
<!-- 在url地址中以#开头的路径叫 hash值 (哈希值) 如 #/user -->
<h1 id="h1"></h1>
<script>
//当网页url地址中的hash值(#开头的路径)变化时, 会触发hashchange这个事件
window.onhashchange = function(){
// 使用location.hash获取当前页面的hash值
console.log(location.hash);
// 通过判断hash值,渲染不同的组件/标签(路由分发)
if(location.hash == "#/main"){
h1.innerText = "这是主页内容"
}else if(location.hash == "#/login"){
h1.innerText = "这是登录页内容"
}else if(location.hash == "#/user"){
h1.innerText = "这是用户页内容"
}
}
// vue路由实现了在不刷新整个页面的前提下,实现了页面局部数据更新
// vue路由把上边的逻辑进行了封装, 更简洁方便
</script>
</body>