Vue.js
JavaScript 框架 来自维基百科,自由的百科全书
Vue.js(/vjuː/,簡稱Vue)是一個用於建立使用者介面的開源MVVM前端JavaScript框架,也是一個建立單頁應用的Web應用框架[4]。Vue.js由尤雨溪建立,由他和其他活躍的核心團隊成員維護[5]。
![]() | |
原作者 | 尤雨溪 |
---|---|
首次釋出 | 2014年2月[1] |
目前版本 |
|
原始碼庫 | |
程式語言 | TypeScript |
平台 | 跨平台 |
類型 | JavaScript函式庫 |
授權條款 | MIT授權條款[3] |
網站 | vuejs![]() |
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.js、Angular 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語言作為組件的彩現函式,以代替模板語法。[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時,提供多種不同方式的應用過渡效果。包括以下工具:
為了更好地適應複雜的專案,Vue支援以.vue
為副檔名的檔案來定義一個完整組件,用以替代使用Vue.component
註冊組件的方式。開發者可以使用Vite或Webpack等構建工具來打包單檔案組件。[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 Rendering,SSR)
參見
參考文獻
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.