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

教育培训网站排名自己制作网站需要什么

教育培训网站排名,自己制作网站需要什么,微博营销案例,洛阳小程序定制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/a/432522.html

相关文章:

  • 大学网站建设排名网站logo也叫做网站的
  • 数据结构——栈和队列(模拟实现)
  • 福州网站设计大概费用微信商家小程序怎么弄
  • 建设网站的需求分析报告凡客诚品市场份额
  • wordpress liveseo排名优化推广
  • 公司做网站需要什么手续吗网站注册步骤
  • 家居饰品网站建设论文wordpress注册跳过邮箱验证码
  • 视频网站 费用网站文档设置index.php
  • GESP 五级(高精度+初等数论)
  • 建设宣传家乡的网站没有服务器做网站
  • 大连网站制作的公司在pc端网站基础上做移动端
  • 阿里巴巴网站备案号麻将app软件开发
  • 曲靖企业网站做网站需要先申请域名
  • 基于51单片机的空气质量检测PM2.5粉尘检测设计
  • JDK源码之System
  • 专门做婚纱儿童摄影网站wordpress装多个博客
  • Mosquitto Broker源码分析
  • 重庆公司网站seowordpress主题的使用
  • 上海电子商务网站开发用文本文档做网站
  • 熊掌号做网站推广的注意事项怎么做网页站点
  • C#基础03-JIT和GC
  • 安徽省建设工程造价信息网站wordpress 删除小工具
  • 网站推广计划方法如何查询网址的注册信息
  • 太原网站制作优化seo调整百度对网站的最大天级抓取频次值
  • 重庆知名网站建设公司网站设计方案案例分析
  • 一般做个网站需要多少钱wordpress显示缩略图
  • Drawio 在软件开发中的应用实践
  • InfiniBand技术解析(3):解码 IB “黑话”—— 核心术语与架构概览
  • 专做水果的社区网站重庆建设岗位证书查询网
  • 【复习】计网强化第二章