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

為何Vue3的自定義Hooks這么好用?

開(kāi)發(fā) 前端
所謂的自定義 Hooks 就是在開(kāi)發(fā) Vue3 項(xiàng)目時(shí),我們將 script 里面相同邏輯功能的變量和方法等封裝到一個(gè) js 文件里面,然后通過(guò) export導(dǎo)出。

1.組合式 API 和選項(xiàng) API

Vue2 提供的編程方式是 Options API,即選項(xiàng)式 API。

我們需要在 data 里面定義變量,在 methods 里面定義方法,在 computed 定義計(jì)算后的邏輯。

圖片圖片

在開(kāi)發(fā)功能的時(shí)候,我們需要在 data 、methods、computed 之間來(lái)回找代碼。

如果功能非常復(fù)雜, data 、methods、computed 等里面的代碼就會(huì)非常長(zhǎng),不好維護(hù)。

圖片圖片

后來(lái) Vue3 出現(xiàn)了,它提供的編程方式是 Composition API,即組合式 API。

在開(kāi)發(fā)功能的時(shí)候,我們根據(jù)邏輯功能去組織代碼,一個(gè)功能所定義的所有 API 會(huì)放在一起。

圖片圖片

但是如果業(yè)務(wù)功能太復(fù)雜,script 標(biāo)簽里面的代碼也會(huì)又臭又長(zhǎng),而且并不是很多人都有加注釋的習(xí)慣,所以時(shí)間長(zhǎng)了也不好維護(hù)。

圖片圖片

那能不能把相同邏輯功能的代碼分別放到到不同的文件里,其他地方想用的時(shí)候直接導(dǎo)入就可以復(fù)用了呢?

有的,自定義 Hooks 出現(xiàn)了。

2.自定義 Hooks 介紹

Vue 的自定義 Hooks 是一種封裝可重用邏輯的方式。它允許你將復(fù)雜的邏輯提取出來(lái),形成獨(dú)立的函數(shù),然后在不同的組件中復(fù)用。這樣可以避免在多個(gè)組件中重復(fù)編寫(xiě)相同的邏輯,提高代碼的可讀性和可維護(hù)性。

通俗易懂來(lái)說(shuō)就是:

1.將可復(fù)用的功能邏輯放到一個(gè) js 文件里面,并通過(guò) export  導(dǎo)出。

2.定義 Hooks 的時(shí)候,js 的文件名和方法名通常以 use 開(kāi)頭,例如 useAddOrder、useChangeData。

3.通過(guò) import  導(dǎo)入相關(guān)的 js 文件,引用時(shí)通過(guò)解構(gòu)顯示相關(guān)的變量和方法。

接下來(lái)我們講一下自定義 Hooks 的案例,其實(shí)非常簡(jiǎn)單。

3.自定義 Hooks 案例

3.1 案例1

創(chuàng)建一個(gè)簡(jiǎn)單的計(jì)數(shù)器 Hooks

圖片圖片

使用 Hooks

<template>
  <div>
    <p>count: {{ count }}</p>
    <el-divider></el-divider>
    <el-button type="primary" @click="increment">新增</el-button>
    <el-button type="success" @click="decrement">減少</el-button>
  </div>
</template>
<script setup>
// 導(dǎo)入 hooks
import { useCounter } from "../hooks/useCounter";
// 解構(gòu)引入
const { count, increment, decrement } = useCounter();
</script>

圖片圖片

3.2 案例2

創(chuàng)建一個(gè)監(jiān)聽(tīng)瀏覽器窗口大小變化的 Hooks

圖片圖片

使用 Hooks

<template>
  <div>
     <p>瀏覽器窗口寬度: {{ width }}</p>
    <p>瀏覽器窗口高度: {{ height }}</p>
  </div>
</template>
<script setup>
// 導(dǎo)入 hooks
import { useWindowResize } from "../hooks/useWindowResize";
// 解構(gòu)引入
const { width, height } = useWindowResize();
</script>

圖片圖片

4.總結(jié)

所謂的自定義 Hooks 就是在開(kāi)發(fā) Vue3 項(xiàng)目時(shí),我們將 script 里面相同邏輯功能的變量和方法等封裝到一個(gè) js 文件里面,然后通過(guò) export導(dǎo)出。

然后在任何頁(yè)面都可以通過(guò)導(dǎo)入、解構(gòu)的方式使用,大大提高代碼的復(fù)用性。

自定義 Hooks 將相同的功能代碼從一堆代碼中解耦出來(lái),讓組件結(jié)構(gòu)更清晰,便于維護(hù)。

圖片圖片

Hooks 直譯是“鉤子”,所以又把這些定義的 js 叫做鉤子函數(shù)。

責(zé)任編輯:武曉燕 來(lái)源: 知否技術(shù)
相關(guān)推薦

2021-11-30 08:19:43

Vue3 插件Vue應(yīng)用

2023-06-28 08:05:46

場(chǎng)景vue3自定義

2024-11-06 10:16:22

2022-07-26 01:06:18

Vue3自定義指令

2022-08-01 11:41:00

Vue插件

2023-12-01 09:02:57

Vue3WangEditor

2022-08-21 09:41:42

ReactVue3前端

2024-08-12 08:33:05

2024-01-25 09:09:00

fsp幀數(shù)游戲

2022-02-22 13:14:30

Vue自定義指令注冊(cè)

2025-05-13 09:53:42

Vue3JavaScript開(kāi)發(fā)

2021-03-31 08:01:50

Vue3 Vue2 Vue3 Telepo

2021-07-05 15:35:47

Vue前端代碼

2021-12-01 08:11:44

Vue3 插件Vue應(yīng)用

2023-11-28 09:03:59

Vue.jsJavaScript

2021-02-18 08:19:21

Vue自定義Vue 3.0

2024-06-03 10:00:51

Vue 3語(yǔ)法插槽

2021-12-02 05:50:35

Vue3 插件Vue應(yīng)用

2020-12-28 10:10:04

Vue自定義指令前端

2020-09-19 21:15:26

Composition
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 欧美日韩国产精品激情在线播放 | 97精品超碰一区二区三区 | www在线视频 | 亚洲精品国产电影 | 日本不卡免费新一二三区 | 狠狠插狠狠操 | 91视频网址 | 中文字幕在线电影观看 | 在线观看视频福利 | 欧美夜夜 | 91夜色在线观看 | 日韩中文字幕 | 欧美精品久久久 | 久久国产精品免费一区二区三区 | 五月天婷婷久久 | 国产精品1区2区 | 欧美日高清视频 | 四虎影院免费在线 | 最新中文字幕 | 久久精品日产第一区二区三区 | 亚洲一区二区中文字幕在线观看 | zzzwww在线看片免费 | 成人高清视频在线观看 | 亚洲精品一区在线 | 91在线免费视频 | 久久国内 | av黄色网| av福利网站 | 久久精彩视频 | 日韩欧美一级精品久久 | 一区二区三区四区视频 | 九九亚洲精品 | 欧美一级免费观看 | 中文字幕在线精品 | 国产精品无码专区在线观看 | 中文字幕乱码一区二区三区 | 黄网站免费在线看 | 日韩视频福利 | 日韩中文字幕免费在线观看 | 精品1区2区| 狠狠操狠狠色 |