Blogger Information
Blog 70
fans 1
comment 0
visits 53080
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
哈希锚点-vue路由模块分别前端路由
葡萄枝子
Original
767 people have browsed it

哈希锚点-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

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments