在最近的 Vue Conf 2024 上,Vue 官方推薦了一款 Vue 的工具 Vine-Vue,在這里我先 respect 一下 Vue 團(tuán)隊(duì)對(duì)于開發(fā)者的鼓勵(lì)~但是我想對(duì) Vue 官方團(tuán)隊(duì)說(shuō):你真的覺(jué)得有必要推薦這個(gè)庫(kù)嗎?Unu28資訊網(wǎng)——每日最新資訊28at.com
Vue-Vine
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
先來(lái)說(shuō)說(shuō)這個(gè)庫(kù)的作用,這個(gè)庫(kù)的作用就是:讓 Vue 組件能通過(guò)函數(shù)式來(lái)定義。Unu28資訊網(wǎng)——每日最新資訊28at.com
舉個(gè)例子,我們?cè)谄綍r(shí)寫一個(gè)組件的時(shí)候,會(huì)通過(guò)模板的方式去定義。Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
Unu28資訊網(wǎng)——每日最新資訊28at.com
但是在使用了 Vue-Vine這個(gè)庫(kù)之后,可以使用函數(shù)式的方式去定義。Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
翻看了一下Vue-Vine的官方文檔,總結(jié)出Vue-Vine這個(gè)庫(kù)的初衷是:Unu28資訊網(wǎng)——每日最新資訊28at.com
- 想要做到像 React JSX 那樣的組件定義方式
- 可以在同個(gè)文件里定義多個(gè)組件
- 使得邏輯更加聚合,提高開發(fā)效率
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
Unu28資訊網(wǎng)——每日最新資訊28at.com
但是我感覺(jué)現(xiàn)階段 Vue 生態(tài)就具備這樣的能力了,且已經(jīng)經(jīng)過(guò)一段時(shí)間的打磨了呀!Unu28資訊網(wǎng)——每日最新資訊28at.com
定義多文件、邏輯聚合?Vue 本來(lái)就可以!
說(shuō)到一個(gè)文件里定義多個(gè)文件、邏輯更加聚合,其實(shí)本來(lái) Vue 就支持!Unu28資訊網(wǎng)——每日最新資訊28at.com
如果你想要把多個(gè)組件寫在同一個(gè)文件里、讓邏輯更加緊湊,那是很簡(jiǎn)單的事情,只需要使用 Vue 的 defineComponent + h函數(shù),即可做到:Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
Unu28資訊網(wǎng)——每日最新資訊28at.com
使用起來(lái)就跟平時(shí) Vue 的模板使用別無(wú)二致。Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
Unu28資訊網(wǎng)——每日最新資訊28at.com
甚至你可以把爺父孫組件全部定義在同一個(gè)文件里。Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
Unu28資訊網(wǎng)——每日最新資訊28at.com
使用起來(lái)也是跟平時(shí) Vue 的模板使用別無(wú)二致。Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
Unu28資訊網(wǎng)——每日最新資訊28at.com
h 函數(shù)太麻煩?那就用 TSX/JSX!
肯定會(huì)有人說(shuō) Vue 的h函數(shù)用起來(lái)太麻煩了,各種層級(jí)嵌套,寫起來(lái)沒(méi)有 TSX/JSX 那么爽。Unu28資訊網(wǎng)——每日最新資訊28at.com
其實(shí),在 Vue 中也可以寫 TSX/JSX !!Unu28資訊網(wǎng)——每日最新資訊28at.com
pnpm i @vitejs/plugin-vue-jsx -D
安裝完畢后,需要在 vite.config.ts 中去進(jìn)行插件配置。Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
配置完就可以寫 TSX 啦!!!Unu28資訊網(wǎng)——每日最新資訊28at.com
基本渲染 & 響應(yīng)式 & 事件
我們可以新建一個(gè) TsxComp.tsx 文件,來(lái)寫 TSX 。寫 TSX 可以不在 Vue文件 中去寫。Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
接著我們可以去渲染這個(gè)組件。Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
可以看到基本的 渲染 & 響應(yīng)式 & 事件 已經(jīng)實(shí)現(xiàn)。Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
v-if 條件判斷渲染
模板中一般使用 v-if 來(lái)進(jìn)行條件判斷渲染,而 TSX 是比較接近原生語(yǔ)法的,其實(shí)條件判斷也很像原生的寫法,直接用 &&。Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
v-for 循環(huán)渲染
模板中使用 v-for 來(lái)循環(huán)渲染,TSX 更接近原生,需要使用數(shù)組方法 map 來(lái)進(jìn)行渲染。Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
slot 插槽
在模板中,可以通過(guò)插槽 slot 去傳入一些 DOM 到組件內(nèi)去渲染,TSX 中也一樣有插槽,只不過(guò)用法不像模板那樣用,而是跟 Vue 的h函數(shù)類似。Unu28資訊網(wǎng)——每日最新資訊28at.com
舉個(gè)例子,我寫一個(gè) TSX 組件接收 default 和 test 兩個(gè)插槽。Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
如果你是從模板傳到 TSX 中的話,那么傳入的方式無(wú)差別,也是使用 template 傳入。Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
如果你是從 TSX 傳到 TSX 的話,那么傳入方式通過(guò) props 來(lái)傳了。Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片Unu28資訊網(wǎng)——每日最新資訊28at.com
JSX/TSX 性能差
當(dāng)然你如果用了 JSX/TSX 的話,性能肯定是差一丟丟的,但是這點(diǎn)開銷,真不算啥~大不了不用唄,用回 h 函數(shù)。Unu28資訊網(wǎng)——每日最新資訊28at.com
圖片 Unu28資訊網(wǎng)——每日最新資訊28at.com
本文鏈接:http://www.www897cc.com/showinfo-26-99888-0.html說(shuō)實(shí)話,第一次對(duì) Vue 有點(diǎn)小失望
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com
上一篇: 從ESB服務(wù)組合編排到NetflixConductor微服務(wù)編排
下一篇: 還在用 Lodash?這個(gè)爆火的替代品賊強(qiáng),性能提升300% ,體積減少 97%!