加油!
文章目录
- 1. 二次封装 axios 做了什么
- 2. 路由的生命周期
- 3、 vue2 和 vue3的区别
- 4、vuex
1. 二次封装 axios 做了什么
-
请求拦截
- 成功: 头部添加token
- 失败: 返回错误信息
-
响应拦截
- 如果没有 token ,就提示转为登录页
路由守卫是 vue router 提供的一种机制,用于路由跳转前的的拦截或者控制,有三种路由守卫:全局前置路由守卫,全局后置路由守卫,和组件内的路由守卫
前置路由守卫是对路由跳转前的拦截,比如做跳转前的验证或者权限判断,
后置路由守卫是路由跳转后的相应页面操作,比跳转完关闭当前路由
组件内的路由守卫是对组件内部进行路由拦截控制,常多用于业务逻辑
权限验证
用户登录的成功会返回一个token,存放到local 里,每次在跳转路由的时候会在前置路由守卫里判断下token是否存在,或者是否过期,都符合就next放行
2. 路由的生命周期
keep-alive 是vue内置组件,可以将组件持久化,在下次展示时不会重新初始化,维持状态不变,有两个生命周期activeted和deactived ,一个是组件被激活,一个是离开时触发。 max 缓存的最大数,include 名字匹配的会被缓存,exclude 相反
3、 vue2 和 vue3的区别
-
语法不一样,vue2使用选项式API,分割了data,methodswatch等属性,vue3使用组合式api
-
生命周期不一样,vue2中的beforeCreate和create在vue3里是setup
-
响应式原理不同,vue2使用的defindpoty vue3使用的proxy 代理
-
vue2 响应式数据在data里,vue3 使用reactive创建响应式数据
-
vue2只有一个根节点
4、vuex
他是一个状态管理工具,我在项目一般用它来保存值,比如商品添加页用户发现一些东西没建立,在添加页跳转到某个页前完成操作后发现之前输入的值没有发生改变,还有就是封装组件的时候,我之前封装一个头部的组件,里面嵌套了两个组件,会有公共的数据,
状态管理工具 : 缓存值,组件传值
- state
- getter:用于获取State中的数据,可以对State中的数据进行计算和筛选,可以操作vuex 数据的computed
- mutations 可以直接修改状态的变化,主要用于处理同步的状态变化
- actions 需要调用mutations的commit 方法,间接修改状态,主要用于处理异步的状态变化