美文网首页
前端面试题(vue)

前端面试题(vue)

作者: Light_boy | 来源:发表于2019-05-07 11:07 被阅读0次

    1.谈谈你对MVVM开发模式的理解

    MVVM分为Model、View、ViewModel三者。

    Model 代表数据模型,数据和业务逻辑都在Model层中定义;

    View 代表UI视图,负责数据的展示;

    ViewModel 负责监听 Model 中数据的改变并且控制视图的更新,处理用户交互操作;

    Model 和 View 并无直接关联,而是通过 ViewModel 来进行联系的,Model 和 ViewModel 之间有着双向数据绑定的联系。因此当 Model 中的数据改变时会触发 View 层的刷新,View 中由于用户交互操作而改变的数据也会在 Model 中同步。

    这种模式实现了 Model 和 View 的数据自动同步,因此开发者只需要专注对数据的维护操作即可,而不需要自己操作 dom

    2.v-if 和 v-show 有什么区别?

    v-show 仅仅控制元素的显示方式,将 display 属性在 block 和 none 来回切换;而v-if会控制这个 DOM 节点的存在与否。当我们需要经常切换某个元素的显示/隐藏时,使用v-show会更加节省性能上的开销;当只需要一次显示或隐藏时,使用v-if更加合理。

    3.简述Vue的响应式原理

    当一个Vue实例创建时,vue会遍历data选项的属性,用 Object.defineProperty 将它们转为 getter/setter并且在内部追踪相关依赖,在属性被访问和修改时通知变化。

    每个组件实例都有相应的 watcher 程序实例,它会在组件渲染的过程中把属性记录为依赖,之后当依赖项的 setter 被调用时,会通知 watcher 重新计算,从而致使它关联的组件得以更新。

    4.网页从输入网址到渲染完成经历了哪些过程?

    1)输入网址;

    2)发送到DNS服务器,并获取域名对应的web服务器对应的ip地址;

    3)与web服务器建立TCP连接;

    4)浏览器向web服务器发送http请求;

    5)web服务器响应请求,并返回指定url的数据(或错误信息,或重定向的新的url地址);

    6)浏览器下载web服务器返回的数据及解析html源文件;

    7)生成DOM树,解析css和js,渲染页面,直至显示完成;

    5.jQuery获取的dom对象和原生的dom对象有何区别?

    js原生获取的dom是一个对象,jQuery对象就是一个数组对象,其实就是选择出来的元素的数组集合,所以说他们两者是不同的对象类型不等价。

    1)原生DOM对象转jQuery对象:

    var box = document.getElementById('box');

    var $box = $(box);

    2)jQuery对象转原生DOM对象:

    var $box = $('#box');

    var box = $box[0];

    相关文章

      网友评论

          本文标题:前端面试题(vue)

          本文链接:https://www.haomeiwen.com/subject/jqzloqtx.html