成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Vue 2 最后之舞“鴻鵠挽歌”

開發 前端
Vue 2.7 是 Vue 2.x 的最終次版本。此版本發布后,Vue 2 已進入 LTS(長期支持),為期 18 個月,并且將不再接收新功能。這意味著,Vue 2 將于 2023 年 12 月 31 日終止生命周期。

大家好,這里是大家的林語冰。老粉都知道,我們之前已經在《Vue 2 將死》中已經提及 Vue 2 今年年底將全面停止維護,且最終版即將發布,只打補丁,不再增量更新任何新功能。

圣誕節前夕,平安夜之際,Vue 團隊正式官宣 —— Vue 2 最后一個補丁版本 Vue@2.7.16 正式發布,版本代號“Swan Song”(鴻鵠挽歌)。

圖片圖片

地球人都知道,去年 Vue 2 官宣了最后一個次版本 Vue@2.7.x,如今 Vue 2 官宣最后一個補丁版本 Vue@2.7.16,也算是為 Vue 2 的最后之舞畫上驚嘆號!此去經年,再無 Vue 2。

雖然但是,前端踏足之地,Vue 亦生生不息,此乃“Vue 之意志”。故本期《前端翻譯計劃》一起來重溫 Vue@2.7 的官方博客,為 Vue 生態的未來規劃未雨綢繆。

圖片圖片

今天我們十分雞凍地官宣,Vue 2.7(版本代號“火影忍者”)正式發布!

盡管 Vue 3 現在已經是默認版本,但我們特別理解,由于依賴兼容性、瀏覽器支持的要求或帶寬不足無法升級,仍然有一大坨用戶被迫滯留在 Vue 2。在 Vue 2.7 中,我們向后移植了 Vue 3 中的某些特色功能,Vue 2 愛好者也可以有福同享。

免責聲明

本文屬于是語冰的直男翻譯了屬于是,略有刪改,僅供粉絲參考,英文原味版請傳送 Vue 2.7 "Naruto" Released[1]。

向后移植的功能

  • 組合式 API
  • SFC <script setup>
  • SFC CSS v-bind

此外,下述 API 也支持:

  • defineComponent() 優化了類型接口(與 Vue.extend 相比)
  • h()/useSlot()/useAttrs()/useCssModules()
  • set()/del()/nextTick() 也在 ESM 構建中作為命名導出提供。
  • emits 選項也支持,但能且僅能用于類型檢查(不影響運行時行為)

Vue 2.7 還支持在模板表達式中使用 ESNext 語法。當使用構建系統時,編譯后的模板渲染函數將經由為普通 JS 配置的相同加載器/插件處理。這意味著,如果您為 .js 文件配置了 Babel,它也將應用于 SFC 模板中的表達式。

API 暴露的注意事項

  • 在 ESM 構建中,這些 API 作為命名導出提供(且僅限命名導出):
import Vue, { ref } from 'vue'

Vue.ref // undefined,請換用命名導出的方式
  • 在 UMD 和 CJS 構建中,這些 API 作為全局 Vue 對象的屬性暴露。
  • 當與外部化的 CJS 打包構建時,打包器應該能在外部化 CJS 構建時處理 ESM 的互操作。

與 Vue 3 的行為差異

組合式 API 訴諸 Vue 2 getter/setter 筑基的響應性系統向后移植,確保瀏覽器的兼容性。這意味著,與 Vue 3 proxy 筑基的系統存在若干重要的行為差異:

  • 所有 Vue 2 變更檢測警告仍然適用。
  • reactive()/ref()/shallowReactive() 將直接轉換源對象而不是創建代理。這意味著:
// Vue 2.7 中結果為 true,Vue 3.x 中結果為 false
reactive(foo) === foo
  • readonly() 確實創建了一個獨立的對象,但它不會追蹤新增的屬性,且數組無法奏效。
  • 避免使用數組作為 reactive() 中的根值(root values),因為如果沒有屬性訪問,那么就不會追蹤數組的變更(這將導致警告)。
  • 響應性 API 會無視 symbol 鍵的屬性。

此外,下述功能明確沒有移植:

  • ? createApp()(Vue 2 沒有隔離的 App 作用域)
  • ? <script setup> 中的頂層 await(Vue 2 不支持異步組件初始化)
  • ? 模板表達式中的 TS語法(與 Vue 2 解析器不兼容)
  • ? 響應性轉換(當時仍處于實驗階段)
  • ? 選項組件不支持 expose 選項(但 <script setup> 支持 defineExpose())。

升級指南

Vue CLI / webpack

  1. 將本地 @vue/cli-xxx 依賴升級到您的主版本范圍的最新版本(如果適用的話):
  • cli v4 對應 ~4.5.18
  • cli v5 對應 ~5.0.6
  1. 將 vue 升級到 ^2.7.0。您還可以從依賴中移除 vue-template-compiler —— 在 Vue 2.7 中不再需要它。

注意:如果您使用 @vue/test-utils,那么需要將 vue-template-compiler 保留在依賴中,因為 test-utils 依賴有且僅有在此軟件包中暴露的某些 API。

  1. 檢查您的包管理器的 lockfile,確保下述依賴滿足版本要求。它們可能是 package.json 中未列出的傳遞依賴。

vue-loader: ^15.10.0

vue-demi: ^0.13.1

