之前一直没有总结Vue相关的知识,看了挺多别人总结的,其实也能快速知道一些,但是遇到真正的面试,发现自己的知识都还是是碎片化的,觉得不行,得总结一下了。
不知道大伙是不是已经在准备春招面试了呢,准备得咋样了呢,面试的Vue复习得怎么样了呢?
如果你感觉在vue这方面还比较薄弱的话,不如来做一做这套模拟面试吧,看看大伙能不能打个满分,祝你顺利,答案仅供参考
欢迎访问GitHub(私聊找我拿链接)仓库,目前已经有 552 道大厂真题了,涵盖各类Android的真题
------ 进入正题化身为面试官 ------
电话拨通中,咳咳喂,听得到吗,听得到是吧,那面试开始了,你先做个自我介绍吧 。。。 在你自我介绍的时候呢,我就看看你做过的项目,技术栈什么的。
第一个问题,先摸个底:
了解过(用过)react或者angular吗,他们有什么区别?
答案
Vue 借鉴了 angular 的模板和数据绑定技术,又借鉴了 react 的组件化和虚拟 DOM 技术。
对 Vue 比较熟一些是吧~(这里只说 Vue 假设你就只熟练 Vue )
那首先谈谈你对Vue的理解吧?
答案
官网介绍: cn.vuejs.org/index.html
关键点: 渐进式 JavaScript 框架、核心库加插件、动态创建用户界面(异步获取后台数据,数据展示在界面)
特点: MVVM 模式;代码简洁体积小,运行效率高,适合移动PC端开发;本身只关注 UI (和 react 相似),可以轻松引入 Vue 插件或其他的第三方库进行开发。
思考一下自己所说的那些点,自己都非常清楚明白吗?
下面呢我就根据你对 vue 的理解,接着谈谈:
你刚刚说到了MVVM,能详细说说吗?
答案
全称: Model-View-ViewModel , Model 表示数据模型层。 view 表示视图层, ViewModel 是 View 和 Model 层的桥梁,数据绑定到 viewModel 层并自动渲染到页面中,视图变化通知 viewModel 层更新数据。
摸底差不多,问基础了,响应式数据得知道吧,问一问
vue是如何实现响应式数据的呢?(响应式数据原理)❗
答案
Vue2: Object.definProperty 重新定义 data 中所有的属性, Object.definProperty 可以使数据的获取与设置增加一个拦截的功能,拦截属性的获取,进行依赖收集。拦截属性的更新操作,进行通知。
具体的过程:首先Vue使用 initData 初始化用户传入的参数,然后使用 new Observer 对数据进行观测,如果数据是一个对象类型就会调用 this.walk(value) 对对象进行处理,内部使用 defineReactive 循环对象属性定义响应式变化,核心就是使用 Object.definProperty 重新定义数据。
刚刚如果你说了对象的检测,然后又没说清楚数组的处理的话,我就会问下面这个问题