博客列表 >PartIII 09 vue前端路由及git版本管理(0910thu)

PartIII 09 vue前端路由及git版本管理(0910thu)

老黑
老黑原创
2020年09月13日 15:47:46647浏览

主要内容:

  1. 原生根据锚点来做路由(锚点、内容、内容与锚点匹配)
  2. vue中来实现
    • 导航(锚点)- router-link组件实现
    • 内容模板 - template实现
    • 匹配 - VueRouter对象数组来实现
    • 然后挂载实现即可,简洁很多

1. 路由的原理

  • 内容部分
  • 匹配机制部分
  • 锚点+内容匹配+渲染到前端
  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. <a href="#1">故事1</a>
  10. <a href="#2">故事2</a>
  11. <a href="#3">故事3</a>
  12. <!-- 根据路由/锚点的不同, 显示不同的内容 -->
  13. <div id="app"></div>
  14. <!-- 404,没有内容的情况下出现。但目前是隐藏的 -->
  15. <div id="page404" style="display: none;">这个故事被狗吃了</div>
  16. <script>
  17. // 原生的SPA(单页面应用)的路由实现方式
  18. // 基于锚点实现
  19. // (一)路由的原理:
  20. // 实现不刷新页面,就可以动态实现数据的加载,达到SPA的效果
  21. // window.location.hash: 获取url中的锚点: #以后面的内容
  22. // console.log(window.location.hash);
  23. // console.log(document.querySelector("a:first-of-type").href.substr(-2));
  24. // console.log(document.querySelector("a:nth-of-type(2)").href.substr(-2));
  25. // console.log(document.querySelector("a:last-of-type").href.substr(-2));
  26. // window.addEventListener("hashchange", () => console.log("hash变化了"));
  27. // (二)路由的实现
  28. // 1 创建dom节点,(内容部分)
  29. const app = document.querySelector("#app");
  30. const div1 = document.createElement("div");
  31. div1.innerHTML = "1. 困在系统里的外卖骑手,需要的不只是多等五分钟";
  32. const div2 = document.createElement("div");
  33. div2.innerHTML = "2. 25岁裸辞到海南冲浪,30岁和王一博上综艺";
  34. const div3 = document.createElement("div");
  35. div3.innerHTML = "3. 给莫迪留了一烂摊子!抢下中国的高铁项目遥遥无期";
  36. // 2. 并注册到路由表中(对应部分)
  37. // 路由表
  38. const routeTable = {
  39. 1: div1,
  40. 2: div2,
  41. 3: div3,
  42. };
  43. // 3. 生成路由(功能实现 - 锚点+内容匹配+渲染到前端)
  44. function route(container) {
  45. // 1: 获取到路由
  46. let num = window.location.hash.substr(1);
  47. console.log(num);
  48. // 2. 默认路由,默认为1
  49. num = num || 1;
  50. console.log(num);
  51. // 3. 根据路由表获取对应的内容(内容实现机制)
  52. let content = routeTable[num];
  53. // 4. 如果路由表不存在指定的内容,获取到404的页面
  54. if (!content) content = document.querySelector("#page404");
  55. content.style.display = "block";
  56. // 5. 先将这个容器清空
  57. container.innerHTML = null;
  58. // 6. 将路由对应的页面渲染到指定的容器中(渲染到前端)
  59. container.appendChild(content);
  60. }
  61. // 路由的初始化/显示默认页面
  62. route(app);
  63. // 监听路由的变化/ 监听的锚点的变化(监听并操作)
  64. window.addEventListener("hashchange", () => route(app));
  65. </script>
  66. </body>
  67. </html>

2. vue路由实现

  • router-link组件生成导航
  • 通过template做内容模版
  • VueRouter对象数组将导航(锚点)和内容匹配
  • 在vue实例中挂载。整体更为简洁

  • 需要先到官网去下载对应的js包

  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. <script src="../lib/vue.js"></script>
  7. <!-- 路由包 -->
  8. <script src="../lib/vue-router-dev/dist/vue-router.js"></script>
  9. <title>Vue路由的原理</title>
  10. </head>
  11. <body>
  12. <div class="app">
  13. <!-- 1. 使用router-link组件来生成导航<a></a> -->
  14. <router-link to="/news1">新闻1</router-link>
  15. <router-link to="/news2">新闻2</router-link>
  16. <router-link to="/news3">新闻3</router-link>
  17. <!-- 2. 路由内容的渲染 -->
  18. <router-view></router-view>
  19. </div>
  20. <script>
  21. const news1 = {
  22. template: "<p>1. 困在系统里的外卖骑手,需要的不只是多等五分钟</p>",
  23. };
  24. const news2 = {
  25. template: "<p>2. 25岁裸辞到海南冲浪,30岁和王一博上综艺</p>",
  26. };
  27. const news3 = {
  28. template: "<p>3. 给莫迪留了一烂摊子!抢下中国的高铁项目遥遥无期</p>",
  29. };
  30. // 注册路由
  31. const router = new VueRouter({
  32. // 配置
  33. routes: [
  34. // 是一个对象数组,每个对象对应一个路由
  35. { path: "/news1", component: news1 },
  36. { path: "/news2", component: news2 },
  37. { path: "/news3", component: news3 },
  38. ],
  39. });
  40. // vue实例
  41. const vm = new Vue({
  42. // 将路由注册到挂载点中
  43. // 当属性名与变量同名,只需要写一个
  44. router,
  45. }).$mount(".app");
  46. </script>
  47. </body>
  48. </html>

3. 通过git来管理代码版本

3-1. git 是什么

  • 分布的版本控制系统

3-2. git 中的一些术语

  • 版本库

    • 本地版本库
    • 远程版本库
  • 工作区

  • 暂存区

3-3. git 流程

  • 在工作中编程
  • 将代码添加到暂存区
  • 将暂存区内容一次性的提交到本地版本库
  • 将本地的版本库内容提交到远程的版本库

  1. # 切换到需要使用git进行版本控制的项目目录中
  2. cd git-edu
  3. # 配置用户名和邮箱
  4. git config --global user.name '用户名'
  5. git config --global user.email '用户邮箱'
  6. # git 版本库的初始化: 创建版本库
  7. git init
  8. # 创建版本库的忽略文件 .gitignore
  9. # 将工作区的已经修改过的文件, 提交到本地版本库中的暂存区
  10. git add . # 一次性全部提交完毕
  11. git status # 查看状态
  12. # 再将所有的内容从本地暂存区一次性的提交到本地的版本库
  13. git commit -m '2020-9-10 21:59'
  14. # 添加远程版本库
  15. git remote add origin https://gitee.com/bnkt/git-edu.git
  16. git remote add origin https://gitee.com/用户个性地址/HelloGitee.git
  17. # 查看远程仓库
  18. git remote -v
  19. # 提交到远程仓库
  20. git push origin master
  21. git push -u origin master
  22. git push -f origin master
  23. # 从远程仓库拉取内容
  24. git pull https://gitee.com/bnkt/git-edu.git
  25. git pull origin master

" class="reference-link">


" class="reference-link">


" class="reference-link">


" class="reference-link">


" class="reference-link">


" class="reference-link">


" class="reference-link">


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