欢迎光临散文网 会员登陆 & 注册

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

2023-07-16 22:37 作者:随意难堪  | 我要投稿

P13-Vue高频面试题

5.你知道Vue响应式数据原理吗? Proxy 与 object.defineProperty 优劣对比?

响应式原理:

vue的响应式实现主要是利用了 object.defineproperty的方法里面的setter 与getter方法的观察者模式来实现。在组件初始化时会给每一个data属性注册getter和setter,然后再new 一个自己的watcher对象,此时watcher会即调用组件的render函数去生成虚拟DOM。在调用render的时候,就会需要用到data的属性值,此时会触发getter函数,将当前的watcher函数注册进sub里。当data属性发生改变之后,就会遍历sub里所有的watcher对象,通知它们去重新渲染组件。

Proxy的优势:

  • Proky 可以直接监听对象而非属性,可以直接监听数组的变化
  • Proxy 有多达 13 种拦截方法,不限于 apply、ownKeys、deleteProperty、has 等等是object.defineProperty 不具备的;
  • Proxy 返回的是一个新对象,我们可以只操作新的对象达到目的,而 bject.defineproperty 只能遍历对象属性直接修改;

Object.defineProperty的优势:

  • 兼容性好,支持 IE9,而 Proxy 的存在浏览器兼容性问题,而且无法用 polyfi11(垫片)来弥补


7.对比jQuery,Vue 有什么不同

jQuery 专注视图层,通过直接操作 DOM 去实现页面的一些逻辑染: Vue 专注于数据层,通过数据的双向绑定,最终表现在 DOM 层面,减少了 DOM 操作。vue 使用了组件化思想,使得项目子集职责清晰,提高了开发效率,方便重复利用,便于协同开发


P14 Vue高频面试题

14.Vue中keep-alive的作用

keep-alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,或避免重新染。一旦使用keepalive包裹组件,此时mouted,created等钩子函数只会在第一次进入组件时调用,当再次切换回来时将不会调用。此时如果我们还想在每次切换时做一些事情,就需要用到另外的周期函数,actived和deactived,这两个钩子函数只有被keepalive包裹后才会调用。


千锋教育web前端高频面试题视频教程,kerwin大话前端面试秘籍(附答案)的评论 (共 条)

分享到微博请遵守国家法律