vue3的hooks用法總結(jié)
vue3的hooks總結(jié)
vue3中的hooks其實(shí)是函數(shù)的寫法,就是將文件的一些單獨(dú)功能的js代碼進(jìn)行抽離出來,放到單獨(dú)的js文件中。這樣其實(shí)和我們在vue2中學(xué)的mixin比較像。下面我們總結(jié)一下如何去書寫hooks。首先應(yīng)該先建立一個(gè)hooks文件夾:其目的是為了存放hook文件。

建立相關(guān)的hook文件:一般使用use開頭。
一、計(jì)數(shù)器的hook

useTitle的hooks

useScrollPostion用來監(jiān)測瀏覽器頁面的滾動(dòng)情況

useMousemove監(jiān)聽鼠標(biāo)位置的hook

useLocalStorage可以本地存儲

vue3中hooks的介紹及用法小結(jié)
大家好,今天這篇文章是介紹一下vue3中的hooks以及它的用法。本文內(nèi)容主要有以下兩點(diǎn):
- 什么是hooks
- vue3中hooks的使用方法
一、 什么是hooks
hook是鉤子的意思,看到“鉤子”是不是就想到了鉤子函數(shù)?事實(shí)上,hooks 還真是函數(shù)的一種寫法。
vue3 借鑒 react hooks 開發(fā)出了 Composition API ,所以也就意味著 Composition API 也能進(jìn)行自定義封裝 hooks。
vue3 中的 hooks 就是函數(shù)的一種寫法,就是將文件的一些單獨(dú)功能的js代碼進(jìn)行抽離出來,放到單獨(dú)的js文件中,或者說是一些可以復(fù)用的公共方法/功能。其實(shí) hooks 和 vue2 中的 mixin 有點(diǎn)類似,但是相對 mixins 而言, hooks 更清楚復(fù)用功能代碼的來源, 更清晰易懂。
二、hooks的用法
1.在src中創(chuàng)建一個(gè)hooks文件夾,用來存放hook文件

2.根據(jù)需要寫hook文件,比如要實(shí)現(xiàn)一個(gè)功能就是在 點(diǎn)擊頁面時(shí),記錄鼠標(biāo)當(dāng)前的位置,可以在hooks文件夾中新建一個(gè)文件useMousePosition.ts,
// src/hooks/useMousePosition.ts
import { ref, onMounted, onUnmounted, Ref } from 'vue'
interface MousePosition {
x: Ref<number>,
y: Ref<number>
}
function useMousePosition(): MousePosition {
const x = ref(0)
const y = ref(0)
const updateMouse = (e: MouseEvent) => {
x.value = e.pageX
y.value = e.pageY
}
onMounted(() => {
document.addEventListener('click', updateMouse)
})
onUnmounted(() => {
document.removeEventListener('click', updateMouse)
})
return { x, y }
}
export default useMousePosition3.hook文件的使用:在需要用到該hook功能的組件中的使用,比如在 test.vue文件中:
// src/views/test.vue
<template>
<div>
<p>X: {{ x }}</p>
<p>Y: {{ y }}</p>
</div>
</template>
<script lang="ts">
import { defineComponent} from 'vue'
// 引入hooks
import useMousePosition from '../../hooks/useMousePosition'
export default defineComponent({
setup () {
// 使用hooks功能
const { x, y } = useMousePosition()
return {
x,
y
}
}
})
</script>以上就是vue3中hooks的使用,是不是覺得特別的簡單清晰。
到此這篇關(guān)于一文掌握vue3中hooks的介紹及用法的文章就介紹到這了,更多相關(guān)vue3 hooks用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- vue3封裝Hooks實(shí)現(xiàn)圖片懶加載指南
- Vue3官方Hooks的用法與實(shí)現(xiàn)原理
- Vue3使用hooks解決字典數(shù)據(jù)的顯示問題
- Vue3通過hooks方式封裝節(jié)流和防抖的代碼詳解
- Vue3封裝hooks實(shí)現(xiàn)實(shí)時(shí)獲取麥克風(fēng)音量
- Vue3中Hooks封裝的技巧詳解
- Vue3自定義Hooks函數(shù)的使用詳解
- 詳解hooks在vue3中的使用方法及示例
- vue3中hooks的概述及用法小結(jié)
- Vue3通過ref操作Dom元素及hooks的使用方法
- Vue3 Hooks使用實(shí)戰(zhàn)
相關(guān)文章
Vue實(shí)現(xiàn)base64編碼圖片間的切換功能
這篇文章主要介紹了Vue實(shí)現(xiàn)base64編碼圖片間的切換功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12
前端記錄輸入框的歷史輸入記錄實(shí)現(xiàn)步驟(輸入框數(shù)據(jù)記憶功能)
這篇文章主要介紹了如何使用localStorage來記錄每個(gè)輸入框的歷史輸入記錄,并在用戶輸入時(shí)動(dòng)態(tài)更新這些記錄,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-03-03
Vue利用axios發(fā)送請求并代理請求的實(shí)現(xiàn)代碼
在Web開發(fā)中,跨域問題是一個(gè)常見難題,通常由瀏覽器的同源策略引起,通過簡單配置vue.config.js文件,以及安裝axios依賴,即可實(shí)現(xiàn)前后端的無縫連接和數(shù)據(jù)交換,這種方法簡便有效,對于處理跨域請求問題非常實(shí)用2024-10-10
淺談Vue.js應(yīng)用的四種AJAX請求數(shù)據(jù)模式
本篇文章主要介紹了淺談Vue.js應(yīng)用的四種AJAX請求數(shù)據(jù)模式,本文將詳細(xì)介紹在Vue應(yīng)用程序中實(shí)現(xiàn)AJAX的四個(gè)方法,有興趣的可以了解一下2017-08-08

