什么是Vue.js框架为什么选择它?(第⼀课)
“⼤⽩话,讲编程”系列⼜回来了,这个系列我们⼀起学习的是Vue.js基础知识。你没看错,是基础知识。所以,哪怕你⼊⾏不久,相信你在的⼤⽩话风格下,也能学会。
但还是希望你有开发过html,css,javascript的项⽬经验,如果你连⼀点项⽬经验都没有,亦或者你早已掌握Vue.js的知识,那么这个系列不适合你当前的学习阶段。
1 学习⽬标
通过这⼀节,你会学会:
vue与react面试题1.⽬前前端技术使⽤的趋势
2.什么是MVVM
3.Vue.js的优点
4.Vue.js的两⼤核⼼
5.Vue.js的适⽤场景
2 诞⽣背景
近⼏年来,得益于⼿机设备的普及和性能的提升,移动端的web需求⼤量增加,产⽣了⼀种叫webapp的东西,也就是移动端的⽹页应⽤。
它们功能越来越复杂,交互也越来越酷炫,功能与效果越来越接近于原⽣的APP。⽐如下⾯这些:
(效果直逼原⽣APP)
这种webapp它们不仅仅像h5营销⽹页⼀样有酷炫的效果,它们还有复杂的点击、输⼊、下拉选择,视图切换等复杂的交互。在这样的业务需求下,我们还是沿⽤PC端的开发⽅案,难免会不太合适。⽐如:视图切换。
在PC端,视图切换我们会⽤<a>标签进⾏页⾯的跳转,但如果在移动端,那就歇菜了,你会遇到这样的画⾯:
(等到花⼉都谢了)
这个时候⽤户只能等.....3秒,5秒,8秒.......很难想象,在⼀个需要频繁切换视图的webapp⾥⾯,使⽤<a>标签去实现,对⽤户来说是很不友好的,换你你也不愿意等那么久,反正我是不愿意了....
此外,接收⽤户输⼊的同时,很可能要及时更新视图,⽐如⽤户输⼊不同的内容,页⾯就会相对应进⾏更新,点击不同的选项,就会显⽰不同的状态等等交互效果。⼀旦这种交互多了,你要⼿动地进⾏操作,代码就容易变得复杂和难以维护。
为了解决webapp这些的体验和开发上的不⾜,我们决定学习并使⽤⼀个MVVM框架——Vue.js
3 什么是MVVM
MVVM可以拆分成:View --- ViewModel --- Model三部分,看下⾯的视图:
那么,我们怎么理解MVVM呢?
上图中,左侧的View相当于我们的DOM内容,我们所看到的页⾯视图,右侧的Model相当于我们的数据对象,⽐如⼀个对象的信息:
{
name:"张三",
age:21,
}
⽽中间的监控者就负责监控两侧的数据,并相对应地通知另⼀侧进⾏修改。⽐如:你在Model层中修改了name的值为:“李四”,那么View视图层显⽰的“张三”也会⾃动变成了“李四”,⽽这个过程就是有ViewModel来操作的,不需要你⼿动地去写代码
去实现(你不⽤再⼿动操作DOM了)。
如果你写过复杂的DOM操作,你就可以感受到它带来的便利。
这就是MVVM框架,属于MVVM的JS框架除了Vue.js,还有React.js,Angular.js。
这⾥我们不去分析具体这3个框架哪个更好,关于技术选型,每个开发团队的情况都不⼀样,考虑的因素也不⼀样,只要合适⾃⼰就好。这⾥我们只说⼀下Vue.js的优点:
1.Vue.js更轻量更快
2.更容易上⼿,易学
4 Vue的核⼼
铺垫了这么多,终于讲到了Vue的核⼼。
那么,我们就来认识⼀下Vue.js,这⾥摘取⼀段官⽹对它的介绍:
通过尽可能简单的API实现响应的数据绑定和组合的视图组件
这句话有两个关键词:数据绑定和视图组件。
Vue的数据驱动:数据改变驱动了视图的⾃动更新,传统的做法你得⼿动改变DOM来改变视图,vuejs只需要改变数据,就会⾃动改变视图,⼀个字:爽。再也不⽤你去操⼼DOM的更新了,这就是MVVM思想的实现。
视图组件化:把整⼀个⽹页的拆分成⼀个个区块,每个区块我们可以看作成⼀个组件。⽹页由多个组件拼接或者嵌套组成。看下图:
具体在开发过程中怎样实现⼀个组件,到底哪些区块可以划分成⼀个组件,后⾯的章节我们再⼀⼀介绍,这⾥你只需要知道,在Vue.js中,⽹页是可以看成多个组件组成的即可。
5 适⽤场景
如果你还在⽤jquery频繁操作你的DOM来更新页⾯的话,那么,你可以⽤Vue.js来解放你的DOM操作了。
如果你的项⽬中有多个部分是相同的,并可以封装成⼀个组件,那么,你可以试试⽤Vue.js。
此外,Vue.js的核⼼实现中使⽤了ES5的Object.defineProperty特性,IE8及以下版本浏览器是不兼容的,所以,你的项⽬需要兼容这些较低版本的浏览器的话,那么,Vue.js就不适⽤了。
毕竟,开发⼀个项⽬的⽬的不是为了使⽤某个框架。
6 本节⼩结
为了更好满⾜当前移动webapp项⽬的开发需求,MVVM框架诞⽣,⽽Vue.js便是这样的⼀种js框架,其两⼤核⼼:数据驱动和组件化。
来源::web前端教程
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。