Vue.js

Vue.js（，简称Vue）是一个用于创建用户界面的开源MVVM前端JavaScript框架，也是一个创建单页应用的Web应用框架。Vue.js由尤雨溪创建，由他和其他活跃的核心团队成员维护。

2016年一项针对JavaScript框架的调查表明，Vue有着89%的开发者满意度。在GitHub上，该项目平均每天能收获95颗星，为GitHub有史以来星标数第3多的项目。

 综述 
Vue.js是一款JavaScript前端框架，旨在更好地组织与简化Web开发。Vue所关注的核心是MVC模式中的视图层，同时，它也能方便地获取数据更新，并通过组件内部特定的方法实现视图与模型的交互。

 历史 
在为AngularJS工作之后，Vue的作者尤雨溪开发出了这一框架。他声称自己的思路是提取Angular中为自己所喜欢的部分，构建出一款相当轻量的框架。Vue最早发布于2014年2月。作者在Hacker News、Echo JS与Reddit的/r/javascript版块发布了最早的版本。一天之内，Vue就登上这三个网站的首页。Vue是Github上最受欢迎的开源项目之一。同时，在JavaScript框架/函式库中，Vue所获得的星标数僅次於React，並高于Backbone.js、Angular 2、jQuery等项目。

版本名称通常来自漫画和动畫，其中大部分属于科幻小说类型。

 版本
 版本 发布日期  版本名称 3.4    Slam Dunk 3.3    Rurouni Kenshin 3.2    Quintessential Quintuplets 3.1    Pluto 3.0    One Piece 2.7    Naruto 2.6    Macross 2.5    Level E 2.4    Kill la Kill 2.3    JoJo's Bizarre Adventure 2.2    Initial D 2.1    Hunter X Hunter 2.0    Ghost in the Shell 1.0    Evangelion 0.12    Dragon Ball 0.11    Cowboy Bebop 0.10    Blade Runner 0.9    Animatrix 0.8      0.7      0.6    VueJS 

 特性 
 组件 
组件是Vue最为强大的特性之一。为了更好地管理一个大型的应用程序，往往需要将应用切割为小而独立、具有复用性的组件。在Vue中，组件是基础HTML元素的拓展，可方便地自定义其数据与行为。下方的代码是Vue组件的一个示例，渲染为一个能计算鼠标点击次数的按钮。

 模板 
Vue使用基于HTML的模板语法，允许开发者将DOM元素与底层Vue实例中的数据相绑定。所有Vue的模板都是合法的HTML，所以能被遵循规范的浏览器和HTML解析器解析。在底层的实现上，Vue将模板编译成虚拟DOM渲染函数。结合响应式系统，在应用状态改变时，Vue能够智能地计算出重新渲染组件的最小代价并应用到DOM操作上。

此外，Vue允许开发者直接使用语言作为组件的渲染函数，以代替模板语法。以下为可计算点击次数的按钮的JSX渲染版本（需配置相应Babel编译器）：

 响应式设计 
响应式是指MVC模型中的视图随着模型变化而变化。在Vue中，开发者只需将视图与对应的模型进行绑定，Vue便能自动观测模型的变动，并重绘视图。这一特性使得Vue的状态管理变得相当简单直观。

 过渡效果 
Vue在插入、更新或者移除DOM时，提供多种不同方式的应用过渡效果。包括以下工具：
 在CSS过渡和动画中自动应用class；
 可以配合使用第三方CSS动画库，如Animate.css；
 在过渡钩子函数中使用JavaScript直接操作DOM；
 可以配合使用第三方JavaScript动画库，如Velocity.js。

 单文件组件（SFC） 
为了更好地适应复杂的项目，Vue支持以.vue为扩展名的文件来定义一个完整组件，用以替代使用Vue.component注册组件的方式。开发者可以使用Vite或Webpack等构建工具来打包单文件组件。

 生态系统 
核心库附带由核心团队和贡献者开发的工具和库。

 官方工具 
 Devtools：用于调试Vue.js应用程序的浏览器开发人员工具扩展
 Vue CLI和Vite：用于快速开发Vue.js的标准工具
 Vue Loader：一个webpack的加载器（），允许以SFC格式编写Vue组件

 官方库 
 Vue Router：Vue.js的官方路由，允许开发者编写在多个视图中切换的单网页应用程序
 Pinia和Vuex：Vue.js的状态管理库
 Vue Server Render：Vue.js的服务器端渲染（，）

 参见 
 React
 Angular
 AngularJS
 JavaScript函式库
 Nuxt.js

 参考文献 

外部链接




Category:使用MIT许可证的软件
Category:Web应用框架
Category:JavaScript函式庫