Vue常见基础面试题(1)

 1.什么是vue生命周期?

vue生命周期是指vue对象从创建到销毁的过程.

vue 生命周期(钩子函数):

①.创建前/后 

             beforeCreate:实例已经初始化,但el 和 data 并未初始化,不能获取dom节点.

                    Created:实例已经创建完成,完成了data 数据的初始化,el没有.

②.挂载前/后

             beforeMount:模板已经编译完成,完成了el和data 初始化,注意此时还没有挂在html到页面上。

                    Mounted:挂在完成,模板中的数据已经渲染到页面.

③.更新前后

             beforeUpdate:在数据更新之前被调用,data中的数据是新的,页面数据依然是旧的.

                     Updated:页面数据此时已更新完成.

④.销毁前后

            beforeDestroy:实例销毁之前调用,实例仍然完全可用.

                  Destroyed:vue实例已经销毁完成.

          

2.第一次页面加载会触发那几个钩子函数?

   beforeCreate, Created, beforeMount,  Mounted

3.vue的优点?

轻量级框架:只关注视图层,是一个构建数据的视图集合,大小只有几十kb;
简单易学:国人开发,中文文档,不存在语言障碍 ,易于理解和学习;
双向数据绑定:保留了angular的特点,在数据操作方面更为简单;

虚拟DOM:dom操作是非常耗费性能的, 不再使用原生的dom操作节点,极大解放dom操作,但具体操作的还是dom不过是换了另一种方式;

运行速度更快:相比较与react而言,同样是操作虚拟dom,就性能而言,vue存在很大的优势。

4.vuex的理解

①vuex是专门为vue提供的一个状态管理系统.

②vuex有五大核心:

State:用来存放初始数据,不可以直接修改里面的数据.

Getter:类似vue的计算属性,主要用来过滤一些数据.

Mutation :存放的是动态修改Vuex的state中数据状态的方法。

Action:保存的触发mutations中方法的方法,可以理解为通过将mutations里面处里数据的方法变成可异步的处理数据的方法,简单的说就是异步操作数据

 Module:模块化Vuex

state里面一般存放的数据 1、组件之间全局共享的数据 2、通过后端异步请求的数据 

5.vue的两大核心是什么?

数据驱动、组件系统
数据驱动:ViewModel,保证数据和视图的一致性。
组件系统:应用类UI可以看作全部是由组件树构成的。

6.vue双向数据绑定原理?

采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty() 来劫持各个属性的settergetter,在数据变动时发布消息给订阅者,触发相应监听回调.

7.Vue的v-model双向绑定原理?

v-model本质就是一个语法糖,可以看成是value + input方法的语法糖。 可以通过model属性的prop和event属性来进行自定义.原生的v-model,会根据标签的不同生成不同的事件和属性.

8.data为什么是个函数?

组建中的data写成一个函数,这样每次复用组件的时候,都会返回一份新的data,相当于每个组件实例都有自己私有的数据空间,它们只负责各自维护的数据,不会造成混乱。而单纯的写成对象形式,就是所有的组件实例共用了一个data,这样改一个全都改了.

9.为什么要使用key?

需要使用key来给每个节点做一个唯一标识,Diff算法就可以快速正确的识别此节点.
作用主要是为了高效的更新虚拟DOM.

10.v-if和v-show区别?

共同点:都能控制元素属性显示与隐藏

区别:v-if 是通过动态的向DOM树内添加或者删除DOM元素,v-if不停的销毁和创建比较消耗性能。

v-show就是通过控制css中的display设置为none,控制隐藏。

注意:如果要频繁切换某节点,使用v-show(切换开销比较小,初始开销较大)。

如果不需要频繁切换某节点使用v-if(初始渲染开销较小,切换开销比较大)。

11.keep-alive的作用?

keep-alive用于组件缓存,当组件切换是,用来保留当前组件状态,避免重新渲染.

扩展:

 keep-alive两个属性 :

include 只有匹配的组件会被缓存.
exclude 任何匹配的组件都不会被缓存.

12.什么是原型,原型链?

原型:每个引用数据类型都有一个原型_proto_。

原型链:当在查找某一属性时,都会先从对象本身查找,如果没有就回去它的原型进行查找,原型如果没有,会从原型的原型查找,直到找到,或者找到原型的顶端null。由此形成原型链。而原型就是原型对象上的属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值