五、《揭秘一线互联网企业 前端JavaScript高级面试》视频教程总结系列五:MVVM和Vue 相关

系列目录:https://www.cnblogs.com/lmyxywy/p/10931603.html

问题一:说一下使用Jquery和使用vue的区别。

Jquery是对繁琐的Dom操作进行了封装,同时也在里面封装了兼容浏览器的处理方式,更方便开发人员选取和操作DOM对象,在这里,视图和数据是耦合在一起的,这样不利于复杂业务逻辑的开发;

而vue解耦了视图和数据,将Dom相关操作完全封装在了内部,通过数据来驱动视图,只关心数据的变化,将开发人员从繁琐复杂的Dom操作中解放了出来,能够更加专注于前端业务逻辑的实现。



问题二:如何理解MVVM?

MVVM是一种基于前端开发的架构模式,它起源于后端MVC框架,是为了适应日渐复杂的前端业务而生。

因为后端MVC模式并不完全适合前端场景,所以前端开拓者们将MVC中的C - Controller,变形为VM - ViewModel。

VM在MVVM模式中相当于一座桥梁,解耦了视图和数据,同时又连接着视图和数据。

视图通过事件绑定的方式改变数据,数据通过数据绑定的方式改变视图,它们都是通过VM来进行交互的。



问题三:vue的三要素有哪些?

响应式、模板引擎、渲染。



问题四:vue是如何监听到data的每个属性变化的?

通过Object.defineProperty()方法实现,Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。

它接收的第三个参数中含有两个函数,分别是set()和get(),在这两个函数中就可以添加自定义的监听逻辑,从而达到监听数据变化的目的。

vue通过遍历data属性,在遍历函数中,将每一个data属性通过Object.defineProperty()都绑定在了vue对象上,这样vue就可以监听到data属性的变化。

下面是实现的核心函数:

var vm= {};
var data = {
    name:‘zhangsan‘,
    age:20
};
var key;
for(key in data){
    (function(key){ // 命中闭包,保证key的独立空间
        Object.defineProperty(vm, key, {
            get:funtion(){
                // 此处可写监听逻辑
                return data[key];
            },
            set:function(newVal){
                // 此处可写监听逻辑
                data[key] = newVal;
            }
        })
    })(key)
}


未看完,待续。。。

原文地址:https://www.cnblogs.com/lmyxywy/p/11307016.html

时间: 2024-10-30 05:09:29

五、《揭秘一线互联网企业 前端JavaScript高级面试》视频教程总结系列五:MVVM和Vue 相关的相关文章

揭秘一线互联网企业 前端JavaScript高级面试

作为前端开发者对JS并不陌生,但真正做到深入理解与高级应用,这正是面试过程中对高级前端工程师岗位的硬性需求,目前也是大多数前端开发者的弱点.本课程把前端JS高级的知识点从起因到原理.进行渐进式讲解,让你顺利拿下前端高级JS面试难题,巧过面试关! 全面解析BAT企业前端JS面试,BAT前端工程师亲授,全网独家视频讲解前端JS高级面试中的各种问题.扩展你的JS知识深度 初级前端也能学 涉及前端高级的知识点从起因到原理,渐进式讲解.为你讲透每个知识点,应聘BAT企业轻而易举 轻松应聘BAT企业的前端高

互联网金融的前世、今生和未来-系列五(今生):互联网金融的有效监管

互联网金融的前世.今生和未来--系列一:山雨欲来 互联网金融的前世.今生和未来-系列二(前世):金融与技术的首次亲密接触之金融电子化 互联网金融的前世.今生和未来-系列三(今生):一场跨界的战争 互联网金融的前世.今生和未来-系列四(今生):百花齐放的互联网金融业态 今生:金融与互联网的深度融合--互联网金融 金融行业作为现代经济的核心,对国民经济的平稳运行至关重要.为防止出现金融市场失灵的情况,如内幕交易.信息不对称.信托责任.监管套利.系统性风险及羊群效应等,世界各国政府普遍会基于本国的金融

