购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1 Vue.js基础

本节介绍Vue.js的基础知识、发展历史、组织架构以及具体应用等方面的内容。

2.1.1 Vue.js简介

Vue.js是一个用于构建用户界面的渐进式JavaScript框架,采用了“自底向上、增量开发”的设计方式。Vue.js的核心是只关注视图层,便于与第三方库或既有项目进行整合。细心的读者会发现,这几句话里面提到了几个关键词汇,如“渐进式”“自底向上、增量开发”“视图层”,下面就这几个概念展开讲解一下。

首先,这个“渐进式”的概念就比较新颖,那么它具体是什么含义呢?所谓“渐进式”就是一开始不需要设计人员完全掌握框架的全部功能特性,可以放到后续步骤中逐步完成,这样就实现了每一步都可以更专注于当前的任务。从本质上讲,这就是设计模式上的优化与进步。而与Vue.js框架相对应的Angular框架和React框架,均不是严格意义上的渐进式框架,均具有一定程度上的个性化及排他性。

其次,“自底向上、增量开发”这个概念主要描述的是设计方式。这种设计方式的思路就是,先设计好基础骨架,然后逐步向上扩充,完善功能和效果。采用“自底向上、增量开发”的设计方式,可以有效地提高开发效率,避免不必要的重复工作。

最后,这个“视图层”的概念指的就是著名的MVVM架构模型中的View层。Vue.js是一个基于MVVM(Model-View-ViewModel)架构模型实现了“双向数据绑定”功能的前端JavaScript库,其关注的核心点就是View层。另外,这里提到的关于MVVM架构模型和“双向数据绑定”的内容,会在2.1.3节和2.1.4节中详细介绍。

2.1.2 Vue.js发展历史

Vue.js最早发布于2014年左右,开发者是曾在Google工作的中国籍开发人员—尤雨溪。根据作者本人的描述,Vue.js框架的定位就是为前端开发者提供一个低门槛、高效率,又同时能够伴随用户成长的前端框架。

Vue.js框架的发展历程主要如下:

(1)实验(experiment)阶段(2013年中~2014年2月)。

(2)0.x版本阶段(2014年2月~2015年10月)。

(3)1.x版本阶段(2015年10月~2016年9月),发行版名称为“Evangelion”。

(4)2.x版本阶段(2016年9月~2019年10月),发行版名称为“Ghost in the Shell”。

(5)3.x版本阶段(2019年10月~至今),引入了全新的响应式框架,提供了更好的TypeScript语言支持。

关于Vue.js框架以上几个版本更新发展的过程,大致介绍如下:

在早期0.x版本阶段,内容更新主要集中在Vue模版语法上。而在1.x版本阶段期间,模版语法就日趋稳定了。在2.x版本阶段,内容更新专注于内部的渲染机制功能,这期间引入了著名的Virtual DOM机制,从而实现了服务端渲染、原生渲染、手写渲染函数等强大的设计功能。目前,3.x版本已完成并处于快速的迭代开发过程中,更新目标主要集中于利用ES 6(ECMAScript 2015)版本的新特性、改进内部架构,以及性能优化等方面。截止笔者完成本书的写作,Vue.js框架最新版本为v3.4,Vue官网已经建议开发者迁移到Vue 3版本中,本书中的Vue代码应用就是基于最新的v3.4版本。

2.1.3 Vue.js与MVVM架构模型

软件设计的架构模型往往决定着一个开发框架的特性与性能,就好比基因对于人类具有决定性因素一样。架构模型从MVC到MVP,再到MVVM,每一步都体现了开发人员对于设计模式的不断完善。

MVVM架构本质上就是MVC架构的改进版。MVC架构可谓大名鼎鼎,相信大多数读者在刚开始接触架构模型时学习的就是该架构。从MVVM架构模型的命名来看,Model-View-ViewModel中的Model(模型)和View(视图)沿用了下来,改变的就是Controller(控制器)被ViewModel替换了。那么,ViewModel代表什么概念?Vue.js借鉴了MVVM的什么设计理念呢?

ViewModel在MVVM中负责在Model(模型)和View(视图)中间的桥接工作,当Model(模型)改变时,通过ViewModel通知View(视图),反之亦然。Vue.js框架专注于View(视图层),将视图的状态和行为抽象化,并于业务逻辑分开来设计。Vue.js虽然没有完全照搬MVVM模型,但对于ViewModel的设计有独到之处。当View(视图)改变时会触发事件,通过ViewModel负责监听事件并同步更新Model(模型)。

2.1.4 双向数据绑定

Vue.js框架实现的一项核心功能就是“双向数据绑定”,所谓双向数据绑定就是指View(视图)和Model(模型)的数据相互同步。

Vue.js框架是基于MVVM架构设计的。为了实现View(视图)和Model(模型)的数据相互同步,Vue.js会通过DOM Listeners来监听并改变Model(模型)中的数据;当Model(模型)中的数据发生改变时,会通过Data Bingings来监听,并改变View(视图)中数据的展示。这一点也正是MVVM架构对“双向数据绑定”的支持。

在Vue.js框架底层,通过使用JavaScript Object对象的defineProperty()方法,重新定义对象获取属性值和设置属性值的方法,从而实现“双向数据绑定”操作。因此,其原理仍旧是通过JavaScript方式实现的。

2.1.5 Vue.js特点

Vue.js是一款基于数据驱动思想开发的JavaScript框架,下面总结一下Vue.js框架的几个主要特点。

· Vue.js是基于MVVM架构设计的、一套用于构建用户浏览器界面的、渐进式的前端Web框架。

· Vue.js是基于数据驱动思想开发的JavaScript框架,实现了在尽可能的条件下最大程度地减少繁杂的DOM操作。

· Vue.js开发了一套自己的模板语言,采用虚拟DOM的方式渲染HTML页面,实现了将前后端进行分离的开发方式。

· Vue.js的核心库只关注视图层,同时借助MVVM架构的特点实现了“双向数据绑定”的核心功能。

· Vue.js只聚焦于视图层,具备能力实现单文件组件以及相对复杂的单页面应用。

· Vue.js是一个轻巧的、高性能的、可组件化的JavaScript框架,设计了易于学习的API方法,能够非常方便地与其他前端库进行有效整合。 lNdGiq7XWjbLCifvOcTUnJM0vhGQFIlzXFszhkEtJEBFQmCnluzrLl0yxoHa2xVu

点击中间区域
呼出菜单
上一章
目录
下一章
×