我的编程空间,编程开发者的网络收藏夹
学习永远不晚

VueHookEvent深度解读

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

VueHookEvent深度解读

前言

Hook Event (钩子事件)相信很多 Vue 开发者都没有使用过,甚至没听过,毕竟 Vue 官方文档中也没有提及。

Vue 提供了一些生命周期钩子函数,供开发者在特定的逻辑点添加额外的处理逻辑,比如: 在组件挂载阶段提供了beforeMount 和 mounted 两个生命周期钩子,供开发者在组件挂阶段执行额外的逻处理,比如为组件准备渲染所需的数据。

那这个Hook Event——钩子事件,其中也有钩子的意思,和 Vue 的生命周期钩子函数有什么关系呢? 它又有什么用呢?这就是这边文章要解答的问题。

 什么是 Hook Event ?

Hook Event是 Vue 的自定义事件结合生命周期钩子实现的一种从组件外部为组件注入额外生命周期方法的功能。

 如下图所示,如果引入第三方业务组件,组件内部请求数据,没有loding,如果修改源码的话会很麻烦,现在用hook可以解决。

 通过 hook event 在组件外部为组件注入额外的生命周期钩子逻辑:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <div id="app">
            <comp @hook:mounted="handleHookEvent"></comp>
        </div>
        <script class="lazy" data-src="./vue.js"></script>
        <script>
            // 第三方业务组件
            Vue.component("comp",{
                template:`
                    <ul>
                        <li v-for="item in arr" :key="JSON.stringify(item)">{{ item }}</li>
                    </ul>
                `,
                data(){
                    return {
                        arr:[]
                    }
                },
                async mounted(){
                    console.log("comp mounted");
                    // 通过 hook event 在组件外部为组件注入额外的生命周期钩子逻辑
                    // 通过Promise + setTimeout 延时程序,模拟接口调用的过程
                    this.arr = await new Promise(resolve=>{
                       setTimeout(()=>{
                        resolve([1,2,3,4,5])
                       },2000)
                    }) 
                }
            })
 
            new Vue({
                el:"#app",
                methods:{
                    handleHookEvent() {
                        console.log('loding...');
                    }
                }
            })
        </script>
    </body>
</html>
Hook Event 有什么作用?

通过 Hook Event 可以从组件外部为组件注入额外的生命周期方法。 

总结

面试官 问: 什么是 Hook Event?
答:
Hook Event是 Vue 的自定义事件结合生命周期钩子实现的一种从组件外部为组件注入额外生命周期方法的功能。.

面试官 问: Hook Event 是如果实现的?
答:
<comp @hook:lifecycleMethod="method" />
处理组件自定义事件的时候 (vm.$on)如果发现组件有 hook:xx 格式的事件(xx为 Vue 的生命周期函数),测将 vm._hasHookEvent 置为 true ,表示该组件有 Hook Event
在组件生命周期方法被触发的时候,内部会通过 calLHook 方法来执行这些生命周期函数,在生命周期函数执行之后,如果发现 vm._hasHookEvent 为 true,则表示当前组件有 Hook Event,通过vm.$emit('hook:xx') 触发 Hook Event 的执行
这就是 Hook Event 的实现原理。

到此这篇关于Vue Hook Event 解读的文章就介绍到这了,更多相关Vue Hook Event 解读内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

VueHookEvent深度解读

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

VueHookEvent深度解读

HookEvent是Vue的自定义事件结合生命周期钩子实现的一种从组件外部为组件注入额外生命周期方法的功能,本文重点给大家介绍VueHookEvent解读,感兴趣的朋友一起看看吧
2023-01-12

深度解读Python如何实现dbscan算法

DBScan 是密度基于空间聚类,它是一种基于密度的聚类算法,其与其他聚类算法(如K-Means)不同的是,它不需要事先知道簇的数量。本文就来带大家了解一下Python是如何实现dbscan算法,感兴趣的可以了解一下
2023-02-06

阿里云服务器规模的深度解读

随着云计算的普及和发展,阿里云服务器已经成为众多企业和个人的首选。作为全球领先的云计算服务提供商,阿里云服务器的规模无疑是一个非常重要的指标。本文将对阿里云服务器的规模进行深度解读,包括阿里云服务器的容量、带宽和性能等各方面的情况。阿里云服务器的规模阿里云服务器是阿里云提供的基础设施服务之一,可以提供稳定、高效的
阿里云服务器规模的深度解读
2023-12-11

