自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

無意中發(fā)現(xiàn) Vue3 的小技巧,幫我節(jié)省很多代碼

開發(fā) 前端
Vben-Admin 是一個(gè)非常出色的開源 Vue3 項(xiàng)目,它代碼中就大量使用了 事件疊加 的技巧,尤其是 Table、Drawer、Modal 這類可控組件,我也是從里面學(xué)到的技巧~

最近在開發(fā) Vue3 項(xiàng)目時(shí)偶然發(fā)現(xiàn)了一個(gè)技巧:組件的事件往下傳可以進(jìn)行疊加!,感覺對(duì)大家的開發(fā)肯定有幫助,能節(jié)省很多代碼量?。?!我會(huì)通過一個(gè)小案例來跟大家講解這個(gè)小技巧的好處體現(xiàn)在哪~

場(chǎng)景

先來說說我的場(chǎng)景吧,我在項(xiàng)目開發(fā)中對(duì)一個(gè)基礎(chǔ)組件 BasicComp.vue進(jìn)行二次封裝,總共封裝了兩層,如下圖

圖片圖片

我先把 BasicComp.vue 簡(jiǎn)單化一下:

圖片圖片

而我想要做的效果是在 Page.vue、Index.vue中都能調(diào)用BasicComp.vue身上的方法changeShow去控制show變量的改變,比如下面的效果

圖片圖片

實(shí)現(xiàn)代碼如下:

SecondComp.vue

圖片圖片

Index.vue

圖片圖片

Page.vue

圖片圖片

太麻煩了!

大家也看到了,上面的代碼實(shí)現(xiàn)非常麻煩,得一層一層利用 emits 往上傳

但是突然有一天我發(fā)現(xiàn)了一個(gè) Vue3 的特性,貌似很多人都沒發(fā)現(xiàn),那就是:組件的事件往下傳可以進(jìn)行疊加!

什么意思呢?我通過一個(gè)小例子來說明,我準(zhǔn)備了 祖孫三個(gè)組件。

Sunzi.vue

圖片圖片

Erzi.vue

圖片圖片

Yeye.vue

圖片圖片

最輸出表現(xiàn)為:

圖片圖片

我在Erzi.vue 中并沒有去接收 Yeye.vue 傳下來的 emits,但是它卻能透?jìng)鞯絊unzi.vue 中,并且兩者疊加

代碼優(yōu)化

通過剛剛發(fā)現(xiàn)的小特性,我們可以對(duì)一開始的代碼進(jìn)行優(yōu)化

只需要封裝一個(gè) Hooks

圖片圖片

Index.vue

圖片圖片

Page.vue

圖片圖片

最終達(dá)到想要的結(jié)果:

圖片圖片

Vben-Admin受到的啟發(fā)

Vben-Admin 是一個(gè)非常出色的開源 Vue3 項(xiàng)目,它代碼中就大量使用了 事件疊加 的技巧,尤其是 Table、Drawer、Modal 這類可控組件,我也是從里面學(xué)到的技巧!

責(zé)任編輯:武曉燕 來源: 前端之神
相關(guān)推薦

2009-08-29 08:37:33

2011-05-04 13:13:04

2021-04-08 11:46:41

String hashJava代碼

2024-03-12 12:27:00

Vue 3前端開發(fā)

2011-05-04 10:01:04

2021-12-01 08:11:44

Vue3 插件Vue應(yīng)用

2021-01-15 05:16:37

Vue3開源代碼量

2022-12-12 13:19:11

Vue3開發(fā)技巧

2024-02-28 08:35:26

內(nèi)置組件Vue3頁(yè)面

2021-11-30 08:19:43

Vue3 插件Vue應(yīng)用

2023-11-28 09:03:59

Vue.jsJavaScript

2021-12-02 05:50:35

Vue3 插件Vue應(yīng)用

2020-08-19 12:49:35

SQLPython流量查詢

2020-11-16 11:10:21

代碼開發(fā)工具

2020-09-19 21:15:26

Composition

2025-01-06 08:57:19

Vue技巧

2022-07-08 08:52:25

Vue3組合動(dòng)態(tài)返回

2021-12-08 09:09:33

Vue 3 Computed Vue2

2019-05-29 09:05:13

DockerDockly容器

2009-09-17 16:21:57

WSUS服務(wù)器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)