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

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

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

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

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

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

圖片圖片

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

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

圖片圖片

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

在開發(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ù)雜的邏輯提取出來,形成獨(dú)立的函數(shù),然后在不同的組件中復(fù)用。這樣可以避免在多個(gè)組件中重復(fù)編寫相同的邏輯,提高代碼的可讀性和可維護(hù)性。

通俗易懂來說就是:

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

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

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

接下來我們講一下自定義 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)聽瀏覽器窗口大小變化的 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 就是在開發(fā) Vue3 項(xiàng)目時(shí),我們將 script 里面相同邏輯功能的變量和方法等封裝到一個(gè) js 文件里面,然后通過 export導(dǎo)出。

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

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

圖片圖片

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

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

2021-11-30 08:19:43

Vue3 插件Vue應(yīng)用

2023-06-28 08:05:46

場(chǎng)景vue3自定義

2022-07-26 01:06:18

Vue3自定義指令

2022-08-01 11:41:00

Vue插件

2024-11-06 10:16:22

2023-12-01 09:02:57

Vue3WangEditor

2022-08-21 09:41:42

ReactVue3前端

2024-08-12 08:33:05

2022-02-22 13:14:30

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

2024-01-25 09:09:00

fsp幀數(shù)游戲

2021-03-31 08:01:50

Vue3 Vue2 Vue3 Telepo

2021-12-01 08:11:44

Vue3 插件Vue應(yīng)用

2023-11-28 09:03:59

Vue.jsJavaScript

2021-07-05 15:35:47

Vue前端代碼

2021-12-02 05:50:35

Vue3 插件Vue應(yīng)用

2020-09-19 21:15:26

Composition

2022-03-11 09:10:10

hooksReact自定義

2015-02-12 15:33:43

微信SDK

2021-02-18 08:19:21

Vue自定義Vue 3.0

2024-06-03 10:00:51

Vue 3語法插槽
點(diǎn)贊
收藏

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