Blogger Information
Blog 62
fans 2
comment 1
visits 42555
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PartIII 09 vue前端路由及git版本管理(0910thu)
老黑
Original
646 people have browsed it

主要内容:

  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">


Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:其实仔细想想, git操作并不难, 不是吗?
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
Author's latest blog post