2020年Vue面试题汇总

本文汇总了关于Vue的面试重点,包括渐进式框架的理解、Vue的核心概念、生命周期、双向绑定原理,以及v-if/v-show的区别、组件交互、路由与Vuex等。深入探讨Vue的数据驱动、组件化特性,解析Vue的生命周期钩子、数据绑定的实现机制,同时也讨论了Vue在实际项目中的应用,如组件间的通信、动态路由、路由守卫、Vuex状态管理等。
摘要由CSDN通过智能技术生成

理论篇

1、对于Vue是一套渐进式框架的理解

渐进式代表的含义是:主张最少。
Vue可能有些方面是不如React,不如Angular,但它是渐进的,没有强主张,你可以在原有大系统的上面,把一两个组件改用它实现,当jQuery用;也可以整个用它全家桶开发,当Angular用;还可以用它的视图,搭配你自己设计的整个下层用。你可以在底层数据逻辑的地方用OO和设计模式的那套理念,也可以函数式,都可以,它只是个轻量视图而已,只做了自己该做的事,没有做不该做的事,仅此而已。
渐进式的含义,我的理解是:没有多做职责之外的事
先使用Vue的核心库,再根据你的需要的功能再去逐渐增加加相应的插件

2、vue.js的两个核心是什么?

数据驱动和组件化。

3、vue生命周期钩子函数有哪些?

总共分为8个阶段创建前/后,载入前/后,更新前/后,销毁前/后。具体执行流程查看下图
在这里插入图片描述

4、vue 的双向绑定的原理是什么?

双向绑定详细简介
vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的。具体实现过程:
① 首先要对数据进行劫持监听,所以我们需要设置一个监听器Observer,用来监听所有属性。
② 如果属性发上变化了,就需要告诉订阅者Watcher看是否需要更新。因为订阅者是有很多个,所以我们需要有一个消息订阅器Dep来专门收集这些订阅者,然后在监听器Observer和订阅者Watcher之间进行统一管理的。
③ 我们还需要有一个指令解析器Compile,对每个节点元素进行扫描和解析,将相关指令对应初始化成一个订阅者Watcher,并替换模板数据或者绑定相应的函数,此时当订阅者Watcher接收到相应属性的变化,就会执行对应的更新函数,从而更新视图
实现一个监听器Observer,用来劫持并监听所有属性,如果有变动的,就通知订阅者

实现一个订阅者Watcher,可以收到属性的变化通知并执行相应的函数,从而更新视图

实现一个解析器Compile,可以扫描和解析每个节点的相关指令,并根据初始化模板数据以及初始化相应的订阅器
在这里插入图片描述

语法篇

1、请问 v-if 和 v-show 有什么区别?

a.实现方式: v-if是根据后面数据的真假值判断直接从Dom树上删除或重建元素节点。 v-show只是在修改元素的css样式,也就是display的属性值,元素始终在Dom树上。

b.编译过程:v-if切换有一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件; v-show只是简单的基于css切换;

c.编译条件:v-if是惰性的,如果初始条件为假,则什么也不做;只有在条件第一次变为真时才开始局部编译; v-show是在任何条件下(首次条件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值