Vue.js

JavaScript 框架 来自维基百科,自由的百科全书

Vue.js

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

事实速览 原作者, 首次发布 ...
Vue.js
Thumb
原作者尤雨溪
首次发布2014年2月,​11年前​(2014-02[1]
当前版本
  • 3.5.13(2024年11月15日;稳定版本)[2]
编辑维基数据链接
原始码库 编辑维基数据链接
编程语言TypeScript
平台跨平台
类型JavaScript函数库
许可协议MIT许可证[3]
网站vuejs.org/ 编辑维基数据
关闭

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

综述

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

历史

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

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

版本

更多信息 版本, 发布日期 ...
版本 发布日期 版本名称
3.4 2023年12月28日 Slam Dunk
3.3 2023年5月11日 Rurouni Kenshin
3.2 2021年8月5日 Quintessential Quintuplets[13]
3.1 2021年6月7日 Pluto[14]
3.0 2020年9月18日 One Piece[15]
2.7 2022年7月1日 Naruto[16]
2.6 2019年2月4日 Macross[17]
2.5 2017年10月13日 Level E[18]
2.4 2017年7月13日 Kill la Kill[19]
2.3 2017年4月27日 JoJo's Bizarre Adventure[20]
2.2 2017年2月26日 Initial D[21]
2.1 2016年11月22日 Hunter X Hunter[22]
2.0 2016年9月30日 Ghost in the Shell[23]
1.0 2015年10月27日 Evangelion[24]
0.12 2015年6月12日 Dragon Ball[25]
0.11 2014年11月7日 Cowboy Bebop[26]
0.10 2014年3月23日 Blade Runner[27]
0.9 2014年2月25日 Animatrix[28]
0.8 2014年1月27日 不适用 [29]
0.7 2013年12月24日 不适用 [30]
0.6 2013年12月8日 VueJS [31]
关闭

特性

组件

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

// 定义一个名为 button-counter 的新组件
Vue.component('button-counter', {
  data: function () {
    return {
      count: 0
    }
  },
  template: '<button v-on:click="count++">我被点击了 {{ count }} 次!</button>'
})

模板

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

此外,Vue允许开发者直接使用JSX英语React (JavaScript library)#JSX语言作为组件的渲染函数,以代替模板语法。[34]以下为可计算点击次数的按钮的JSX渲染版本(需配置相应Babel编译器):

Vue.component('buttonclicked', {
  props: [ 'initial_count' ],
  data() {
    return { count: 0 };
  },
  render(h) {
    return (<button vOn:click={this.onclick}>Clicked {this.count} times</button>)
  },
  methods: {
    onclick() {
      this.count = this.count + 1;
    }
  },
  mounted: function() {
    this.count = this.initial_count;
  }
});

响应式设计

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

过渡效果

Vue在插入、更新或者移除DOM时,提供多种不同方式的应用过渡效果。包括以下工具:

  • CSS过渡和动画中自动应用class;
  • 可以配合使用第三方CSS动画库,如Animate.css;
  • 在过渡钩子函数中使用JavaScript直接操作DOM;
  • 可以配合使用第三方JavaScript动画库,如Velocity.js。[36]

单文件组件(SFC)

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

生态系统

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

官方工具

  • Devtools:用于调试Vue.js应用程式的浏览器开发人员工具扩展
  • Vue CLI和Vite:用于快速开发Vue.js的标准工具
  • Vue Loader:一个webpack的加载器(loader),允许以SFC格式编写Vue组件

官方库

  • Vue Router:Vue.js的官方路由,允许开发者编写在多个视图中切换的单网页应用程式
  • Pinia和Vuex:Vue.js的状态管理库
  • Vue Server Render:Vue.js的伺服器端渲染(Server Side RenderingSSR

参见

参考文献

外部链接

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.