Vue.js/vj/,簡稱Vue)是一個用於建立用戶介面的開源MVVM前端JavaScript框架,也是一個建立單頁應用Web應用框架[5]。Vue.js由尤雨溪建立,由他和其他活躍的核心團隊成員維護[6]

Quick Facts 原作者, 首次釋出 ...
Vue.js
Thumb
原作者尤雨溪
首次釋出2014年2月,​10年前​(2014-02[1]
目前版本
  • 3.5.0 (2024年9月1日;穩定版本)[2][3]
編輯維基數據連結
原始碼庫 編輯維基數據連結
程式語言TypeScript
平台跨平台
類型JavaScript函式庫
特許條款MIT特許條款[4]
網站vuejs.org/ 編輯維基數據
Close

2016年一項針對JavaScript框架的調查表明,Vue有着89%的開發者滿意度。[7]GitHub上,該專案平均每天能收穫95顆星,[7][8]為GitHub有史以來星標數第3多的專案。[9]

綜述

Vue.js是一款JavaScript前端框架,旨在更好地組織與簡化Web開發。Vue所關注的核心是MVC模式中的視圖層,同時,它也能方便地取得數據更新,並通過組件內部特定的方法實現視圖與模型的互動。

歷史

在為AngularJS工作之後,Vue的作者尤雨溪開發出了這一框架。他聲稱自己的思路是提取Angular中為自己所喜歡的部分,構建出一款相當輕量的框架。[10]Vue最早釋出於2014年2月。作者在Hacker News、Echo JS與Reddit/r/javascript版塊[11]釋出了最早的版本。一天之內,Vue就登上這三個網站的首頁。[12]Vue是Github上最受歡迎的開源專案之一。[13]同時,在JavaScript框架/函數庫中,Vue所獲得的星標數已超過React,並高於Backbone.jsAngular 2、jQuery等專案。

版本名稱通常來自漫畫和動畫,其中大部分屬於科幻小說類型。

版本

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

特性

組件

組件是Vue最為強大的特性之一。為了更好地管理一個大型的應用程式,往往需要將應用切割為小而獨立、具有復用性的組件。在Vue中,組件是基礎HTML元素的拓展,可方便地自訂其數據與行為。[33]下方的代碼是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操作上。[34]

此外,Vue允許開發者直接使用JSX英語React (JavaScript library)#JSX語言作為組件的彩現函數,以代替模板語法。[35]以下為可計算點擊次數的按鈕的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的狀態管理變得相當簡單直觀。[36]

過渡效果

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

  • CSS過渡和動畫中自動應用class;
  • 可以配合使用第三方CSS動畫庫,如Animate.css;
  • 在過渡勾點函數中使用JavaScript直接操作DOM;
  • 可以配合使用第三方JavaScript動畫庫,如Velocity.js。[37]

單檔案組件(SFC)

為了更好地適應複雜的專案,Vue支援以.vue為副檔名的檔案來定義一個完整組件,用以替代使用Vue.component註冊組件的方式。開發者可以使用ViteWebpack等構建工具來打包單檔案組件。[38]

生態系統

核心庫附帶由核心團隊和貢獻者開發的工具和庫。

官方工具

  • 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

參見

參考文獻

外部連結

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.