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

總結 Vue3 組件管理 12 種高級寫法,靈活使用才能提高效率

開發 前端
namedTemplate 是 Vue Macros 推出的一個前瞻性的 Vue3 特性,雖然Vue Macros里的特性暫時還不是正式版特性,但是以后有很大概率會成為正式版特性,我們也可以對 Vue3 項目進行配置,使得項目可以使用 Vue Macros的特性。

SFC 單文件組件

顧名思義,就是一個.vue文件只寫一個組件。

模板寫法

圖片圖片

如果這個組件想要在別的組件里使用,就需要在另一個.vue中引入和使用、復用。

h函數寫法

使用 defineComponent + h 去進行組件編寫。

圖片圖片

JSX/TSX寫法

使用 defineComponent + JSX/TSX 去進行組件編寫。

pnpm i @vitejs/plugin-vue-jsx -D

安裝完畢后,需要在 vite.config.ts 中去進行插件配置。

圖片圖片

圖片圖片

圖片圖片

引入組件

圖片圖片

單文件多復用模板

如果你想要在一個單文件組件中,定義一些可復用的模板代碼的話,可以試試以下的方法;

createReusableTemplate

圖片圖片

這是 VueUse 提供的一個 Hooks。

文檔地址:https://vueuse.org/core/createReusableTemplate/

使用方式如下:

圖片圖片

namedTemplate

圖片圖片

namedTemplate 是 Vue Macros 推出的一個前瞻性的 Vue3 特性。

雖然Vue Macros里的特性暫時還不是正式版特性,但是以后有很大概率會成為正式版特性。

我們也可以對 Vue3 項目進行配置,使得項目可以使用 Vue Macros的特性。

文檔地址:https://vue-macros.dev/zh-CN/features/named-template.html

使用方式如下:

圖片圖片

通用的多組件管理

你可以將多個邏輯緊密或者類型相似的組件,放置在同一個ts文件或Hooks中去管理,在使用到這些組件的地方去引入即可使用。

FunctionalComponent + h

在某一個頁面中,如果你有一些組件,它們邏輯比較緊密聯系,那你可以使用FunctionalComponent + h將他們封裝在同一個 Hooks 中,比如下面的例子

圖片圖片

圖片圖片

圖片圖片

或者你不想寫在Hooks中,你也完全可以寫在最外層。

圖片圖片

只不過引入方式就要做一些改變。

圖片圖片

defineComponent + h

defineComponent + h 的寫法也是差不多的道理。

你可以使用 Hooks 去封裝,如下:

圖片圖片

或者你也可以直接放在ts文件最外層。

圖片圖片

也是同樣的效果:

圖片圖片

defineComponent + JSX/TSX

可能會有人覺得 h 寫起來很麻煩,嵌套太多的話寫起來會很難受,那我們其實也可以用JSX/TSX去替代它。

同樣你也可以將多個組件以JSX/TSX的形式,維護在同一個tsx文件中。

pnpm i @vitejs/plugin-vue-jsx -D

安裝完畢后,需要在 vite.config.ts 中去進行插件配置。

圖片圖片

圖片圖片

配置完就可以寫 TSX 啦!!!

圖片圖片

同樣你也可以寫在外層(這里就不寫了,同理)。

也是同樣的效果:

圖片圖片

Vue Macros 組件 API

Vue Macros里的特性暫時還不是正式版特性,但是以后有很大概率會成為正式版特性。

文檔:https://vue-macros.dev/zh-CN/

defineRender + JSX/TSX

文檔地址:https://vue-macros.dev/zh-CN/macros/define-render.html#definerender

defineRender跟 defineComponent 的區別在于,defineRender只需要關心最終的DOM結構,不需要管狀態的維護。

圖片圖片

setupSFC + JSX/TSX

文檔地址:https://vue-macros.dev/zh-CN/macros/setup-sfc.html#setupsfc

想使用 setupSFC 的特性,需要建一個.setup.tsx/.setup.jsx 文件,跟普通的 tsx/jsx 文件相比,每次引入.setup.tsx/.setup.jsx這個文件,都是一個新的組件實例,狀態并不會共享。

圖片圖片

setupComponent + JSX/TSX

文檔地址:https://vue-macros.dev/zh-CN/macros/setup-component.html#setupcomponent

setupComponent 適合用來管理多組件,可以把多個緊密聯系或共用的組件,通過setupComponent寫在同一個文件或 Hooks 里。

setupComponent中可以使用setup的語法去寫邏輯,寫起來比defineComponent簡潔很多。

圖片圖片

同理,你想寫在文件外層也行~這里就不具體寫了。

Vine

圖片圖片

文檔:https://vue-vine.dev/

這個庫的作用就是:讓 Vue 組件能通過函數式來定義。

舉個例子,我們在平時寫一個組件的時候,會通過模板的方式去定義。

圖片圖片

但是在使用了 Vue-Vine這個庫之后,可以使用函數式的方式去定義。

圖片圖片

翻看了一下Vue-Vine的官方文檔,總結出Vue-Vine這個庫的初衷是:

  • 想要做到像 React JSX 那樣的組件定義方式。
  • 可以在同個文件里定義多個組件。
  • 使得邏輯更加聚合,提高開發效率。
責任編輯:武曉燕 來源: 前端之神
相關推薦

2023-05-17 16:47:47

物聯網智能建筑

2010-04-13 15:14:31

Oracle優化

2015-09-06 16:05:57

綠色數據中心效率

2012-03-27 09:17:43

Visual Stud

2018-09-30 14:46:38

Linux命令技巧

2015-11-27 12:59:11

Android技巧提高效率

2020-12-14 09:39:45

開發技能組件

2020-07-08 14:10:30

開發技能工具

2023-11-21 10:00:28

IT銷售業績

2010-09-09 16:51:50

2020-06-04 15:55:54

GitHub代碼開發者

2025-01-15 17:00:00

開發Linux命令

2020-01-21 19:39:31

數據中心服務器工具

2023-10-23 15:02:53

JavaScript

2012-06-01 14:44:27

惠普臺式機

2012-07-16 00:51:36

程序員效率

2019-06-25 08:42:13

Linux命令指令

2014-12-12 09:52:04

JavaScript

2021-11-12 16:54:07

云計算5G云應用

2023-01-10 11:18:29

DevOps
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产成人久久av免费高清密臂 | 欧美精品91爱爱 | 日韩成人免费在线视频 | 成人在线中文 | 欧美成人激情 | 自拍偷拍第一页 | 性色av一区 | 国产精品久久久久久吹潮 | 国产欧美在线一区 | 中文字幕乱码一区二区三区 | 亚洲福利在线视频 | 久久综合久久久 | 欧美二三区 | 日产久久 | 亚洲欧美成人影院 | 国产中文字幕av | 国产精品1区 | 国产精品1区2区3区 男女啪啪高潮无遮挡免费动态 | 国产精品婷婷 | 成人一区二区在线 | 亚洲高清免费 | 日韩中文字幕 | 久久久久久国产精品 | 日韩成人av在线播放 | 久久99精品久久久久久国产越南 | 色综合网站 | 毛片一级片 | 日韩欧美视频网站 | 欧美日韩在线观看一区 | 亚洲综合色丁香婷婷六月图片 | 午夜精品久久久久久 | 影音先锋中文字幕在线观看 | 亚洲电影在线播放 | 日本成年免费网站 | 国产激情视频在线观看 | 久久99精品久久久久久狂牛 | 免费的日批视频 | 亚州午夜精品 | 在线观看黄色大片 | 精品国产一区二区 | 黑人精品欧美一区二区蜜桃 |