vue相关面试题:1.vue-route 3种导航钩子 2.Vue 生命周期 3.v-if和v-for不能一起用

简介: 三、注意事项1.永远不要把 v-if 和 v-for 同时用在同一个元素上,带来性能方面的浪费(每次渲染都会先循环再进行条件判断)2.如果避免出现这种情况,则在外层嵌套template(页面渲染不生成dom节点),在这一层进行v-if判断,然后在内部进行v-for循环3.如果条件出现在循环内部,可通过计算属性computed提前过滤掉那些不需要显示

文章目录

vue-route 有哪几种导航钩子?

请详细说明你对 Vue 生命周期的理解

为什么Vue中的v-if和v-for不建议一起用?

一、作用

二、优先级

三、注意事项

vue-route 有哪几种导航钩子?

有3种

第一种是全局导航钩子: router. beforeEach( to , from , next ). 作用是跳转前进行判断

拦截

第二种是组件内的钩子

第三种是单独路由独享组件


请详细说明你对 Vue 生命周期的理解

总共分为 阶段,分别为 before Create , created ,beforeMount ,mounted, before Update , updated, beforeDestroyed ,destroyed


beforeCreate :

在实例初始化之后 ,数据观测者(data observer)和 event/watcher事件

配直之前调用


created :

在实例创建完成后立即调在这一步, 实例已完成以下的 配直:数据观测者,属性和方法的运算, watch/event 事件回调 然而,挂载阶段还没开始,$el属性目前不可见


beforeMount

在挂载开始之前调用,相关的render函数首次调用。


mounted

el被新创建的 vm.$ el 替换,并且在挂载到实例上之后再调用该钩子,如果 root 实例挂载了一个文档内元素 当调用 mounted时vm.$ el 也在文档内


before Update :

在数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前


updated :

由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子


beforeDestroy

在实例销毁之前调用,在这一步,实例仍然完全可用


destroyed :

在 Vue 实例销毁后调用 ,调用后, Vue.js 实例指示的所有东西都会解除绑定,所有的事件监听器会被移除,所有的子实例也会被销毁


当使用纽件的 keep-alive 功能时 增加以下两个周期

activated在keep-alive 纽件激活时调用;

deactvated在keep-alive 组件停用时调用

Vue 2.5 版本新增了一个周期钩子: ErrorCaptured 当捕获到一个来自子孙纽件的错

误时调用


为什么Vue中的v-if和v-for不建议一起用?

一、作用

1.v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 true值的时候被渲染

2.v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in items 形式的特殊语法,其中 items 是源数据数组或者对象,而 item 则是被迭代的数组元素的别名

3.在 v-for 的时候,建议设置key值,并且保证每个key值是独一无二的,这便于diff算法进行优化


二、优先级

v-if与v-for都是vue模板系统中的指令

在vue模板编译的时候,会将指令系统转化成可执行的render函数

在进行if判断的时候,v-for是比v-if先进行判断


三、注意事项

1.永远不要把 v-if 和 v-for 同时用在同一个元素上,带来性能方面的浪费(每次渲染都会先循环再进行条件判断)

2.如果避免出现这种情况,则在外层嵌套template(页面渲染不生成dom节点),在这一层进行v-if判断,然后在内部进行v-for循环

3.如果条件出现在循环内部,可通过计算属性computed提前过滤掉那些不需要显示的项


目录
相关文章
|
13天前
|
JavaScript 开发者
[译] 监听第三方 Vue 组件的生命周期钩子
[译] 监听第三方 Vue 组件的生命周期钩子
|
22天前
|
Java 调度
【多线程面试题 五】、 介绍一下线程的生命周期
线程的生命周期包括新建、就绪、运行、阻塞和死亡状态,线程状态会根据线程的执行情况在这些状态之间转换。
【多线程面试题 五】、 介绍一下线程的生命周期
|
23天前
|
缓存 JavaScript
【Vue面试题五】、说说你对Vue生命周期的理解?
这篇文章详细阐述了Vue生命周期的各个阶段及其特点,并解释了在`created`和`mounted`生命周期钩子中请求数据的区别,指出`created`钩子适合于执行异步数据获取,而`mounted`钩子由于DOM已经渲染完成,适合于执行依赖于DOM的操作。
【Vue面试题五】、说说你对Vue生命周期的理解?
|
28天前
|
JavaScript 前端开发 程序员
Vue学习之--------Vue生命周期beforeCreate、created、beforeMount、mounted、beforeDestroy 。。。(图解详细过程)(2022/7/17)
这篇文章详细介绍了Vue的生命周期和各个阶段的钩子函数,包括`beforeCreate`、`created`、`beforeMount`、`mounted`、`beforeUpdate`、`updated`、`beforeDestroy`和`destroyed`。文章通过图解、方法说明、代码实例和测试效果,阐述了每个钩子函数的作用和使用场景,帮助读者深入理解Vue实例从创建到销毁的整个过程。
Vue学习之--------Vue生命周期beforeCreate、created、beforeMount、mounted、beforeDestroy 。。。(图解详细过程)(2022/7/17)
|
1月前
|
JavaScript API 开发者
Vue的生命周期,创建(Creation)、挂载(Mounting)、更新(Updating)和销毁(Destruction)。
【8月更文挑战第1天】Vue的生命周期,创建(Creation)、挂载(Mounting)、更新(Updating)和销毁(Destruction)。
44 11
|
13天前
|
JavaScript 开发者
揭秘Vue.js生命周期钩子:它们是如何掌控组件的生与死?
【8月更文挑战第30天】Vue.js 的生命周期钩子是开发者必须掌握的关键概念,它涵盖了组件从创建、挂载、更新到销毁的整个过程,提供了在特定时机操作DOM、获取数据或执行逻辑的能力。从 `beforeCreate` 到 `unmounted`,每个阶段都有特定的任务:如 `created` 适合异步数据获取,`mounted` 用于DOM操作,而 `beforeUnmount` 则用于清理资源。
10 0
|
14天前
|
缓存 JavaScript API
vue学习之生命周期钩子
生命周期钩子
9 0
|
1月前
|
JavaScript 前端开发 开发者
vue生命周期
【8月更文挑战第1天】vue生命周期
27 2
|
3月前
|
JavaScript 前端开发 程序员
探索Vue.js宝库:解锁基础知识与实用技能之门(1. 数据绑定与响应式 2. 条件与循环 3. 组件化开发;1. 路由管理与导航 2. 状态管理与Vuex 3. Vue.js的生命周期)
探索Vue.js宝库:解锁基础知识与实用技能之门(1. 数据绑定与响应式 2. 条件与循环 3. 组件化开发;1. 路由管理与导航 2. 状态管理与Vuex 3. Vue.js的生命周期)
34 1
|
2月前
|
Java 调度
Java面试题:简述Java线程的生命周期及其状态转换。
Java面试题:简述Java线程的生命周期及其状态转换。
20 0