前端Vue面试题笔试题

前言

接上篇前端Js笔试题面试题,收集整理Vue相关的面试题,供自己现在和以后学习和面试,也希望能对点进来的小伙伴有所帮助。

目录:

前端HTML+CSS笔试题面试题

前端JS笔试题面试题

前端小程序笔试题面试题

Vue基础必备

1、v-showv-if区别

1、v-showcss切换,v-if是完整的销毁和重新创建。

2、使用 频繁切换时用v-show,运行时较少改变时用v-if

3、v-if=‘false’ v-if是条件渲染,当false的时候不会渲染

2、Class 与 Style 如何动态绑定?

Class

1、对象方法 v-bind:class="{'orange': isRipe, 'green': isNotRipe}"

2、数组方法 v-bind:class="[class1, class2]"

3、行内 v-bind:style="{color: color, fontSize: fontSize+'px'}"

Stlye

1、对象方法 v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"

2、数组方法 v-bind:style="[styleColor,styleSize]"

3、计算属性和 watch 的区别

computed: 是计算属性,依赖其它属性值,并且 computed 的值有缓存,只有它依赖的属性值发生改变,下一次获取 computed 的值时才会重新计算computed 的值;

watch: 更多的是「观察」的作用,类似于某些数据的监听回调 ,每当监听的数据变化时都会执行回调进行后续操作;

运用场景:

1、当我们需要进行数值计算,并且依赖于其它数据时,应该使用 computed,因为可以利用 computed的缓存特性,避免每次获取值时,都要重新计算;

2、当我们需要在数据变化时执行异步或开销较大的操作时,应该使用watch,使用watch选项允许我们执行异步操作 ( 访问一个API),限制我们执行该操作的频率,并在我们得到最终结果前,设置中间状态。这些都是计算属性无法做到的。

4、事件修饰符

.prevent: 提交时间不再重载页面

.stop:阻止单击事件冒泡

.self:当事件发生在该元素本身而不是子元素的时候触发

.capture:事件侦听,事件发生的时候会调用

组合键 click.ctrl.exact 只有ctrl被按下的时候才触发

5、组件中data为什么是函数

因为组件是用来复用的,JS 里对象是引用关系,这样作用域没有隔离,而new Vue 的实例,是不会被复用的,因此不存在引用对象的问题。

6、开发中常用的指令有哪些

v-model :一般用在表达输入,很轻松的实现表单控件和数据的双向绑定

v-html:更新元素的 innerHTML

v-showv-if: 条件渲染,

v-on : click: 可以简写为@click,@绑定一个事件。如果事件触发了,就可以指定事件的处理函数

v-for:基于源数据多次渲染元素或模板块

v-bind: 当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM

7、v-model 的原理

vue 项目中主要使用 v-model 指令在表单 input、textarea、select 等元素上创建双向数据绑定,我们知道 v-model 本质上不过是语法糖, v-model在内部为不同的输入元素使用不同的属性并抛出不同的事件:

1、text 和 textarea元素使用 value 属性和 input事件;

2、checkbox 和 radio 使用 checked 属性和 change 事件;

3、select字段将value 作为 prop 并将 change 作为事件;

8、vue插槽

单个插槽

当子组件模板只有一个没有属性的插槽时,父组件传入的整个内容片段将插入到插槽所在的 DOM 位置,并替换掉插槽标签本身

命名插槽

solt元素可以用一个特殊的特性name来进一步配置如何分发内容。多个插槽可以有不同的名字。 这样可以将父组件模板中slot位置,和子组件 slot元素产生关联,便于插槽内容对应传递

作用域插槽

可以访问组件内部数据的可复用插槽(reusable slot)在父级中,具有特殊特性 slot-scope