javascript高级程序设计 学习笔记 第五章 上

第五章 引用类型的值(对象)是引用类型的一个实例.在 ECMAScript 中,引用类型是一种数据结构, 用于将数据和功能组织在一起.它也常被称为类,但这种称呼并不妥当.尽管 ECMAScript 从技术上讲是一门面向对象的语言,但它不具备传统的面向对象语言所支持的类和接口等基本结构.引用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法. 对象是某个特定引用类型的实例.新对象是使用 new 操作符后跟一个构造函数来创建的. 构造函数本身就是一个函数,只不过该函数是出于创建新

JavaScript高级程序设计学习笔记第五章--引用类型(函数部分)

四.Function类型: 1.函数定义的方法: 函数声明:function sum (num1, num2) {return num1 + num2;} 函数表达式:var sum = function(num1, num2){return num1 + num2;};//注意有个分号 构造函数的方式:var sum = new Function("num1", "num2", "return num1 + num2");// 2.函数的重复声

《javascript高级程序设计》笔记(五)

1.Object类型 创建Objectt实例的方法 一:使用new操作符后跟Object构造函数 var person = new Object(); 二:对象字面量表示法,目的在于简化创建包含大量属性的对象的过程,数值属性名会转换成字符串. var person{ name : "Nicololas", age : 29 }; var person={};与new Object()相同 function displayInfo(args) { var output = "&

《JavaScript 高级程序设计》学习总结五(3)

引言:前面两节我对 Object 与数组Array 及其方法进行了总结,篇幅很长,总结完后我感觉还是要多开几节来对第五章进行分节总结,不然排版的知识点看着的确是有些混乱.   总结的学习的确是很痛苦并快乐的,痛苦在于知识点真的很多,总结起来很累,如何选取精简的内容,怎么排版都是考虑之中.而快乐之处在于,总结知识点往往能让我静下来重新看待这些问题,然后温故而知新.总之,学习的道路是没有捷径的.这期间我也意识到,以前我以为看完一本书就是目标,往往那时候一本书看完自己是学不到什么的,如今恍然大悟,其实

《JavaScript高级程序设计》学习笔记(4)——引用类型

欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第五章内容. 在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起,通常也被称为类,有时候也被成为对象定义,因为他们描述的是一类对象所具有的属性和方法.对象是某个特定引用类型的实例,新对象是使用new操作符后跟一个构造函数来创建的, var person = new Object() ; 创建了一个object对象.构造函数

未来五年移动互联网有哪些热门技术?(转)

未来五年移动互联网有哪些热门技术? 往后几年,究竟有哪些移动互联网技术,将成为热门呢?前瞻网为我们揭开了相关疑问,公布了未来五年移动互联网10大热门技术,笔者认为对一些研究和开发相关领域的人士是一篇很好的参考文章:原文如下: 目前,互联网行业的发展已经进入到一个新阶段,移动互联网技术的发展和运用日益成熟,传统互联网企业都已经开始自觉的运用移动互联网技术和概念拓展新业务和方向. 据前瞻网分析认为,无论是传统企业还是互联网企业,想要发挥移动互联网的种种优势和潜力就必须掌握广泛的移动技术和技能,其中许

新浪微博资深大牛全方位剖析 iOS 高级面试 高清无密

新浪微博资深大牛全方位剖析 iOS 高级面试 面试没底气?拿不到满意的offer?本课程从一线互联网企业的面试.笔试真题入手,以iOS技术体系为主线,深度剖析面试常用考点,让你面试有底气:同时会深入考点背后的技术原理.机制等高级知识,助你拿到满意的offer! 第1章 课程简介 本章对这门课程所讲述内容进行概要介绍,其中包括课程目标.适合人群,课程特色.课程收获.课程安排等.整个课程学习完结后,有机会获得电话模拟面试及内推. 1-1 课程导学 第2章 教你写份好简历(简历写的好,好机会更多) 本