实现简易前端路由
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>
原文链接:https://blog.csdn.net/weixin_38341556/article/details/112601773