
vue面试专栏整理
文章平均质量分 52
vue面试整理总结
小李想瘦
只要生活不敷衍,岁月便只能蹉跎你的发际线!
展开
-
v-if和v-show的区别
要想了解v-if和v-show的区别,我们还是需要了解一下这两者是什么。v-if和v-show就是用来判断视图层从而展示效果的。v-if是通过创建或者删除DOM节点来实现元素的显示以及隐藏的v-show是通过CSS中的display属性来控制元素的显示以及隐藏的。一般的来说,v-if拥有更改的切换开销,而v-show有更高的初始渲染开销,所以如果要频繁的切换,则使用v-show是比较好的,但是如果运行时条件很少改变,还是要用v-if在实际的开发中,我们经常用到v-if或者v-show来进行原创 2021-05-04 14:46:44 · 278 阅读 · 0 评论 -
v-if和v-for的优先级
v-if和v-for的优先级在官方文档中v-if是根据表达式的值truthiness来有条件的渲染元素,在切换元素以及它的数据绑定/组件被销毁并重建,如果元素是<template>,将提出它的内容作为条件块。首先,v-for和v-if是不应该一起使用的,必要的情况下应该替换成commpouted属性,是因为:v-for在官方文档的解释中本身就比v-if优先,如果每一次都需要遍历整个数组,将会影响速度,尤其是当只需要渲染很小一部分的时候。同时:在vue处理指令时。v-for比v-if具原创 2021-05-02 23:23:16 · 318 阅读 · 0 评论 -
修改数据页面不更新的原因和解决方案
在Vue项目中,有时候在我们修改或者添加新的对象属性后,明明data中的数据已经更新了,但是页面依旧没有更新。1、分析:在vue2中是通过Object.defineProperty对于data中的数据进行数据劫持,实现数据的双向绑定的。 defineReactive: function(data, key, val) { //为data中所有层次的属性都创建一个dep实例 var dep = new Dep(); //递归遍历d原创 2021-05-02 19:44:13 · 1113 阅读 · 0 评论 -
Vuex的核心概念和运行机制
Vuex的核心概念和运行机制1、vuex是什么?vuex是一个专为vue.js应用程序开发的状态管理工具,他采用集中存储的方式来管理程序的所有组件的数据2、Vuex都有什么核心概念?state:用来存储数据。数据类型是一个对象类型。Getters:借助vue的计算属性computed来实现实现缓存,通过Vue的计算属性实现对state中的数据做一些逻辑性的操作。actions:在actions中只能调用muations中的方法,是一个异步的muationsmuations:更改Vuex的原创 2021-05-02 17:48:54 · 460 阅读 · 0 评论 -
Vue中key值的作用
Vue中key值的作用首先v-for在列表渲染时,我们可以用v-for基于一个数组来渲染一个列表。v-for指令需要使用item in arr形式的特殊语法来进行渲染列表,arr是源数据,<ul id="example-1"> <li v-for="item in arr" :key="item.id"> {{ item.message }} </li></ul>v-for中的key值在vue.js文档中是这样写的当Vue原创 2021-04-29 21:16:38 · 4702 阅读 · 1 评论 -
vue中的data为什么是一个函数
首先:组件是一个可复用的Vue实例,一个组件被创建好之后,就可能被用在各个地方,而组件不管被复用多少次,组件中data数据都应该是相互隔离,互不影响的,基于这一理念,组件每复用一次,data数据就会被复制一次,、也就是说如果data是一个函数的话,那么我们每次创建一个新的实例之后,就会调用一个新的data函数。也就是给每一个data数据定义一个新的内存地址。这样的话,修改A而不会影响B.function Person() { this.data = this.data();}Person原创 2021-04-29 20:17:17 · 3005 阅读 · 0 评论 -
Vue的双向绑定原理
Vue的双向绑定原理面试话术vue.js是采用数据劫持结合发布者和订阅这的模式,通过Object.defineProperty()来劫持各个属性的getter和setter,在数据发生变动时发布消息给订阅者,触发响应的回调来渲染视图。具体步骤1、通过observer的数据对象进行递归遍历,包括子属性的对象的的属性,都加上setter和getter,从而给这个对象的某个值赋值,就会触发setter,这样来监听数据的变化2、通过compile解析模板指令,将模板中的变量替换成数据,然后初始化渲染转载 2021-04-29 18:53:52 · 162 阅读 · 0 评论 -
vue-router路由导航守卫
共有这几种:路由守卫(导航守卫):router.beforeEach:全局前置守卫。router.beforeResolve:全局解析守卫。router.afterEach:全局后置钩子。组件内守卫:beforeRouteEnterbeforeRouteUpdatebeforeRouteLeave路由独享守卫:beforeEnter总结:导航被触发。在失活的组件里调用 beforeRouteLeave 守卫。调用全局的 beforeEach 守卫。在重用的组件里调用原创 2021-04-29 18:50:56 · 1571 阅读 · 0 评论 -
vue的生命周期
1、beforeCreate(创建前):在此生命周期函数执行的时候,data和methods中的数据都还没有初始化。2、created(创建后):在此生命周期函数中,data和methods都已经被初始化好了,如果要调用 methods中的方法,或者操作data中的数 据,最早只能在created中操作。3、beforeMount(载入前):在此生命周期函数执行的时候,模板已经在内存中编译好了,但是尚未挂载到页面中去,此时页面还是旧的。4、mounted(载入后):此时页面和内存中都是最新的数据,这个原创 2021-04-29 18:48:21 · 473 阅读 · 1 评论 -
vue前端面试题总结
持续更新…生命周期原创 2021-04-28 21:33:16 · 322 阅读 · 1 评论 -
vue组件开发的props验证
1、什么是keep-alive?keep-alive是vue的内置组件,而这个组件作用就是能够缓存不活动的组件,一般情况下,组件在进行切换的时候,默认会进行销毁,如果有需求,某个组件切换后不进行销毁,而是保存之前的状态,那么可以利用keep-alive来实现。简单的说就是:在vue项目中,难免会有列表页面或者搜索结果的列表页面,在点击某个结果之后,返回回来时,如果不对结果页面进行缓存,那么返回列表页面的时候会回到初始状态,但是我们想要的结果是返回是这个页面还是之前的搜索结果列表,这个时候就需要keep原创 2021-04-19 18:21:59 · 500 阅读 · 3 评论 -
Vue中的$nextTick()
官方定义:在下次DOM更新循环结束后执行延迟回调,在修改数据之后立即使用这个方法,获取更新后的DOM面试总结 Vue中DOM的更新采取的时候更新队列,Vue在观察到数据变化时候不是直接更新DOM,而是开启一个队列并缓冲在同一个事件循环中发生的所有数据改变。 虽然Vue推荐我们采用数据驱动但是有些时候我们仍然需要使用一些原生DOM操作,当数据改变后,DOM并没有更新,这个时候是获取不到最新的DOM对象的,nextTick就是让我们知道DOM是什么时候更新完成的,所以我原创 2021-04-20 23:51:52 · 394 阅读 · 0 评论