如何深度解读Serverless架构及平台选择

这篇文章将为大家详细讲解有关如何深度解读Serverless架构及平台选择,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在 Serverless 产品层面,从最早的 AWS Lambda,到
2023-06-04

阿里云服务器租赁报价表深度解读

本文主要介绍了阿里云服务器租赁报价表,旨在帮助用户更好地理解服务器租赁的价格和性能。通过本文的解读,用户可以更好地选择适合自己的服务器租赁方案,节省成本,提高工作效率。正文:随着互联网技术的不断发展,越来越多的企业和个人开始使用服务器进行业务运营。而服务器租赁作为一种经济实惠的方案,受到了广大用户的欢迎。然而,对
阿里云服务器租赁报价表深度解读
2023-11-19

阿里云数据库手册电子版深度解读

阿里云数据库手册电子版是阿里云为数据库用户提供的详尽的参考资料。该手册涵盖了阿里云数据库的各种产品、功能、使用方法和最佳实践等内容,是数据库用户的重要参考工具。正文:一、阿里云数据库手册电子版概述阿里云数据库手册电子版是由阿里云开发的一款电子版数据库手册,该手册详细介绍了阿里云数据库的各种产品、功能、使用方法和最
阿里云数据库手册电子版深度解读
2023-11-02

深度解读Oracle服务种类及其适用范围

Oracle是当前企业中广泛使用的数据库管理系统,提供了多种不同的服务种类来满足不同的业务需求。本文将深入解读Oracle的各种服务种类及其适用范围,并提供具体的代码示例进行说明。Oracle的服务种类主要包括以下几种:Oracle Da
深度解读Oracle服务种类及其适用范围
2024-03-02

SQL Server 2019 深度解读:微软数据平台的野望

本文为笔者在InfoQ首发的原创文章,主要利用周末时间陆续写成,也算近期用心之作。现转载回自己的公众号,请大家多多指教。11 月 4 日,微软正式发布了其新一代数据库产品 SQL Server 2019,带来了大数据集群、数据虚拟化等重磅特性。本次发布距离上一
SQL Server 2019 深度解读:微软数据平台的野望
2014-11-04

深度解读:Go语言开发者必知的优秀项目

Go语言是一门快速高效的编程语言,因其简洁易用的特点越来越受到开发者的青睐。在开发过程中,借助一些优秀的第三方项目可以大大提高开发效率和性能。本文将深度解读一些Go语言开发者必知的优秀项目,并提供具体的代码示例。1. Go语言标准库Go语
深度解读:Go语言开发者必知的优秀项目
2024-03-04

深度解读阿里巴巴云原生镜像分发系统 Dragonfly

Dragonfly 是一个由阿里巴巴开源的云原生镜像分发系统,主要解决以 Kubernetes 为核心的分布式应用编排系统的镜像分发难题。随着企业数字化大潮的席卷,行业应用纷纷朝微服务架构演进,并通过云化平台优化业务管理。Dragonfly
2023-06-05

如何深度解析JVM

如何深度解析JVM,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。首先这里澄清两个概念:JVM实例和JVM执行引擎实例,JVM实例对应了一个独立运行的Java程序,而JVM执行引
2023-06-17

深度学习&机器阅读之间分析

欢迎各位同学阅读本篇文章,随着机器学习的兴起,那么机器阅读会怎么样呢?那么机器学习&机器阅读之间的分析会是怎么样呢?编程学习网教育平台提醒您,要认真阅读本篇文章哦~机器阅读将是深度学习的下一个重大进展。
深度学习&机器阅读之间分析
2024-04-23

如何深度解析Kafka

如何深度解析Kafka,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。背景介绍Kafka简介Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下:
2023-06-17

推荐阅读《Tensorflow:实战Google深度学习框架》

推荐阅读《Tensorflow:实战Google深度学习框架》TensorFlow是谷歌2015年开源的主流深度学习框架,目前已在谷歌、优步(Uber)、京东、小米等科技公司广泛应用。《Tensorflow实战》为使用TensorFlow深
2023-06-02

怎样深度解读java线程池设计思想及源码实现

这篇文章给大家介绍怎样深度解读java线程池设计思想及源码实现,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前言线程池是非常重要的工具,如果你要成为一个好的工程师,还是得比较好地掌握这个知识,很多线上问题都是因为没有用
2023-06-02

编程热搜

目录