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

1.3 Vue.js概述

Vue.js是一套构建前端的MVVM框架,它集合了众多优秀主流框架设计的思想,轻量、数据驱动、学习成本低,而且可与webpack/gulp构建工具结合以实现Web组件化开发、构建和部署等。

Vue.js本身就拥有一套较为成熟的生态系统:Vue+vue-router+Vuex+Webpack+ Sass/Less,不仅满足小的前端项目开发,也能胜任大型的前端应用开发,包括单页面应用和多页面应用等。Vue.js可实现前端页面和后端业务分离、快速开发、单元测试、构建优化、部署等。

提到前端框架,当下比较流行的有Vue.js、React.js和Angular.js。Vue.js以其容易上手的API、不俗的性能、渐进式的特性和活跃的社区从中脱颖而出。截至目前,Vue.js在GitHub上的受欢迎程度已经超过了其他的前端开发框架,成为最热门的框架。

Vue.js的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue.js也完全能够为复杂的单页应用提供驱动。

1.3.1 Vue.js“组件化”思想

Vue.js的目标就是通过尽可能简单的API实现响应、数据绑定和组合的视图组件,核心是一个响应的数据绑定系统。Vue.js被定义成一个用来开发Web界面的前端框架,是个非常轻量级的工具。使用Vue.js可以让Web开发变得简单,同时也颠覆了传统前端开发的模式。

Vue.js是渐进式的JavaScript框架,如果已经有一个现成的服务端应用,可以将Vue.js作为该应用的一部分嵌入其中,带来更加丰富的交互体验。或者,如果希望将更多的业务逻辑放到前端来实现,那么Vue.js的核心库及其生态系统也可以满足用户的各种需求。

和其他前端框架一样,Vue.js允许将一个网页分割成可复用的组件,每个组件都包含属于自己的HTML、CSS和JavaScript,如图1-3所示,以用来渲染网页中相应的地方。

图1-3 组件化

这种把网页分割成可复用组件的方式就是框架“组件化”的思想。

Vue.js组件化的理念和React异曲同工——“一切皆组件”。Vue.js可以将任意封装好的代码注册成组件,例如Vue.component('example',Example),可以在模板中以标签的形式调用。

example是一个对象,组件的参数配置经常使用到template,它是组件将要渲染的HTML内容。例如,example组件的调用方式如下:

     <body>
     <h1>我是主页</h1>
     <!-- 在模板中调用example组件 -->s
     <example></example>
     <p>欢迎访问我们的网站</p>
     </body>

如果组件设计合理,在很大程度上可以减少重复开发,而且配合Vue.js的单文件组件(vue-loader),可以将一个组件的CSS、HTML和JavaScript都写在一个文件中,做到模块化的开发。此外,Vue.js也可以与vue-router和vue-resource插件配合起来,以支持路由和异步请求,这样就满足了开发单页面应用程序的基本条件。

在Vue.js中,单文件组件是指一个后缀名为.vue的文件,它可以由各种各样的组件组成,大至一个页面组件,小至一个按钮组件。在后面的章节将详细介绍单文件组件的实现。

Vue.js正式发布于2014年2月,包含70多位开发人员的贡献。从脚手架、构建、组件化、插件化,到编辑器工具、浏览器插件等,基本涵盖了从开发到测试的多个环节。

1.3.2 Vue.js的发展历程

Vue.js的发展过程如下:

2013年12月24日,发布0.7.0。

2014年1月27日,发布0.8.0。

2014年2月25日,发布0.9.0。

2014年3月24日,发布0.10.0。

2015年10月27日,正式发布1.0.0。

2016年4月27日,发布2.0的Preview版本。

2017年第一个发布的Vue.js为v2.1.9,最后一个发布的Vue.js为v2.5.13。

2019年发布Vue.js的2.6.10版本,也是比较稳定的版本。

2020年9月18日,Vue.js 3.0正式发布。

2023年12月28日,Vue.js 3.4正式发布。

1.3.3 Vue.js 3.4的特性

目前,Vue.js的版本已经更新到3.4,这次更新不仅带来了性能上的飞跃,还引入了许多新特性,进一步优化了开发效率。

1.性能提升

在性能方面,Vue.js 3.4全新重写了模板解析器。与之前基于正则表达式的解析器相比,新的解析器通过单次遍历整个模板字符串来解析模板,显著提高了解析速度,模板解析器速度提高了2倍。无论是小型还是大型的Vue.js模板,新解析器都能保持2倍的性能提升,同时确保了向后兼容性。

2.重构响应系统

Vue.js 3.4重构了响应系统。在旧版本中,即使计算属性的结果未发生变化,每次依赖项更新,观察者也会被触发。而在Vue.js 3.4中,优化后的系统确保只有在计算结果实际变化时,相关的效果才会被触发,从而减少了组件的不必要渲染,提升了整体的性能。

3.API改进与新特性

Vue.js 3.4中引入了非常多的新特性,主要更新如下:

(1)defineModel API的稳定化及功能:这个API主要用于简化支持v-model的组件实现,并在新版本中增加了对v-model修饰符的支持。

(2)v-bind的同名简写功能:Vue.js 3.4引入了v-bind的同名简写功能,使得开发者在模板中绑定属性时,可以省略重复的变量名。当属性名和绑定的变量名相同时,可以直接使用属性名,从而使模板更加简洁。

(3)watch新增once选项:Vue.js 3.4为watch函数增加了once选项,这使得观察者在第一次检测到变化时就会停止,适用于只需响应一次数据变化的场景。这个新选项提供了一种简洁的方式来防止重复触发。

(4)对MathML的支持:Vue.js 3.4对MathML的支持,意味着开发者现在可以在Vue应用中直接使用MathML来呈现数学公式和符号。MathML是一种标记语言,用于描述数学公式的结构和内容。这一功能的加入使得Vue.js适用于更广泛的应用场景,特别是在需要展示复杂数学内容的教育和科学出版领域。 OdAdOp2Z7ZmCjrvyP0HW5RchqDhY3dZfwZXyi5ZQxpgfzVLzourZigsa+iUbIzDS

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