Vue.js
![]() | |
原作者 | 尤雨溪 |
---|---|
開發者 | 尤雨溪同核心團隊[1] |
初始版本 | 2014年2月[2] |
最新發布 | 3.4.31 [3] (2024年6月28號 ) |
程式語言 | TypeScript |
平台 | Web platform |
檔案大細 | 33.9 KB min+gzip[4] |
軟件類別 | JavaScript函式庫 |
許可協議 | MIT授權條款[5] |
庫 |
Vue.js(通常簡稱為Vue;讀作「view」[6])係一個開源嘅模型-視圖-視圖模型前端JavaScript框架,用嚟構建用戶界面同單頁應用程式。[12] 佢由尤雨溪創建,並由佢同核心團隊嘅其他活躍成員維護。[13]
概述
Vue.js嘅特色係採用漸進式架構,重點放喺聲明式渲染同組件組合。核心庫只專注喺視圖層。[6] 複雜應用所需嘅進階功能,例如路由、狀態管理同構建工具,都係透過官方維護嘅支援庫同套件提供。[14]
Vue.js允許使用HTML屬性擴展HTML,呢啲屬性叫做指令。[15] 指令為HTML應用程式提供功能,可以係內置或者用戶自定義嘅。
歷史
Vue係尤雨溪喺Google工作期間使用AngularJS做幾個項目之後創建嘅。佢後來總結咗自己嘅思路:「我諗,如果我可以將我真係鍾意嘅Angular部分抽出嚟,整一啲真係輕量嘅嘢,會點呢?」[16] 項目嘅第一個源代碼提交日期係2013年7月,Vue喺隔年2月首次公開宣布。[17][18]
版本
版本 | 發布日期 | 標題 | LTS結束日期 | 終止支援日期 |
---|---|---|---|---|
3.4 | 2023年12月28號 | 灌籃高手[19] | ||
3.3 | 2023年5月11號 | 浪客劍心[20] | ||
3.2 | 2021年8月5號 | 五等分的新娘[21] | ||
3.1 | 2021年6月7號 | 冥王[22] | ||
3.0 | 2020年9月18號 | 海賊王[23] | ||
2.7 | 2022年7月1號 | 火影忍者[24] | 2023年12月31號 | 2023年12月31號 |
2.6 | 2019年2月4號 | 超時空要塞[25] | 2022年3月18號 | 2023年9月18號 |
2.5 | 2017年10月13號 | E班[26] | ||
2.4 | 2017年7月13號 | 斬服少女[27] | ||
2.3 | 2017年4月27號 | JoJo嘅奇妙冒險[28] | ||
2.2 | 2017年2月26號 | 頭文字D[29] | ||
2.1 | 2016年11月22號 | 獵人[30] | ||
2.0 | 2016年9月30號 | 攻殼機動隊[31] | ||
1.0 | 2015年10月27號 | 新世紀福音戰士[32] | ||
0.12 | 2015年6月12號 | 龍珠[33] | ||
0.11 | 2014年11月7號 | 星際牛仔[34] | ||
0.10 | 2014年3月23號 | 銀翼殺手[35] | ||
0.9 | 2014年2月25號 | 動畫矩陣[36] | ||
0.8 | 2014年1月27號 | 唔適用[37] | 首次公開宣布嘅版本[17][18] | |
0.7 | 2013年12月24號 | 唔適用[38] | ||
0.6 | 2013年12月8號 | VueJS[39] |
當發布新嘅主要版本(即v3.y.z)時,上一個次要版本(即2.x.y)會成為LTS版本,維持18個月(修正錯誤同安全漏洞),之後再維持18個月嘅維護模式(只修復安全漏洞)。[40]
特性
組件
Vue組件擴展咗基本嘅HTML元素,用嚟封裝可重用嘅代碼。簡單嚟講,組件就係帶有預定義選項嘅Vue實例。[41] 下面呢段代碼係一個Vue組件嘅例子。呢個組件顯示一個按鈕,並打印出按鈕被點擊嘅次數:
<template>
<div id="tuto">
<button-clicked v-bind:initial-count="0"></button-clicked>
</div>
</template>
<script>
Vue.component('button-clicked', {
props: ['initialCount'],
data: () => ({
count: 0,
}),
template: '<button v-on:click="onClick">撳咗 {{ count }} 次</button>',
computed: {
countTimesTwo() {
return this.count * 2;
}
},
watch: {
count(newValue, oldValue) {
console.log(`count嘅值由${oldValue}改為${newValue}。`);
}
},
methods: {
onClick() {
this.count += 1;
}
},
mounted() {
this.count = this.initialCount;
}
});
new Vue({
el: '#tuto',
});
</script>
模板
Vue使用以HTML為基礎嘅模板語法,允許將渲染嘅DOM綁定到底層Vue實例嘅數據。所有Vue模板都係有效嘅HTML,可以畀符合規範嘅瀏覽器同HTML解析器解析。Vue將模板編譯成虛擬DOM渲染函數。虛擬文檔對象模型(或者叫「DOM」)允許Vue喺更新瀏覽器之前,喺佢嘅記憶體中渲染組件。結合反應系統,Vue可以計算出需要重新渲染嘅最少組件數量,並喺應用狀態改變時應用最少嘅DOM操作。 [42] Vue用戶可以使用模板語法,或者揀用hyperscript直接寫渲染函數,可以通過函數調用或者用JSX。[43] 渲染函數允許應用程序由軟件組件構建。<ref>{{cite web |url=https://medium.com/the-vue-point/vue-2-0-is-here-ef1f26acf4b8#77d9 |title=Vue 2.0嚟喇! |date=September 30, 2016 |
- ↑ https://vuejs.org/about/team
- ↑ 〈開源項目啟動嘅第一個禮拜〉。Evan You。原先內容歸檔喺2月 5, 2019。喺3月 11, 2017搵到。
- ↑ https://github.com/vuejs/core/blob/main/CHANGELOG.md
- ↑ "@vue/runtime-dom v3.2.45". Bundlephobia (英文). 原先內容歸檔喺1月 29, 2023. 喺1月 29, 2023搵到.
- ↑ "vue/LICENSE". Vue.js. 喺4月 17, 2017搵到 –透過GitHub.
- ↑ 6.0 6.1 6.2 〈介紹〉。Vuejs.org (英文)。原先內容歸檔喺2月 10, 2022。喺1月 3, 2020搵到。
- ↑ Macrae, Callum (2018). Vue.js: Up and Running: Building Accessible and Performant Web Apps (英文). O'Reilly Media. ISBN 978-1-4919-9721-5. 原先內容歸檔喺5月 30, 2024. 喺8月 9, 2019搵到.
- ↑ Nelson, Brett (2018). Getting to Know Vue.js: Learn to Build Single Page Applications in Vue from Scratch (英文). Apress. ISBN 978-1-4842-3781-6. 原先內容歸檔喺5月 30, 2024. 喺8月 9, 2019搵到.
- ↑ Yerburgh, Edd (2019). Testing Vue.js Applications (英文). Manning Publications. ISBN 978-1-61729-524-9. 原先內容歸檔喺5月 30, 2024. 喺8月 9, 2019搵到.
- ↑ Freeman, Adam (2018). Pro Vue.js 2 (英文). Apress. ISBN 978-1-4842-3805-9. 原先內容歸檔喺5月 30, 2024. 喺8月 9, 2019搵到.
- ↑ Franklin, Jack; Wanyoike, Michael; Bouchefra, Ahmed; Silas, Kingsley; Campbell, Chad A.; Jacques, Nilson; Omole, Olayinka; Mulders, Michiel (2019). Working with Vue.js (英文). SitePoint. ISBN 978-1-4920-7144-0.[失咗效嘅鏈]
- ↑ [7][8][9][10][11][6]
- ↑ 〈認識團隊〉。Vuejs.org (英文)。原先內容歸檔喺2月 7, 2022。喺9月 23, 2019搵到。
- ↑ 〈Evan正喺創建Vue.js〉。Patreon (英文)。原先內容歸檔喺3月 3, 2019。喺3月 11, 2017搵到。
- ↑ 〈咩係Vue.js〉。W3Schools (英文)。原先內容歸檔喺1月 22, 2020。喺1月 21, 2020搵到。
- ↑ 〈尤雨溪〉。Between the Wires (英文)。11月 3, 2016。原著喺6月 3, 2017歸檔。喺8月 26, 2017搵到。
- ↑ 17.0 17.1 〈Vue.js: 簡單易用嘅JavaScript MVVM〉。Hacker News。2月 3, 2014。原先內容歸檔喺1月 29, 2023。喺1月 29, 2023搵到。
- ↑ 18.0 18.1 〈開源項目啟動嘅第一個禮拜〉。Evan You。2月 11, 2014。原先內容歸檔喺4月 12, 2017。喺1月 29, 2023搵到。
- ↑ "宣布Vue 3.4". Vue.js. 12月 28, 2023. 原先內容歸檔喺3月 24, 2024. 喺3月 29, 2024搵到.
- ↑ 〈v3.3.0 浪客劍心〉。Vue.js (英文)。5月 11, 2023。原先內容歸檔喺12月 13, 2023。喺5月 12, 2023搵到 –透過GitHub。
- ↑ 〈v3.2.0 五等分的新娘〉。Vue.js (英文)。8月 5, 2021。原先內容歸檔喺8月 10, 2021。喺8月 10, 2021搵到 –透過GitHub。
- ↑ "v3.1.0 冥王". Vue.js (英文). 6月 7, 2021. 原先內容歸檔喺7月 18, 2021. 喺7月 18, 2021搵到 –透過GitHub.
- ↑ 〈v3.0.0 海賊王〉。Vue.js (英文)。9月 18, 2020。原先內容歸檔喺9月 19, 2020。喺9月 23, 2020搵到 –透過GitHub。
- ↑ 〈v2.7.0 火影忍者〉。Vue.js (英文)。7月 1, 2022。原先內容歸檔喺7月 1, 2022。喺7月 1, 2022搵到 –透過GitHub。
- ↑ 〈v2.6.0 超時空要塞〉。Vue.js (英文)。2月 4, 2019。原先內容歸檔喺11月 11, 2020。喺9月 23, 2020搵到 –透過GitHub。
- ↑ "v2.5.0 E班". Vue.js (英文). 10月 13, 2017. 原先內容歸檔喺9月 18, 2020. 喺9月 23, 2020搵到 –透過GitHub.
- ↑ 〈v2.4.0 斬服少女〉。Vue.js (英文)。7月 13, 2017。原先內容歸檔喺11月 9, 2020。喺9月 23, 2020搵到 –透過GitHub。
- ↑ 〈v2.3.0 JoJo嘅奇妙冒險〉。Vue.js (英文)。4月 27, 2017。原先內容歸檔喺11月 11, 2020。喺9月 23, 2020搵到 –透過GitHub。
- ↑ "v2.2.0 頭文字D". Vue.js (英文). 2月 26, 2017. 原先內容歸檔喺4月 13, 2021. 喺9月 23, 2020搵到 –透過GitHub.
- ↑ "v2.1.0 獵人". Vue.js (英文). 11月 22, 2016. 原先內容歸檔喺11月 8, 2020. 喺9月 23, 2020搵到 –透過GitHub.
- ↑ 〈v2.0.0 攻殼機動隊〉。Vue.js (英文)。9月 30, 2016。原先內容歸檔喺10月 27, 2020。喺9月 23, 2020搵到 –透過GitHub。
- ↑ 〈1.0.0 新世紀福音戰士〉。Vue.js (英文)。10月 27, 2015。原先內容歸檔喺4月 13, 2021。喺9月 23, 2020搵到 –透過GitHub。
- ↑ "0.12.0: 龍珠". Vue.js (英文). 6月 12, 2015. 原先內容歸檔喺4月 13, 2021. 喺9月 23, 2020搵到 –透過GitHub.
- ↑ 〈v0.11.0: 星際牛仔〉。Vue.js (英文)。11月 7, 2014。原先內容歸檔喺4月 13, 2021。喺9月 23, 2020搵到 –透過GitHub。
- ↑ 〈v0.10.0: 銀翼殺手〉。Vue.js (英文)。3月 23, 2014。原先內容歸檔喺4月 13, 2021。喺9月 23, 2020搵到 –透過GitHub。
- ↑ 〈v0.9.0: 動畫矩陣〉。Vue.js (英文)。2月 25, 2014。原先內容歸檔喺4月 13, 2021。喺9月 23, 2020搵到 –透過GitHub。
- ↑ "v0.8.0". Vue.js (英文). 1月 27, 2014. 原先內容歸檔喺4月 13, 2021. 喺9月 23, 2020搵到 –透過GitHub.
- ↑ "v0.7.0". Vue.js (英文). 12月 24, 2013. 原先內容歸檔喺4月 13, 2021. 喺9月 23, 2020搵到 –透過GitHub.
- ↑ "0.6.0: VueJS". Vue.js (英文). 12月 8, 2013. 原先內容歸檔喺4月 13, 2021. 喺9月 23, 2020搵到 –透過GitHub.
- ↑ 〈Vue路線圖〉。Vue.js (英文)。11月 6, 2022。原先內容歸檔喺12月 10, 2021。喺12月 10, 2021搵到 –透過GitHub。
- ↑ 〈組件〉。Vuejs.org (英文)。原先內容歸檔喺2月 10, 2022。喺3月 11, 2017搵到。
- ↑ Jordan, John。〈Vue管理模板〉。喺7月 16, 2022搵到。
- ↑ 〈模板語法〉。Vuejs.org (英文)。原先內容歸檔喺2月 10, 2022。喺3月 11, 2017搵到。