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提前过滤掉那些不需要显示的项


目录
相关文章
|
1月前
|
JavaScript
VUE学习二:事件监听(v-on)、条件判断(v-if/v-else-if/v-else)、循环遍历(v-for)
这篇文章是关于Vue.js的学习指南,涵盖了事件监听、条件判断、循环遍历、数组方法响应性、案例分析以及高阶函数的使用。
60 2
VUE学习二:事件监听(v-on)、条件判断(v-if/v-else-if/v-else)、循环遍历(v-for)
|
2月前
|
缓存 JavaScript 前端开发
vue面试题
vue面试题
168 64
|
2月前
|
缓存 JavaScript 前端开发
vue-day02计算属性,v-bind,v-if,v-for
文章介绍了Vue.js中的计算属性、class与style的绑定、条件渲染和列表渲染的使用。通过示例代码展示了如何使用计算属性简化模板逻辑、如何通过v-bind动态绑定class和style、如何使用v-if进行条件渲染以及如何使用v-for进行列表渲染。这些特性使得Vue.js在构建动态用户界面时更加灵活和强大。
vue-day02计算属性,v-bind,v-if,v-for
|
1月前
|
数据可视化 JavaScript 前端开发
低代码可视化工具--vue条件判断v-if可视化设置-代码生成器
低代码可视化工具--vue条件判断v-if可视化设置-代码生成器
34 2
|
1月前
|
JavaScript 前端开发
vue尚品汇商城项目-day01【8.路由跳转与传参相关面试题】
vue尚品汇商城项目-day01【8.路由跳转与传参相关面试题】
42 0
vue尚品汇商城项目-day01【8.路由跳转与传参相关面试题】
|
1月前
|
JavaScript 算法 前端开发
在Vue开发中v-if指令和v-show指令的使用介绍,v-if和v-for的优先级以及使用注意事项的介绍
在Vue开发中v-if指令和v-show指令的使用介绍,v-if和v-for的优先级以及使用注意事项的介绍
21 0
|
3月前
|
JavaScript 前端开发 编译器
【Vue面试题三十二】、vue3有了解过吗?能说说跟vue2的区别吗?
这篇文章介绍了Vue 3相对于Vue 2的改进和新增特性,包括性能提升、体积减小、更易维护、更好的TypeScript支持、新的Composition API、新增的Teleport和createRenderer功能,以及Vue 3中的非兼容性变更和API的移除或重命名。
【Vue面试题三十二】、vue3有了解过吗?能说说跟vue2的区别吗?
|
3月前
|
JavaScript 前端开发 API
【Vue面试题三十一】、你是怎么处理vue项目中的错误的?
这篇文章讨论了Vue项目中错误的处理方式,包括后端接口错误和代码逻辑错误的处理策略。文章详细介绍了如何使用axios的拦截器处理后端接口错误,以及Vue提供的全局错误处理函数`errorHandler`和生命周期钩子`errorCaptured`来处理代码中的逻辑错误。此外,还分析了Vue错误处理的源码,解释了`handleError`、`globalHandleError`、`invokeWithErrorHandling`和`logError`函数的作用和处理流程。
【Vue面试题三十一】、你是怎么处理vue项目中的错误的?
|
3月前
|
Java 调度
【多线程面试题 五】、 介绍一下线程的生命周期
线程的生命周期包括新建、就绪、运行、阻塞和死亡状态,线程状态会根据线程的执行情况在这些状态之间转换。
【多线程面试题 五】、 介绍一下线程的生命周期
|
缓存 监控 JavaScript
vue面试中常见的面试题
vue面试中常见的面试题
1494 0
vue面试中常见的面试题
下一篇
无影云桌面