博客列表 >哈希锚点-vue路由模块分别前端路由

哈希锚点-vue路由模块分别前端路由

葡萄枝子
葡萄枝子原创
2021年01月20日 23:20:46766浏览

哈希锚点-vue路由模块分别前端路由

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

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

  • body 中添加 html 和 js
  1. <!-- 使用哈希(锚点)原生实现一个前端路由 -->
  2. <nav>
  3. <a href="#/list1">list1</a>
  4. <a href="#/list2">list2</a>
  5. <a href="#/list3">list3</a>
  6. </nav>
  7. <!-- 显示哈希锚点路由内容 -->
  8. <p class="hash-router"></p>
  9. <script>
  10. let list1 = `<ul><li>list1-content-1</li><li>list1-content-2</li><li>...</li><li>list1-content-n</li></ul>`;
  11. let list2 = `<ul><li>list2-content-1</li><li>list2-content-2</li><li>...</li><li>list2-content-n</li></ul>`;
  12. let list3 = `<ul><li>list3-content-1</li><li>list3-content-2</li><li>...</li><li>list3-content-n</li></ul>`;
  13. const hashRouter = document.querySelector('.hash-router');
  14. // 监听 hashchange 事件执行
  15. window.addEventListener('hashchange', show);
  16. // 页面加载执行一次
  17. window.addEventListener('load', show);
  18. function show() {
  19. switch (location.hash) {
  20. case '#/list2':
  21. hashRouter.innerHTML = list2;
  22. break;
  23. case '#/list3':
  24. hashRouter.innerHTML = list3;
  25. break;
  26. // 默认第一个
  27. default:
  28. hashRouter.innerHTML = list1;
  29. }
  30. }
  31. </script>
  • 页面载入后,默认显示列表1

哈希锚点路由1

  • 点击 list2,显示列表2

哈希锚点路由2

2. 使用vue路由模块实现一个前端路由

  • body 中续写 html 和 js
  1. <!-- 使用vue路由模块实现一个前端路由 -->
  2. <!-- 引入vue框架库 -->
  3. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  4. <!-- 引入vue路由库 -->
  5. <script src="https://cdn.jsdelivr.net/npm/vue-router/dist/vue-router.js"></script>
  6. <!-- 创建一个vue节点 -->
  7. <nav class="app">
  8. <!-- vue路由锚点 -->
  9. <router-link to="/route1">route1</router-link>
  10. <router-link to="/route2">route2</router-link>
  11. <router-link to="/route3">route3</router-link>
  12. <!-- 路由到的资源显示 -->
  13. <router-view></router-view>
  14. </nav>
  15. <script>
  16. let temp1 = `<ul><li>route1-content-1</li><li>route1-content-2</li><li>...</li><li>route1-content-n</li></ul>`;
  17. let temp2 = `<ul><li>route2-content-1</li><li>route2-content-2</li><li>...</li><li>route2-content-n</li></ul>`;
  18. let temp3 = `<ul><li>route3-content-1</li><li>route3-content-2</li><li>...</li><li>route3-content-n</li></ul>`;
  19. // 创建路由
  20. const router = new VueRouter({
  21. // 配置路由
  22. routes: [
  23. {
  24. path: '/route1',
  25. component: {
  26. template: temp1,
  27. }
  28. },
  29. {
  30. path: '/route2',
  31. component: {
  32. template: temp2,
  33. }
  34. },
  35. {
  36. path: '/route3',
  37. component: {
  38. template: temp3,
  39. }
  40. }
  41. ],
  42. });
  43. // vue 实例中注册路由
  44. const vm = new Vue({
  45. el: '.app',
  46. router,
  47. });
  48. </script>
  • 页面载入后,显然 vue 路由 route1 列表图

vue路由1

  • 点击 route3 显示 route3 列表

vue路由2

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