day02

本文介绍了Vue路由守卫的种类、使用场景,重点讲解了beforeEach和beforeResolve的区别,以及v-if与v-show在控制元素显示上的区别。此外,还讨论了导航守卫的执行顺序和在项目中的实际应用,包括methods/computed/watch的对比以及常用指令和修饰符的介绍。
摘要由CSDN通过智能技术生成

5. 路由导航守卫

5.1 什么是导航守卫

路由的导航守卫,又叫做路由的钩子函数,或者路由的生命周期函数,是在页面跳转的过程中到了某一个特定的时间节点就会触发的钩子函数。
有三种七个

全局守卫

beforeEach 路由进入之前
beforeResolve 路由解析之前
afterEach 路由离开之前

组件级守卫

beforeRouteEnter 路由进入之前
beforeRouteUpdate 路由更新之前
beforeRouteLeave 路由离开之前

单个路由独享的守卫

beforeEnter 路由进入之前

这些导航守卫有三个参数 to from next,to 代表到哪儿去 from 代表从哪儿来 next 代表执行下一步

5.2 导航守卫的使用场景

在写代码的过程中我一般用导航守卫进行页面的鉴权处理,在用户登陆成功的时候,我们会把 token 和用户信息存到 vuex 或者本地存储中,代表了用户的登陆状态,在访问某个页面的时候判断是否存的有 token,就能正常访问这个页面,如果没有 token,那么就用 next 跳转到登陆页面。

5.3 导航守卫的执行顺序

beforeEach 前置守卫
beforeEnter 路由独享守卫
beforeRouteEnter 组件守卫
beforeResolve 解析守卫
afterEach 路由后置守卫

5.4 beforeEach 和 beforeResolve 的区别

这两个都是全局守卫 都是在路由跳转之前就会执行的守卫
beforeEach 比 beforeResolve 执行的时间要更早

6. v-if 与 v-show 的区别?

v-if 和 v-show 都是控制元素的显示与隐藏,不过 v-if 控制元素的显示和隐藏的时候会删除对应的 dom 元素,当每⼀个显示的时候,都会重新创建 dom 和渲染。
⽽ v-show 则是通过 css 的 display:none和 display:block 来控制元素的显示与隐藏。v-if ⽐较耗费性能,所以我们涉及到频繁的显示隐藏操作建议使⽤ v-show,如果不是频繁操作的话,可以使用v-if。

在项⽬中我会经常使⽤ v-if 和 v-show,⽐如我们在搜索功能的时候,他有⼀个历史记录,这个时候我们根据是否有搜索的结果来判断历史记录的显示与隐藏,这块我就可以使⽤ v-if ,当然⽤ v-show 也可以。以上就是我对 v-if 和 v-show 的理解。

7. v-for 与 v-if 的优先级那个⾼?如果同时使⽤ v-for 和 v-if 怎么解决?

v-for 的优先级⾼,因为 v-for 的时候我们才开始渲染 dom 元素,这时 v-if 还⽆法进⾏判断。

v-for 和 v-if 不能同时使⽤,我们可以通过标签,⽐如 div 或者 template 标签来进⾏包裹,把 v-if 写到包裹的标签上⾯(写到 v-for 外⾯), 还有就是用计算属性算出来想要的数据再去循环。

在 vue3 中 v-if 的优先级更高。

8. methods computed watch 的区别

methods 是方法,各种事件放在这里,没有缓存功能。

computed 是计算属性,需要 return 计算的结果,并且有缓存功能,只有跟他有关的值发生变化才会重新计算,否则就从缓存里拿,通常用来计算购物车功能中的总数和总价。

watch 监听属性,有三个参数 handler(执行函数) deep(深度监听) immediate(立即监听)
如果不需要 deep 和 immediate 的时候就会简写成一个函数
watch 可以监听 data 数据还能监听路由的变化
watch 里可以执行异步操作 但是计算属性不行
watch 的使用场景:存本地存储的时候,只要数据变了就要重新存一次,那么就可以用 watch 实现

9. vue 常⽤的指令有哪些?

v-if        判断是否销毁/渲染
v-show        是否隐藏/显示
v-html        绑定元素(标签)
v-text        绑定文本
v-on        绑定事件
v-bind        动态绑定属性
v-model        双向数据绑定
v-for        循环遍历数据

10. vue 常⽤的修饰符有哪些?

.trim 去除⾸尾多余的空格
.stop 阻⽌事件冒泡
.once 只渲染⼀次
.self 事件只作⽤在元素本身
.number 将值转化为 number 类型
.capter 组件之间捕获
.prevent 阻⽌元素的默认⾏为
.native 事件穿透,让我们可以在⾃定义组件上定义事件和⽅法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值