博客列表 >VUE中使用哈希(锚点)原生|vue路由模块方法实现前端路由

VUE中使用哈希(锚点)原生|vue路由模块方法实现前端路由

幸福敲门的博客
幸福敲门的博客原创
2021年01月21日 21:53:211114浏览

作业内容:

  1. 使用哈希(锚点)原生实现一个前端路由;
  2. 使用vue路由模块实现一个前端路由

一、使用哈希(锚点)原生实现一个前端路由

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>基于锚点的哈希路由模式</title>
  7. </head>
  8. <body>
  9. <nav>
  10. <a href="#/xw1">军事</a>
  11. <a href="#/xw2">体育</a>
  12. <a href="#/xw3">文化</a>
  13. </nav>
  14. <!-- 该区域专用于显示路由的内容 -->
  15. <div class="route-view"></div>
  16. <script>
  17. let xw1 = `
  18. <ul>
  19. <li><a href="">中国如何造隐轰?已曝光两个奇怪飞翼模型”</a></li>
  20. <li><a href="">歼20翼下外挂2PL15导弹试飞 将开启"野兽"模式(图)”</a></li>
  21. <li><a href="">美将军:除了中国海军明显增长外 我没看到重大变化”</a></li>
  22. </ul>
  23. `;
  24. let xw2 = `
  25. <ul>
  26. <li><a href="">库里26分勇士轻取马刺 吹杨38分卡皇27+26老鹰获连胜。</a></li>
  27. <li><a href="">连续5场最少丢109分!篮网死穴在这 帕金斯赛后炮轰欧文。</a></li>
  28. <li><a href="">塞克斯顿天神下凡加时连拿15 过去一周NBA11人阳性。</a></li>
  29. </ul>
  30. `;
  31. let xw3 = `
  32. <ul>
  33. <li><a href="">少林寺等中原名寺“闭门谢客”</a></li>
  34. <li><a href="">陕西发现两座唐代纪年壁画墓 一墓主为“弼马温”。</a></li>
  35. <li><a href="">山西修缮一宋代建筑时发现罕见地宫</a></li>
  36. </ul>
  37. `;
  38. // 获取路由的内容显示区元素
  39. const routeView = document.querySelector(".route-view");
  40. window.addEventListener("hashchange", show);
  41. // window.addEventListener("load", show);
  42. // DOMContentLoaded: 只要dom树创建完成就会触发,load:要等js执行完成和图片加载完成才触发
  43. window.addEventListener("DOMContentLoaded", show);
  44. function show() {
  45. console.log(location.hash);
  46. switch (location.hash) {
  47. case "#/xw1":
  48. routeView.innerHTML = xw1;
  49. return;
  50. case "#/xw2":
  51. routeView.innerHTML = xw2;
  52. return;
  53. case "#/xw3":
  54. routeView.innerHTML = xw3;
  55. return;
  56. default:
  57. routeView.innerHTML = xw1;
  58. }
  59. }
  60. </script>
  61. </body>
  62. </html>

图示:
 使用哈希(锚点)原生实现一个前端路由

二、使用vue路由模块实现一个前端路由

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>vue路由模块实现前端路由</title>
  7. <!-- 加载vue框架 -->
  8. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  9. <!-- 路由模块 -->
  10. <script src="vue-router-dev/dist/vue-router.js"></script>
  11. </head>
  12. <body>
  13. <nav class="app">
  14. <!-- 1.vue的路由是基于哈希实现,是用a标签的锚点来实现 -->
  15. <router-link to="/xw1">军事</router-link>
  16. <router-link to="/xw2">体育</router-link>
  17. <router-link to="/xw3">文化</router-link>
  18. <!-- 2路由到的资源显示区域 -->
  19. <router-view></router-view>
  20. </nav>
  21. <script>
  22. const xw1 = {
  23. template: `
  24. <ul>
  25. <li><a href="">中国如何造隐轰?已曝光两个奇怪飞翼模型”</a></li>
  26. <li><a href="">歼20翼下外挂2PL15导弹试飞 将开启"野兽"模式(图)”</a></li>
  27. <li><a href="">美将军:除了中国海军明显增长外 我没看到重大变化”</a></li>
  28. </ul>
  29. `,
  30. };
  31. const xw2 = {
  32. template: `
  33. <ul>
  34. <li><a href="">库里26分勇士轻取马刺 吹杨38分卡皇27+26老鹰获连胜。</a></li>
  35. <li><a href="">连续5场最少丢109分!篮网死穴在这 帕金斯赛后炮轰欧文。</a></li>
  36. <li><a href="">塞克斯顿天神下凡加时连拿15 过去一周NBA11人阳性。</a></li>
  37. </ul>
  38. `,
  39. };
  40. const xw3 = {
  41. template: `
  42. <ul>
  43. <li><a href="">少林寺等中原名寺“闭门谢客”。</a></li>
  44. <li><a href="">陕西发现两座唐代纪年壁画墓 一墓主为“弼马温”。</a></li>
  45. <li><a href="">山西修缮一宋代建筑时发现罕见地宫。</a></li>
  46. </ul>
  47. `,
  48. };
  49. // 1. 创建路由对象
  50. const router = new VueRouter({
  51. // 路由配置项
  52. routes: [
  53. // 每一个路由都是一个对象,每一个对象对应着一个路由地址
  54. { path: "/xw1", component: xw1 },
  55. { path: "/xw2", component: xw2 },
  56. { path: "/xw3", component: xw3 },
  57. ],
  58. });
  59. new Vue({
  60. // 2. 注册路由
  61. // router: router,
  62. router,
  63. }).$mount(".app");
  64. </script>
  65. </body>
  66. </html>

图示:
vue路由模块实现前端路由
配置文件

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议