合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
# 实现简易前端路由 基于URL中的hash实现(点击菜单的时候改变URL的hash,根据hash的变化控制组件的切换) > 技术核心,通过监听window的onhashchange事件,根据获取的最新hash值,切换要显示的组件的名称。 ``` <!--被vue实例控制的div区域--> <div id="app"> <!--切换组件的超链接--> <a href="#/zhuye">主页</a> <a href="#/keji">科技</a> <a href="#/caijing">财经</a> <a href="#/yule">娱乐</a> <!--根据:is属性指定组件名称,把对应的组件渲染到component标签所在的位置--> <!--可以把component标签当做是[组件占位符]--> <component :is="current"></component> </div> <script> //定义需要被切换的四个组件 var zhuye = { template:`<h1>主页信息</h1>` } var keji = { template:`<h1>科技信息</h1>` } var caijing = { template:`<h1>财经信息</h1>` } var yule = { template:`<h1>娱乐信息</h1>` } //vue 实例对象 var vm = new Vue({ el:"#app", components:{ zhuye,keji,caijing,yule }, data:{ current:'keji' } }) //监听window的onhashchange事件,根据获取到的最新的hash值,切换要显示的组件名称 window.onhashchange = function(){ //根据location.hash获取最新的hash值 '#/keji' console.log(location.hash) var currentHash = location.hash.slice(1); switch(currentHash) case 'zhuye': vm.current = 'zhuye'; break; case 'keji': vm.current = 'keji'; break; case 'caijing': vm.current = 'caijing'; break; case 'yule': vm.current = yule; break; } </script> ```