当前位置: 首页 > wzjs >正文

香河做网站公司百度服务中心人工24小时电话

香河做网站公司,百度服务中心人工24小时电话,做网站的人找不到了,效果图网站模板Vue 3 引入了 Composition API,使得生命周期钩子(hooks)在函数式风格中更清晰地表达。本篇文章将从官方 hooks 的使用、实现原理以及自定义 hooks 的结构化思路出发,全面理解 Vue 3 的 hooks 系统。 📘 1. Vue 3 官方生…

Vue 3 引入了 Composition API,使得生命周期钩子(hooks)在函数式风格中更清晰地表达。本篇文章将从官方 hooks 的使用、实现原理以及自定义 hooks 的结构化思路出发,全面理解 Vue 3 的 hooks 系统。


📘 1. Vue 3 官方生命周期 hooks 一览

Hook 函数触发时机
onBeforeMount组件挂载前
onMounted组件挂载后
onBeforeUpdate数据变更、视图更新前
onUpdated数据变更、视图更新后
onBeforeUnmount卸载前
onUnmounted卸载后
onActivated<KeepAlive> 激活时
onDeactivated<KeepAlive> 失活时
onErrorCaptured错误捕获
onRenderTracked响应式依赖追踪
onRenderTriggered响应式依赖触发更新

✅ 2. 使用示例

<script setup>
import { onMounted } from 'vue'onMounted(() => {console.log('组件已挂载完成')
})
</script>

<script setup> 中调用 hooks 更简洁,无需访问 setup() 返回对象。


🧠 3. 实现原理解析

生命周期 hooks 的注册基于当前组件实例 currentInstance

export function onMounted(hook: Function, target = currentInstance) {return injectHook('mounted', hook, target)
}

核心函数 injectHook

function injectHook(type: LifecycleHooks, hook: Function, target) {const hooks = target[type] || (target[type] = [])hooks.push(hook)
}

当组件进入对应生命周期阶段时,Vue 内部会遍历执行挂载在实例上的所有该类型 hook。


♻️ 4. 自定义 Hooks(组合逻辑复用)

Vue 3 鼓励将逻辑拆分为 useXxx 函数,以便跨组件复用。

🎯 示例:useWindowSize

// useWindowSize.ts
import { ref, onMounted, onUnmounted } from 'vue'export function useWindowSize() {const width = ref(window.innerWidth)const height = ref(window.innerHeight)const update = () => {width.value = window.innerWidthheight.value = window.innerHeight}onMounted(() => window.addEventListener('resize', update))onUnmounted(() => window.removeEventListener('resize', update))return { width, height }
}

使用方式:

<script setup>
import { useWindowSize } from '@/hooks/useWindowSize'const { width, height } = useWindowSize()
</script>

🧠 自定义 hooks 的原理

  • 本质是普通函数,内部调用 Vue 组合式 API(如 ref, watch, onMounted
  • 在组件 setup() 时执行,响应式变量挂接到当前组件上下文
  • 内部调用生命周期钩子时会依赖当前的 getCurrentInstance()

📌 5. 总结对比

类型示例作用特点
官方生命周期 HookonMounted()注册生命周期回调由 Vue 内部调度
自定义 HookuseMousePosition()封装响应式状态 + 逻辑复用是普通函数,可组合嵌套

📚 推荐阅读

  • Vue 3 官方生命周期 API
  • Vue 核心源码 Lifecycle 实现
  • VueUse - 高质量 Hooks 集合

✍️ 结语

生命周期 hooks 是 Vue 3 中非常核心的机制之一。理解它们的用法与实现,有助于我们编写结构清晰、逻辑可复用的组件。

如果你对 Vue 源码感兴趣,不妨进一步探索 Vue 是如何依赖 currentInstance 来处理作用域钩子的注册和调用的。

http://www.dtcms.com/wzjs/408378.html

相关文章:

  • 网站建设的要求及标准品牌软文
  • 苏州网络推广seo首页关键词优化
  • 网站生成软件免费制作推广公司是做什么的
  • 郑州网站设计见效快外链发布论坛
  • wordpress ttfb多少毫秒推广优化方案
  • 2021年军事新闻广州:推动优化防控措施落地
  • 2345浏览器免费网站网站权重优化
  • 宝山区网站建设免费网站谁有靠谱的
  • 怎么查网站的关键词软文推广网
  • 展示型网站源码电商的推广方式有哪些
  • 做网站温州中国站长站
  • 两新支部网站建设如何做好网络营销推广
  • 陵水网站建设咨询营销外包公司
  • 适合夜间看的直播app大全seo关键词排名优化
  • 阿里云做的海外网站怎么样网站排名优化公司
  • python手机在线编程重庆排名seo公司
  • 自己的电脑做网站会收录吗资讯门户类网站有哪些
  • 扬中市新闻网站推广团队在哪里找
  • 网站使用特殊字体如何推广自己的网站
  • 做网站怎么才会被百度收录国外外链平台
  • 实木餐桌椅网站建设公司搜索排名竞价
  • 深圳网站开发怎么样seo和sem的区别与联系
  • apache网站拒绝访问网站页面优化包括
  • 中职示范校建设专题网站网络营销策划方案案例
  • 拨号服务器做网站nat123怎么做链接推广产品
  • 睢县网站制作公司百度排名工具
  • 京东的网站建设介绍南宁seo外包服务
  • 二手房网签合同在哪个网站做百度权重查询工具
  • 阿里云企业邮箱官网唐山seo优化
  • 个人网站可以直接做微信登陆吗宁波seo网络优化公司