如果沒有,您將需要刪除 node_modules 和 lockfile,并重新執行安裝,確保它們升級到最新版本。

  1. 如果您之前使用過 @vue/composition-api,請將其導入更新為 vue。請注意,插件導出的某些 API,比如 createApp,并未在 Vue 2.7 中移植。
  2. 如果您在使用 <script setup> 時遭遇未使用變量的報錯,請將 eslint-plugin-vue 更新到最新版本 (9+)。
  3. Vue 2.7 的 SFC(單文件組件)編譯器現在使用 PostCSS 8(從 PostCSS 7 升級而來)。PostCSS 8 應該向后兼容大多數插件,但如果您之前使用能且僅能與 PostCSS 7 無縫銜接的自定義 PostCSS 插件,升級可能會導致問題。在此情況下,您需要將相關插件升級到兼容 PostCSS 8 的版本。

Vite

Vue 2.7 通過新插件提供對 Vite 的支持:@vitejs/plugin-vue2。這個新插件需要 Vue 2.7 或更高版本,并代替現存的 vite-plugin-vue2。

請注意,新插件不處理 Vue 特定的 JSX/TSX 轉換,此乃有意為之。Vite 的 Vue 2 JSX/TSX 轉換是在一個單獨的專用插件中處理的:@vitejs/plugin-vue2-jsx。

Volar 兼容性

Vue 2.7 優化了類型定義,因此不再需要再僅僅為了支持 Volar 模板類型推斷,從而安裝 @vue/runtime-dom。您現在需要的是 tsconfig.json 中的下述配置:

{
  // ...
  "vueCompilerOptions": {
    "target": 2.7
  }
}

開發者工具支持

Vue Devtools 6.2.0 全新支持檢查 Vue 2.7 組合式 API 狀態,但擴展可能仍需要幾天的時間才能在各自的發布平臺上經過審核。

Vue 2.7 的影響

如上所述,Vue 2.7 是 Vue 2.x 的最終次版本。此版本發布后,Vue 2 已進入 LTS(長期支持),為期 18 個月,并且將不再接收新功能。這意味著,Vue 2 將于 2023 年 12 月 31 日終止生命周期。

我們相信,這應該為大多數生態系統遷移到 Vue 3 提供了充足的時間。雖然但是,我們也特別理解,可能某些團隊或項目無法在此時間線之前升級,但仍需要滿足安全性和兼容性要求。我們正在與行業專家合作,為有此類需求的團隊提供 Vue 2 的擴展支持 —— 如果您的團隊期望在 2023 年底之后繼續 Vue 2 之旅,請務必未雨綢繆,并了解有關 Vue 2 擴展 LTS 的更多細節。

額外細節

在準備此版本的過程中,我們在核心團隊成員 @pikax 勞模式打工的基礎上,將 Vue 2 代碼庫從 Flow 移植到了 TS。這使我們更容易復用 Vue 3 中的代碼,并為移植的 API 自動生成類型定義。我們還將單元測試從 Karma + Jasmine 遷移至 Vitest,大大提高了維護 DX(開發體驗)和 CI(持續集成)的穩定性。

我們要實名感謝在 Vue 2.7 落地之前,社區為其彌合差距所做的努力:

  • @vue/composition-api 插件,作者:@liximomo
  • vue-demi,作者:@antfu
  • vite-plugin-vue2,作者:@underfin
責任編輯:武曉燕 來源: 人貓神話
相關推薦

2009-06-02 08:57:38

JavaOneJavaSun

2021-08-10 10:38:30

云原生Serverless鴻鵠會

2017-05-02 09:51:39

QQ空間

2021-07-30 05:06:48

Vue 2Vue 3

2023-07-12 13:25:17

Vue 2模版編譯

2020-09-25 07:40:39

技術開發選型

2010-08-12 21:31:09

WiMAX

2024-03-15 11:47:19

Vue2前端權限控制

2021-06-26 06:29:14

Vue 2Vue 3開發

2020-10-20 18:42:17

Vue 3.0vue2.x數據

2009-06-07 05:49:35

2016-09-21 13:32:13

JavascriptWeb前端

2016-10-19 20:47:55

vuevue-cli移動端

2023-11-19 18:53:27

Vue2MVVM

2010-05-12 09:12:46

Fedora 13 R

2021-06-25 06:47:38

VueVue2.x迷你版響應式原理

2023-12-25 08:32:06

2022-06-29 16:59:21

Vue3Vue2面試
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久久久久淑女av国产精品 | 亚洲最大的黄色网址 | 亚洲精品4 | 中文字幕欧美一区 | 国产成人精品免费视频大全最热 | 国产综合久久 | 亚洲一区二区免费 | 99爱在线| 婷婷桃色网 | 成人网av| 亚洲一区二区视频在线播放 | 日日天天 | 观看av| 欧美中文字幕一区二区三区亚洲 | 亚洲一区二区三区在线视频 | 久久久久资源 | 欧美精品在线视频 | 国产高潮好爽受不了了夜色 | 午夜影院在线观看视频 | 国产男女视频网站 | 天天干.com | 欧美精品一区三区 | 成人综合一区二区 | 久久一二 | 午夜精品视频 | 91传媒在线观看 | 狠狠操狠狠色 | 国产精品久久久久久久久久久免费看 | 色婷婷在线视频 | av网址在线播放 | 999久久久久久久久 国产欧美在线观看 | 91九色麻豆 | 日日摸日日爽 | 色噜噜狠狠色综合中国 | 粉嫩av在线| 一区二区三区四区视频 | 亚洲精品片 | 国产黄色大片在线观看 | 狠狠草视频 | 日韩视频在线播放 | 一级日韩 |