Vue面试题

102 阅读3分钟

1.v-show和v-if的区别

v-show只是控制元素的显示和隐藏,会在dom元素上设置行内style行内样式来控制元素的显示和隐藏值是布尔值,v-if也可以控制元素的显示和隐藏,和v-show的区别在于v-if会在dom数上移除该元素满足条件后会重新创建该元素。如果只是单纯的控制元素的显示和隐藏建议用v-shou。

2.v-for中key的作用

如果不用key的话v-for执行效率会变低,使用key的话可以大幅度的提高v-for的执行效率,更快的更准确的去遍历元素

3.vue中的data为什么是function

数据以函数返回值的形式定义,这样每复用一次组件就会返回新的数据,类似于给每个数据创建了自己的私人空间,让他们自己维护自己的数据。

4.vue中双向绑定的原理

就是响应式的数据,我们一般都会用v-model指令去双向绑定数据,一般用于input,text,select等元素上做双向绑定去监听数据的变化。

5.keep-alive的作用和被keep-alive声明的组件的声明周期

是vue中内置的一个组件,可以使被包含的组件保留状态,避免重新渲染。会在钩子函数activated组件被激活时调用,在钩子函数deactivated组件销毁时结束。

6.说一下vue的生命周期,以及生命周期都做了什么事情?

** vue实例是有一个完整的生命周期,从数据创建,挂载,更新,销毁形成了一个完整的声明周期。**

  • beforeCreate 组件实例被创建,组件生效之前

  • created 组件实例已经完全被创建,但还没有真实的dom元素。

  • beforeMount 在元素挂载之前被调用。

  • mounted 元素已经被挂载 挂载实例之后调用该钩子函数。

  • beforeUpdate 组件数据更新之前调用。

  • update 组件数据更新之后调用。

  • activited keep-alive专属的钩子函数,组件被激活时调用

  • deactivated 一般用于keep-alive组件被销毁时调用

  • beforeDestory 组件销毁前调用

  • destoryed 组件销毁后调用

7.vue什么时候操作dom比较合适?操作时候发现有的组件获取不到,怎么办?

在钩子函数mounted元素被挂载之后操作dom,mounted不能保证所有的子组件被挂载,因此需要使用$nexttick

> 8.发送网络请求在那个函数中

在created钩子函数在发送网络请求

9.vue组件间传值有哪些方式?

方向子,子向父,兄弟组件传值

10.vue中改变数组内索引的值,数据不更新,如何处理?

vue是单向数据流一般不能直接改变数组内的值,要改变的话可以通过vm.items方法去更新数据

11.讲一下vue

vue是构建用户界面的渐进式框架,可以借助vue框架来实现快速开发,vue多使用与模块化开发

12.说一下vuex

vuex是一个专为vue用户开发的状态管理模式,每一个vue应用核心就是store,store是一个容器,它用来存储vue state中的数据,

13.vue-router 路由模式有几种?

3种分别是hash,histiry,abstract。 hash使用URL hash值来做路由。支持所有游览器 history 依赖html5 history API和服务器配置。 abstract 支持所有javaScript运行环境。

14.computed 和 watch 的区别和运用的场景?

computed是计算属性,依赖其他属性的值,computed有缓存特性,当我们需要对某个属性进行计算的时候可以使用computed属性。 watch侦听器,可是时刻的监测数据的变化,当某个属性值方式改变后需要对他做一些业务上的逻辑处理就可以使用watch监听属性。