Vue学习入门之初识Vue

举报
lwq1228 发表于 2021/08/24 09:03:24 2021/08/24
【摘要】 Vue.js是一个用于构建用户界面的渐进式JavaScript框架,采用了“自底向上、增量开发”的设计方式。Vue.js的核心是只关注视图层,便于与第三方库或既有项目进行整合。

1、Vue.js简介

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

(1)什么是“渐进式”?

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

(2)什么是“自底向上、增量开发”?

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

(2)什么是“视图层”?

“视图层”指的就是著名的MVVM架构模型中的View层。Vue.js是一个基于MVVM架构模型实现了“双向数据绑定”功能的前端JavaScript库,其关注的核心点就是View层。

2、Vue.js发展历史

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

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

  • 2013年,在 Google 工作的尤雨溪,受到 Angular 的启发,开发出了一款轻量级框架,最初命名为 Seed 。

  • 2013年12月,Seed更名为 Vue,图标颜色是代表勃勃生机的绿色,版本号是 0.6.0。

  • 2014.01.24,Vue 正式对外发布,版本号是 0.8.0。

  • 2014.02.25,0.9.0 发布,有了自己的代号:Animatrix,此后,重要的版本都会有自己的代号。

  • 2015.06.13,0.12.0,代号Dragon Ball,Laravel 社区首次使用 Vue,Vue 在 JS 社区也打响了知名度。

  • 2015.10.26,正式发布Vue1.0.0,代号Evangelion(新世纪福音战士),是 Vue 历史上的第一个里程碑,模板语法日趋稳定。同年,vue-router、vuex、vue-cli 相继发布,标志着 Vue从一个视图层库发展为一个渐进式框架。

  • 2016.10.01,正式发布Vue2.0.0,代号Ghost in the Shell(攻壳机动队),是第二个重要的里程碑,内容更新专注于内部的渲染机制功能,这期间引入了著名的Virtual DOM机制,从而实现了服务端渲染、原生渲染、手写渲染函数等强大的设计功能。

  • 2019.02.05,Vue 发布了 2.6.0 ,这是一个承前启后的版本,在它之后,推出了 3.0.0。

  • 2019.12.05,在万众期待中,尤雨溪公布了 Vue 3 源代码,此时的 Vue 3仍 处于 Alpha 版本。

  • 2020.09.18,正式发布Vue3.0.0,代号One Piece(海贼王)。

3、Vue.js与MVVM架构模型

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

MVVM(Model-View-ViewModel)架构其实本质上就是对MVC架构的改进版。MVC架构可谓是大名鼎鼎,相信大多数读者在刚开始接触架构模型时学习的就是该架构。从MVVM架构模型的命名来看,Model-View-ViewModel中的Model(模型)和View(视图)沿用了下来,改变的就是Controller(控制器)被ViewModel替换了。ViewModel在MVVM中负责在Model(模型)和View(视图)中间的桥接工作,当Model(模型)改变时通过ViewModel通知View(视图),反之亦然。

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

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方式实现的。

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方法,能够非常方便地与其他前端库进行有效整合。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。