vue3之hook
介绍:通过组合式API可以把复杂或常用的逻辑封装成一个个hook来进行调用,简介优雅,方便维护。
hooks 本质是一个函数,是对 setup 中使用的 composition API的封装,通俗来讲:抽出一部分代码单独放一个js里,在setup里就可直接用hook中的函数,不是父子组件的关系。
hooks 复用率高,使setup中逻辑更清晰
1.在要编写的view文件夹中新增对应的hook文件夹,例:/hook/useTitle.js
一个改变浏览器页签title的小需求:
import { ref, watch } from 'vue' export default function(title = '默认值') { const titleRef = ref(title);
const words = ref('奖项'); watch(titleRef, (newVal) => { document.title = newVal }, { immediate: true }) return { titleRef,
words } }
2.在要编写的文件中引用并直接使用:
import useTitle from "./hook/useTitle"; export default { setup(props, { emit }) { const {titleRef,words} = useTitle("金鸡奖");
console.log(words.value) setTimeout(() => { titleRef.value = "百花奖"; }, 3000); return { titleRef,
words, }; }, }