博客列表 >PHP大牛成长之路:JS原生路由与Vue路由及Git的基本操作流程

PHP大牛成长之路:JS原生路由与Vue路由及Git的基本操作流程

周Sir-BLOG
周Sir-BLOG原创
2020年09月12日 19:55:23727浏览

1、JS原生路由实现Tab选项卡

  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>原生路由实现Tab选项卡</title>
  7. <style>
  8. * {
  9. text-decoration: none;
  10. box-sizing: border-box;
  11. font-size: 14px;
  12. color: #000;
  13. }
  14. .active {
  15. color: #009688;
  16. border-bottom: 3px solid #5fb878;
  17. }
  18. ul {
  19. list-style: none;
  20. border-bottom: 1px solid #ccc;
  21. }
  22. ul > li {
  23. height: 40px;
  24. display: inline-block;
  25. margin-right: 20px;
  26. }
  27. ul > li a {
  28. display: block;
  29. line-height: 40px;
  30. text-align: center;
  31. }
  32. ul > li a:hover {
  33. color: #009688;
  34. border-bottom: 3px solid #5fb878;
  35. }
  36. </style>
  37. </head>
  38. <body>
  39. <div class="nav">
  40. <ul>
  41. <li><a href="#nav1" class="active">购物指南</a></li>
  42. <li><a href="#nav2">运输须知</a></li>
  43. <li><a href="#nav3">退货说明</a></li>
  44. <li><a href="#nav4">问题反馈</a></li>
  45. </ul>
  46. </div>
  47. <div id="app"></div>
  48. <!-- 404 -->
  49. <div id="page404" style="display: none">你点哪里了?没反应过来。</div>
  50. <script>
  51. // 原生的SPA(单页面应用)的路由实现方式
  52. // 基于锚点实现
  53. // (一)路由的原理:
  54. // 实现不刷新页面,就可以动态实现数据的加载,达到SPA的效果
  55. // window.location.hash: 获取url中的锚点: #以后面的内容
  56. // (二)路由的实现
  57. // 1 创建dom节点,
  58. const app = document.querySelector("#app");
  59. const div1 = document.createElement("div");
  60. // console.log(div1);
  61. div1.innerHTML = "打开支付页面,付款就行了!";
  62. const div2 = document.createElement("div");
  63. div2.innerHTML = "那是快递公司的事,别问我,嘿嘿~";
  64. const div3 = document.createElement("div");
  65. div3.innerHTML = "不支持退货,就是这么任性!";
  66. const div4 = document.createElement("div");
  67. div4.innerHTML = "买都买了,有问题就再买一个。";
  68. // 2. 并注册到路由表中
  69. // 路由表
  70. const routeTable = {
  71. 1: div1,
  72. 2: div2,
  73. 3: div3,
  74. 4: div4,
  75. };
  76. // 3. 生成路由
  77. function route(container) {
  78. // 1: 获取到路由
  79. let num = window.location.hash.substr(-1);
  80. // 2. 默认路由
  81. num = num || 1;
  82. // 3. 根据路由表获取对应的内容
  83. let content = routeTable[num];
  84. // 4. 如果路由表不存在指定的内容,获取到404的页面
  85. if (!content) content = document.querySelector("#page404");
  86. content.style.display = "block";
  87. // 5. 先将这个容器清空
  88. container.innerHTML = null;
  89. // 6. 将路由对应的页面渲染到指定的容器中
  90. container.appendChild(content);
  91. }
  92. // 路由的初始化/显示默认页面
  93. route(app);
  94. // 监听路由的变化/ 监听的锚点的变化
  95. window.addEventListener("hashchange", () => {
  96. route(app);
  97. setActive();
  98. });
  99. //设置焦点高亮显示
  100. function setActive() {
  101. //获取所有A标签
  102. const res = document.querySelectorAll("A");
  103. //获取hash最后一位数字
  104. const i = window.location.hash.substr(-1);
  105. //遍历去除原来高亮状态
  106. res.forEach((item) => {
  107. item.setAttribute("class", "");
  108. // item.classList.remove("active");
  109. });
  110. //设置焦点高亮状态
  111. res[i - 1].setAttribute("class", "active");
  112. }
  113. </script>
  114. </body>
  115. </html>

