博主信息
博文 70
粉丝 1
评论 0
访问量 68751
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
哈希锚点-vue路由模块分别前端路由
葡萄枝子
原创
986人浏览过

哈希锚点-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举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学