博客列表 >第26章 0120-vue路由原理与实现,学习心得,笔记(Vue路由)

第26章 0120-vue路由原理与实现,学习心得,笔记(Vue路由)

努力工作--周工--Robin
努力工作--周工--Robin原创
2021年02月01日 19:13:05523浏览

今天所学心得、笔记

1、哈希(锚点)原生实现前端路由

  1. <body>
  2. <nav>
  3. <a href="#/list1">国际新闻</a>
  4. <a href="#/list2">科技新闻</a>
  5. </nav>
  6. <!-- 用于显示路由的内容 -->
  7. <div class="route-view"></div>
  8. <script>
  9. const list1 = `
  10. <ul>
  11. <li>马斯克:我们将在五年半内登陆火星</li>
  12. <li>马斯克:我们将在五年半内登陆火星</li>
  13. <li>马斯克:我们将在五年半内登陆火星</li>
  14. </ul>
  15. `;
  16. const list2 = `
  17. <ul>
  18. <li>抖音大战春晚红包:社交、支付、电商齐上阵</li>
  19. <li>抖音大战春晚红包:社交、支付、电商齐上阵</li>
  20. <li>抖音大战春晚红包:社交、支付、电商齐上阵</li>
  21. </ul>
  22. `;
  23. // 获取路由显示区
  24. const routerView = document.querySelector(".route-view");
  25. // hashchange: url中的锚点变化时会自动触发这个事件
  26. window.addEventListener("hashchange", show);
  27. // DOMContentLoaded: 只要dom树创建完成就会触发,load:要等js执行完成和图片加载完成才触发
  28. window.addEventListener("DOMContentLoaded", show);
  29. function show() {
  30. console.log(location.hash);
  31. switch (location.hash) {
  32. case "#/list1":
  33. routerView.innerHTML = list1;
  34. return;
  35. case "#/list2":
  36. routerView.innerHTML = list2;
  37. return;
  38. default:
  39. routerView.innerHTML = list1;
  40. }
  41. }
  42. </script>
  43. </body>

2、vue路由模块, 前端路由

  1. <body>
  2. <nav class="app">
  3. <router-link to="/list1">国际新闻</router-link>
  4. <router-link to="/list2">科技新闻</router-link>
  5. <!-- 路由的资源显示区 -->
  6. <router-view></router-view>
  7. </nav>
  8. <script>
  9. const list1 = {
  10. template: `
  11. <ul>
  12. <li>马斯克:我们将在五年半内登陆火星</li>
  13. <li>马斯克:我们将在五年半内登陆火星</li>
  14. <li>马斯克:我们将在五年半内登陆火星</li>
  15. </ul>
  16. `,};
  17. const list2 = {
  18. template: `
  19. <ul>
  20. <li>抖音大战春晚红包:社交、支付、电商齐上阵</li>
  21. <li>抖音大战春晚红包:社交、支付、电商齐上阵</li>
  22. <li>抖音大战春晚红包:社交、支付、电商齐上阵</li>
  23. </ul>
  24. `,};
  25. // 1. 创建路由对象
  26. const router = new VueRouter({
  27. //路由配置
  28. routes: [
  29. // 每一个路由都是一个对象,每一个对象对应着一个路由地址
  30. { path: "/list1", component: list1 },
  31. { path: "/list2", component: list2 },
  32. ]
  33. });
  34. //2. 注册路由
  35. new Vue({
  36. el: ".app",
  37. // router: router,
  38. router,
  39. })
  40. </script>
  41. </body>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议