vue的几个小分享
1.VNode 钩子
在每个组件或html标签上,我们可以使用一些特殊的(文档没写的)钩子作为事件监听器。这些钩子有:
-
onVnodeBeforeMount
-
onVnodeMounted
-
onVnodeBeforeUpdate
-
onVnodeUpdated
-
onVnodeBeforeUnmount
-
onVnodeUnmounted
我主要是在组件上使用onVnodeMounted,当需要在组件挂载时执行一些代码,或者在更新时使用onVnodeUpdated进行调试,可以确定的是所有这些钩子都能在某些情况下派上用场。
<script setup> import { ref } from 'vue' const count = ref(0) function onMyComponentMounted() {} function divThatDisplaysCountWasUpdated() {} </script> <template> <MyComponent @vnodeMounted="onMyComponentMounted" /> <div @vnodeUpdated="divThatDisplaysCountWasUpdated">{{ count }}</div> </template>
复制
2、事件的销毁
当一个组件被销毁时,我们应该清除组件中添加的 全局事件 和 定时器 等来防止内存泄漏
Vue3 的 HOOK 可以让我们将事件的声明和销毁写在一起,更加可读
function scrollFun(){ /* ... */} document.addEventListener("scroll", scrollFun) onBeforeUnmount(()=>{ document.removeEventListener("scroll", scrollFun) })
复制
Vue2 可以在 optionsAPI
beforeDestroy 中销毁事件
export default { created() { document.addEventListener("scroll", scrollFun) }, beforeDestroy(){ document.removeEventListener("scroll", scrollFun) } }
复制
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通