复习

包/模块module: export / import
单文件组件: .vue 一个组件封装成一个vue文件;

  • 语法高亮;
  • 模块的导入导出;
  • 组件作用域的css

vue-router:

  • 基本结构
    • 页面: router-link / router-view
    • 定义组件
    • 路由表 routes
      • path 路径
      • name 名字
      • component 组件
      • children 嵌套路由
    • 路由对象,设置路由表,放入到vue实例中
  • 动态路由
  • 嵌套路由
  • 编程式导航 push
  • 路由守卫
    • 全局路由 前置守卫 beforeEach(to,from ,next) 解析守卫 后置钩子

脚手架项目

  • 创建:vue create 项目名 / vue ui
  • 结构:
    • package.json
    • main.js 入口,全局配置,引入库
    • App.vue 页面骨架,容器
    • /router 路由配置
    • /views 视图、页面
    • /components 组件
    • /assets 资产
  • 怎么添加页面

安装依赖 npm install element-ui -S

Vuex

问题: 前端需要存储类似是否登录这样的数据,用于判断页面能否显示?
image.png

两种方式:

简单处理方式(丐版),在浏览器中存储数据: localStorage / sessionStorage (html5)

为何不用Cookie?
页面切换时,可能不发请求;数据量比较大
localStorage和sessionStorage的API是一致的,如下:

  • 保存数据:localStorage.setItem(key,value);
  • 读取数据:localStorage.getItem(key);
  • 删除单个数据:localStorage.removeItem(key);
  • 删除所有数据:localStorage.clear();
  • 得到某个索引的key:localStorage.key(index);

localStorage和sessionStorage的区别在于作用域范围,localStroge针对一个网站,持久存储;sessionStorage只对一个标签,关闭则消失;一般使用localStorage;

拦截登录实例

  1. 路由守卫,拦截所有请求,基于router实现守卫,代码写在/router/index.js ```javascript import {Message} from ‘element-ui’

router.beforeEach((to,from,next)=>{ let isLogined = localStorage.getItem(“isLogined”); console.log(“是否登录”+isLogined);

if(to.path==’/login’){ console.log(“登陆请求,放行”); next(); return; } if(isLogined){ console.log(“已登录,放行”); next(); return; }

Message({ type:”error”, message:”请您先登录” }); //this.$router 是在vue实例中使用 //跳转 router.push(“/login”);

});

  1. 2. 登录完成后,存入登录标记
  2. ```vue
  3. <template>
  4. <el-form
  5. :model="ruleForm"
  6. status-icon
  7. ref="ruleForm"
  8. label-width="100px"
  9. class="demo-ruleForm"
  10. >
  11. <el-form-item label="用户名" prop="pass">
  12. <el-input
  13. type="text"
  14. v-model="ruleForm.username"
  15. autocomplete="off"
  16. ></el-input>
  17. </el-form-item>
  18. <el-form-item label="密码" prop="checkPass">
  19. <el-input
  20. type="password"
  21. v-model="ruleForm.password"
  22. autocomplete="off"
  23. ></el-input>
  24. </el-form-item>
  25. <el-form-item>
  26. <el-button type="primary" @click="submitForm">登录</el-button>
  27. </el-form-item>
  28. </el-form>
  29. </template>
  30. <script>
  31. export default {
  32. name: "Login",
  33. data() {
  34. return {
  35. ruleForm: {
  36. username: "",
  37. password: "",
  38. }
  39. };
  40. },
  41. methods: {
  42. submitForm() {
  43. alert("登录成功");
  44. localStorage.setItem("isLogined","true");
  45. }
  46. },
  47. };
  48. </script>

可以通过开发者控制台查看localStorage所存的数据
image.png

Vuex

https://vuex.vuejs.org/zh/
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
image.png
处理中大型的vue应用程序的数据状态管理

  • state,数据存储,驱动应用的数据源;
  • view,以声明方式将 state 映射到视图;
  • actions,用来修改state的一些操作,响应在 view 上的用户输入导致的状态变化。

如果state里有一个属性叫余额,那么actions就可能存在充值或者提现这样方法

以下是一个表示“单向数据流”理念的简单示意:
2021年6月28日 vue6 - 图4

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <div id="app">
  11. <div>{{count}}</div>
  12. <div>
  13. <button @click='add'>+</button>
  14. <button @click='minus'>-</button>
  15. </div>
  16. </div>
  17. <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
  18. <script src="https://unpkg.com/vuex@3.6.2/dist/vuex.js"></script>
  19. <script>
  20. // public class A{
  21. // private int count=0;
  22. // public void incr(){
  23. // count++;
  24. // }
  25. // public void decr(){
  26. // count--;
  27. // }
  28. // }
  29. //创建了一个Vuex的store对象
  30. const store = new Vuex.Store({
  31. state:{//数据
  32. count:0
  33. },
  34. mutations:{//action,对数据的操作
  35. incr(state){//参数为state对象
  36. state.count++;
  37. },
  38. decr(state){
  39. state.count--;
  40. }
  41. }
  42. });
  43. let app = new Vue({
  44. el:"#app",
  45. data:{
  46. // count:0
  47. },
  48. computed:{//通过计算属性将store内部的值放进到vue实例中
  49. count(){
  50. return store.state.count;
  51. }
  52. },
  53. methods:{
  54. add(){
  55. //触发store的相应的mutation更改器
  56. store.commit('incr');
  57. },
  58. minus(){
  59. store.commit('decr');
  60. }
  61. }
  62. })
  63. </script>
  64. </body>
  65. </html>

Linux

https://distrowatch.com/images/other/distro-family-tree.png
操作系统内核 -> 操作系统 Centos -> 用作服务器操作系统
作用: 部署
目标:

  • 存活(linux操作系统下的一些基本操作)
  • 发展(部署软件)

unix 大型机操作系统
Linus 大学期间 开发Linux系统内核 开源
linux内核+gnu软件(应用软件)+…=>发行版

著名发行版

  1. redhat(收费,提供服务)
    1. 开源 fedora
    2. 企业版 centos
  2. freebsd 学术
  3. ubuntu 个人
  4. kali 安全
  5. suse 教育
  6. deepos 深度
  7. elementryos 好看

安装linux

  1. 虚拟机 vmware
    1. 填入注册码
    2. 禁用虚拟网卡
  2. 在虚拟机中安装centos

image.png
image.pngimage.png
image.png
image.pngimage.png
image.png
image.png
image.png

进出虚拟机:

  • 在虚拟机的区域点击,则进入虚拟机,鼠标键盘切到虚拟机
  • ctrl+alt 退出虚拟机操作

image.png
image.png
安装位置为感叹号,点击进入,并点击完成即可
image.png
image.png
image.png
image.png
image.png
image.png
统一为root123 ,点击两次完成
等待安装
image.png