千锋教育web前端高频面试题视频教程,kerwin大话前端面试秘籍(附答案...

1.解释单向数据流和双向数据绑定
在 vue中 ,单向数据流使用一个上传和下传两个数据流之间相互独立,单向数据流指只能从一个方向来修改状态。
而双向数据绑定总的来说就是两条线,模型到视图,视图到模型
2.Object. defineProperty 有什么缺点
1、无法监听es6的 Set 、 Map 变化;
2、无法监听 Class 类型的数据;
3、属性的新加或者删除也无法监听;
4、数组元素的增加和删除也无法监听。
3.对 MVC , MVP , MVVM 的理解
MVC
View 视图操作后,处理的权利交移给 Controller控制台进行预处理,然后由 Model 执行相关的业务逻辑;当 Model 变更后, View 通过观察者模式收变更消息,会向 Model 请求最新的数据,然后重新更新界面。View 无法组件化,无法复用
MVP
和 MVC 模式一样,可以复用
View 可以进行组件化,但维护困难,无法实现响应式
MVVM
双向数据绑定,视图到模型,模型到视图
4、生命周期
三个阶段
初始阶段和更新阶段、销毁阶段
常用:
初始化阶段(初次渲染阶段):beforeCreated、created、beforeMount、mounted
更新阶段(再次渲染阶段):beforeUpdate、updated
销毁阶段:beforeDestory、destoryed
5.Vue 响应式数据原理 Proxy 与 Object . defineProperty 优劣对比
响应式原理:
defineProperty和setter getter进行拦截,一旦数据发生改变,setter方法开始调用watcher,watcher再调用render函数生成虚拟dome,虚拟dome对比老虚拟dome,发现区别就以最小代价更新dome节点,实现页面的更新操作
proxy 优势如下:
Proxy 可以直接监听对象而非属性。可以直接监听数组的变化
Proxy 返回的是一个新对象,我们可以只操作新的对象达到目的
而 Object. defineProperty 只能遍历对象属性直接修改:
// Object . defineProperty 的优势如下:
兼容性好,支持IE9,雨 Proxy 的存在浏览墨兼容性问题
6.Composition API 的出现带来哪些新的开发体验,为啥需要这个?
1:在 Compostion API 中时根据逻辑相关组织代码的,提高可读性和可维护性,类似于 react 的 hook 写法。2:更好的重用逻辑代码,在 Options API 中通过 MIxins 重用逻辑代码,容易发生命名冲突且关系不清。
3:解决在生命周期函数经常包含不相关的逻辑,但又不得不把相关逻辑分离到了几个不同方法中的问题,如在 mounted 中设置定时器,但需要在 destroyed 中来清除定时器,将同一功能的代码拆分到不同的位置,造成后期代码维护的困难。
7.对比 jQuery , Vue 有什么不同
jQuery 专注视图层,通过直接操作 DOM 去实现页面的一些逻辑渲染; Vue 专注于数据层,通过数据的双向绑定,最终表现在 DOM 层面。减少了 DOM 操作。 Vue 使用了组件化思想,使得项目子集职责清晰,提高了开发效率,方便重复利用,便协同开发
35
8.如何再 Vue 的单文件组件里的样式定义全局 CSS ?
在sty1e标签上不加上 scoped 的属性,默认为全局 css 样式
9.说一下 Sroot ,$ parent , Srefs
$ root ,和$ parent 都能访问父组件的属性和方法,区别在于如果存在多级子组件,通过 parent 访问得到的是它最近一级的父组件,通过 root 访问得到的是根父组件。通过在子组件标签定义 ref 属性,在父组件中可以使用 Srefs 访问子组件实例。
10.Vue中怎么自定义指令
通过 directive 来自定义指令,自定义指令分为全局指令和局部指令,自定义指令也有几个的钩子函数,常用的有 bind 和 update ,当 bind 和 update 时触发相同行为,而不关心其它的钩子时可以简写。