2、Vue路由实现Tab选项卡

  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>Vue-router路由库实现Tab选项卡</title>
  7. <style>
  8. * {
  9. text-decoration: none;
  10. box-sizing: border-box;
  11. font-size: 14px;
  12. color: #000;
  13. }
  14. .router-link-active {
  15. color: #009688;
  16. border-bottom: 3px solid #5fb878;
  17. }
  18. #app {
  19. height: 40px;
  20. position: relative;
  21. margin-bottom: 120px;
  22. }
  23. #app a {
  24. display: inline-block;
  25. margin: 10px;
  26. line-height: 40px;
  27. text-align: center;
  28. }
  29. .content {
  30. position: relative;
  31. top: -12px;
  32. z-index: -1;
  33. border-top: 1px solid #ccc;
  34. padding: 10px;
  35. }
  36. </style>
  37. <script src="../vue.js"></script>
  38. <!-- vue-router库 -->
  39. <script src="vue-router.js"></script>
  40. </head>
  41. <body>
  42. <div id="app">
  43. <!-- 使用 router-link 组件来导航. -->
  44. <!-- 通过传入 `to` 属性指定链接. -->
  45. <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
  46. <router-link to="/nav1">购物指南</router-link>
  47. <router-link to="/nav2">运输须知</router-link>
  48. <router-link to="/nav3">退货说明</router-link>
  49. <router-link to="/nav4">问题反馈</router-link>
  50. <!-- 路由出口 -->
  51. <!-- 路由匹配到的组件将渲染在这里 -->
  52. <router-view></router-view>
  53. </div>
  54. <script>
  55. // 1. 定义 (路由) 组件。
  56. const div1 = {
  57. template: "<div class='content'>打开支付页面,付款就行了!</div>",
  58. };
  59. const div2 = {
  60. template: "<div class='content'>那是快递公司的事,别问我,嘿嘿~</div>",
  61. };
  62. const div3 = {
  63. template: "<div class='content'>不支持退货,就是这么任性!</div>",
  64. };
  65. const div4 = {
  66. template: "<div class='content'>买都买了,有问题就再买一个。</div>",
  67. };
  68. // 2. 定义路由
  69. // 每个路由应该映射一个组件。
  70. // 其中"component" 可以是通过 Vue.extend() 创建的组件构造器, 或者,只是一个组件配置对象。
  71. const routes = [
  72. { path:"/",redirect:"/nav1"}, //路由空默认跳转
  73. { path: "/nav1", component: div1 },
  74. { path: "/nav2", component: div2 },
  75. { path: "/nav3", component: div3 },
  76. { path: "/nav4", component: div4 },
  77. ];
  78. // 3. 创建 router 实例,然后传 `routes` 配置
  79. const router = new VueRouter({
  80. routes, // (缩写) 相当于 routes: routes
  81. });
  82. // 4. 创建和挂载根实例。
  83. // 记得要通过 router 配置参数注入路由,从而让整个应用都有路由功能
  84. const app = new Vue({
  85. router,
  86. }).$mount("#app");
  87. // 现在,应用已经启动了!
  88. </script>
  89. </body>
  90. </html>

3、Git的基本操作流程

  1. - 在工作中编程
  2. - 将代码添加到暂存区
  3. - 将暂存区内容一次性的提交到本地版本库
  4. - 将本地的版本库内容提交到远程的版本库
  • 第1步:安装Git

    打开Git网站:https://git-scm.com/downloads ,根据自身操作系统下载,然后按默认选项安装即可。

  • 第2步:安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

  • 第3步:打开Git Bash,配置用户名和邮箱

  1. git config --global user.name '用户名'
  2. git config --global user.email '用户邮箱'

注意git config命令的—global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

  • 第4步:git 版本库的初始化: 创建版本库
  1. git init

创建后目录下多了一个.git的目录,是个隐藏的目录,这个目录是Git来跟踪管理版本库的(本地库),不要手动修改这个目录里面的文件,可能会导致Git仓库被破坏。

  • 第5步:创建版本库的忽略文件.gitignore

每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。

  1. /lib/ 过滤整个文件夹
  2. *.zip 过滤所有.zip文件
  3. /password.php 过滤某个具体文件
  1. 配置语法:
  2. 以斜杠/开头表示目录;
  3. 以星号*通配多个字符;
  4. 以问号?通配单个字符
  5. 以方括号[]包含单个字符的匹配列表;
  6. 以叹号!表示不忽略(跟踪)匹配到的文件或目录;
  • 第6步:将工作区的以及修改好的文件提交到暂存区

git add 文件名 # 提交指定单个文件

git add . # 一次性全部提交完毕

git status # 查看状态

  • 第7步:再将所有的内容从本地暂存区一次性的提交到本地的版本库

git commit -m '2020-9-12 18:59'

  • 第8步:添加远程版本库
    以 Gitee(码云)为例,登录网站:https://gitee.com/ 并创建仓库

  • 第9步:添加远程版本库

git remote add origin https://gitee.com/用户项目仓库地址

可使用以下命令查看远程仓库

git remote -v

  • 第10步:提交到远程仓库
  1. git push origin master : 表示提交到远程仓库
  2. git push -u origin master :这行命令表示下次我再更新文件提交时只需要使用 git push 命令就可以提交了
  3. git push -f origin master :如果提交失败的话,使用此行命令可以强制提交,但是会覆盖以前的文件
  • 第11步:提交完成,可以从远程仓库拉取内容

以下两条命令都可以
git pull https://gitee.com/用户项目仓库地址

git pull origin master

总结

  • 对路由的实现方式:原生及VUE都有了了解;
  • 路由的应用场景不是很了解,除了单页面描点操作还能干什么?
  • 网络有很多单页面网站,链接也是ID描点,但地址栏没有hash信息,这个和路由有关系吗?
  • git简单仓库使用以前都用过,按老师的重温了下步骤。
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议