一、文献综述
(一)国内外研究现状
在过去的10多年时间里,网页变得愈发动态化和强大了。通过JavaScript,我们已经可以把很多传统的服务端代码放到浏览器中。所以身为一名前端工程师,我们所面临的需求将变得越来越复杂。而当应用程序开始变复杂后,我们需要频繁操作DOM。但是由于缺乏正规的组织形式,我们的代码变得非常难以维护。这本质上是命令式操作DOM的问题,我们曾经用jQuery操作DOM写需求,但是当应用程序变复杂后,代码就像一坨意大利面一样,有点难以维护。我们无法继续使用命令式操作DOM,所以Vue.js提供了声明式操作DOM的能力来解决这个问题。通过描述状态和DOM之间的映射关系,就可以将状态渲染成DOM呈现在用户界面中,也就是渲染到网页上。[1]Vue.js,通常简称为Vue,是一款友好的、多用途且高性能的JavaScript框架,能够帮助我们创建可维护性和可测试性更强的代码。它是目前所有主流框架中学习曲线最平缓的框架,非常容易上手,其官方文档也写得非常清晰、易懂。它是一款渐进式的JavaScript框架。关于什么是渐进式,所谓渐进式框架,就是把框架分层。最核心的部分是视图层渲染,然后往外是组件机制,在这个基础上再加入路由机制,再加入状态管理,最外层是构建工具,就是说如果你已经有一个现成的服务端应用,也就是非单页应用,可以将Vue.js作为该应用的一部分嵌入其中,带来更加丰富的交互体验。如果希望将更多业务逻辑放到前端来实现,那么Vue.js的核心库及其生态系统也可以满足你的各种需求。和其他前端框架一样,Vue.js允许你将一个网页分割成可复用的组件,每个组件都有自己的HTML、CSS和JavaScript来渲染网页中一个对应的位置。2013年7月28日,有一位名叫尤雨溪的人在GitHub上第一次为Vue.js提交代码。这是Vue.js的第一个提交(commit),但那时还不叫Vue.js。从仓库中的package.json文件可以看出,这时的名字叫作Element,后来又被更名为Seed.js。2013年12月7日,尤雨溪在GitHub上发布了新版本0.6.0,将项目正式改名为Vue.js,并且把默认的指令前缀变成v-。这一版本的发布,代表Vue.js正式问世。
软件测试的他的目的就是确保软件的质量、确认软件以正确的方式做了你所期望的事情,所以他的工作主要是发现软件的错误、有效定义和实现软件成分由低层到高层的组装过程、验证软件是否满足任务书和系统定义文档所规定的技术要求、为软件质量模型的建立提供依据。软件测试过程复杂且成本高昂。为了减少测试工作量,同时又不影响测试的有效性和产品质量,软件测试的自动化已经成为软件行业的主流方法。截至2002年,以缺陷(bug)形式出现的软件质量问题每年给美国经济造成595亿美元的损失,据估计,改进测试实践可将这一成本降低225亿美元[1]。根据剑桥大学(University of Cambridge)2013年的一项最新研究[2],全球每年从软件中发现和清除bug的成本已上升至3120亿美元,而且占用了平均项目开发时间的一半。[3]而测试用例的编写作为软件测试的重要过程,
(二)研究主要成果
Vue.js是一套轻量级MVVM框架,由时任Google工程师的尤雨溪创作并开源。与其他重量级框架不同的是,Vue的核心库只关注视图层,并且提供尽可能简单的API以实现数据绑定、组件的复用等机制,并且非常容易学习并混入其他库。同时,Vue也完全有能力支持采用SPA设计和组合其他Vue生态库的系统。
Vue模板更贴合HTML,而不是用更高层的东西去封装它,学习曲线十分平缓。在Vue模板的style标签上标注scoped属性可划分作用域,使CSS样式表只作用于当前组件。由于Vue模板更贴近原生,因此,我们很容易混入其他一些东西,比如HTML的预处理器(Pug/Jade等)、CSS的预处理器(LESS、SASS/Scss等),以及更高版本(高级)的脚本语言(TypeScript、ES6 Javascript等)。Vue模板的语法也更符合传统开发习惯,并易于团队分析和代码维护。除框架本身外,Vue在其他方面也占据了一些优势,比如Vue的状态管理库vuex和路由库vue-router都是由官方维护更新,从而保证了这些库与Vue本身的统一性。而React的相关库则由社区进行维护,不过,这也使得React的社区生态更加繁荣一些。此外,Vue提供了项目快速构建工具——vue-cli脚手架,提供了包含npm依赖管理、webpack模块打包、vue-router前端路由、eslint语法检测、单元测试等集成功能,能够让开发者快速构建一个高质量的项目环境。[2]
(三)发展趋势
Vue 作为近几年发展最快的JS框架, 其崛起主要原因不单单是因为粉丝的过度追捧,也并不是因为某个大公司的权威推动。和 React、Angular 相比,Vue 在可读性、可维护性和趣味性之间做到了很好的平衡。Vue 和其他前端框架相比,在结构、样式、业务分离等方面更清晰彻底,更符合前端多年来的编码习惯,更符合直觉、更容易学习和维护。入门非常容易,资料丰富,框架功能完善,加入非常多的特性,例如,if, for, async,为开发者节省很多垃圾代码。模板支持 html 和 jsx,支持自定义指令,方便操作 dom 的一致行为。Vue 上手简单的原因是无需复杂配置,只需要一个 HTML 与相关文件就能跑起来。从设计的角度上来看,Vue 考虑的也是如何降低门槛,让只掌握了 Web 基础知识 (HTML, CSS, JS) 的情况下,能够最快理解和上手,从而实现和完成一个应用。而 Vue 则是为了更适应开发者的使用习惯,在很多设定上都是让开发者怎么爽怎么来。比如 Vue 的 API 跟传统 Web 开发者熟悉的模板契合度非常高。Vue 的单文件组件是以模板 JavaScript CSS 的组合模式呈现,它跟 Web 现有的 HTML、JavaScript、CSS 能够更好地配合;Vue 提供反应式的数据,当数据改动时,界面就会自动更新。
