广告
返回顶部
首页 > 资讯 > 前端开发 > html >Vue中钩子函数怎么用
  • 503
分享到

Vue中钩子函数怎么用

2024-04-02 19:04:59 503人浏览 八月长安
摘要

小编给大家分享一下Vue中钩子函数怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在Vue 中可以把一系列复杂的操作包装为一

小编给大家分享一下Vue中钩子函数怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

在Vue 中可以把一系列复杂的操作包装为一个指令。

什么是复杂的操作?

我的理解是:复杂逻辑功能的包装、违背数据驱动的 DOM 操作以及对一些 Hack 手段的掩盖等。我们总是期望以操作数据的形式来实现功能逻辑。

钩子函数

对于自定义指令的定义,Vue2 有 5 个可选的钩子函数。

bind: 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作。
inserted: 被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于 document 中)。
update: 被绑定元素所在的模板更新时调用,而不论绑定值是否变化。
componentUpdated: 被绑定元素所在模板完成一次更新周期时调用。
unbind: 只调用一次,指令与元素解绑时调用。

接下来,定义一个简单的指令以验证这些钩子函数的触发时机。

template

<div id="app">
 <my-comp v-if="msg" :msg="msg"></my-comp>
 <button @click="update">更新</button>
 <button @click="uninstall">卸载</button>
 <button @click="install">安装</button>
</div>

script

Vue.directive('hello', {
 bind: function (el) {
  console.log('bind')
 },
 inserted: function (el) {
  console.log('inserted')
 },
 update: function (el) {
  console.log('update')
 },
 componentUpdated: function (el) {
  console.log('componentUpdated')
 },
 unbind: function (el) {
  console.log('unbind')
 }
})
var myComp = {
 template: '<h2 v-hello>{{msg}}</h2>',
 props: {
  msg: String
 }
}
new Vue({
 el: '#app',
 data: {
  msg: 'Hello'
 },
 components: {
  myComp: myComp
 },
 methods: {
  update: function () {
   this.msg = 'Hi'
  },
  uninstall: function () {
   this.msg = ''
  },
  install: function () {
   this.msg = 'Hello'
  }
 }
})

页面加载时

bind
inserted

组件更新时

点击“更新”按钮,更改数据触发组件更新。

update
componentUpdated

卸载组件时

点击“卸载”按钮,数据置空否定判断以触发组件卸载。

unbind

重新安装组件时

点击“安装”按钮,数据赋值肯定判断以触发组件重新安装。

bind
inserted

区别

从案例的运行中,对 5 个钩子函数的触发时机有了初步的认识。存疑的也就是bind和inserted、update和componentUpdated的区别了。

bind 和 inserted

据文档所说,插入父节点时调用 inserted,来个测试

bind: function (el) {
 console.log(el.parentnode) // null
 console.log('bind')
},
inserted: function (el) {
 console.log(el.parentNode) // <div id="app">...</div>
 console.log('inserted')
}

分别在两个钩子函数中输出父节点:bind 时父节点为 null,inserted 时父节点存在。

update 和 componentUpdated

关于这两个的介绍,从字眼上看感觉是组件更新周期有关,继续验证。

update: function (el) {
 console.log(el.innerhtml) // Hello
 console.log('update')
},
componentUpdated: function (el) {
 console.log(el.innerHTML) // Hi
 console.log('componentUpdated')
}

没毛病,update 和 componentUpdated 就是组件更新前和更新后的区别。

结论

文档说的没错……
Demo

最佳实践

根据需求的不同,我们要选择恰当的时机去初始化指令、更新指令调用参数以及释放指令存在时的内存占用等。

比较常见的场景是:用指令包装一些无依赖的第三方库以扩展组件功能。而一个健壮的库通常会包含:初始化实例、参数更新和释放实例资源占用等操作。

Vue.directive('hello', {
 bind: function (el, binding) {
  // 在 bind 钩子中初始化库实例
  // 如果需要使用父节点,也可以在 inserted 钩子中执行
  el.__library__ = new Library(el, binding.value)
 },
 update: function (el, binding) {
  // 模版更新意味着指令的参数可能被改变,这里可以对库实例的参数作更新
  // 酌情使用 update 或 componentUpdated 钩子
  el.__library__.setOptions(Object.assign(binding.oldValue, binding.value))
 },
 unbind: function (el) {
  // 释放实例
  el.__library__.destory()
 }
})

以上是“Vue中钩子函数怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网html频道!

--结束END--

本文标题: Vue中钩子函数怎么用

本文链接: https://www.lsjlt.com/news/75698.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Vue中钩子函数怎么用
    小编给大家分享一下Vue中钩子函数怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在Vue 中可以把一系列复杂的操作包装为一...
    99+
    2022-10-19
  • Vue中callHook钩子函数怎么调用
    这篇“Vue中callHook钩子函数怎么调用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue中callHook钩子函数...
    99+
    2023-07-04
  • Vue中钩子函数有什么用
    这篇文章给大家分享的是有关Vue中钩子函数有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Vue-Router导航守卫有的时候,我们需要通过路由来进行一些操作,比如最常见的...
    99+
    2022-10-19
  • 怎么自定义Vue钩子函数
    这篇文章主要讲解了“怎么自定义Vue钩子函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么自定义Vue钩子函数”吧!useWindowResize这是一个基本的钩子,因为它被用在很多项目...
    99+
    2023-06-29
  • vue钩子函数的作用是什么
    Vue钩子函数的作用是在组件生命周期的不同阶段执行特定的代码逻辑。它们使开发者能够在组件的不同生命周期阶段进行自定义操作,以满足不同...
    99+
    2023-08-08
    vue
  • Vue中callHook钩子函数的作用是什么
    这期内容当中小编将会给大家带来有关Vue中callHook钩子函数的作用是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Vue实例在不同的生命周期阶段,都调用了cal...
    99+
    2022-10-19
  • linux钩子函数怎么调用
    在Linux中,钩子函数可以通过以下几种方式进行调用: 信号处理函数:可以使用signal()函数或sigaction()函数来...
    99+
    2023-10-24
    linux
  • vue的生命周期钩子函数怎么应用
    本篇内容介绍了“vue的生命周期钩子函数怎么应用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在vue中,生命周期钩子函数指的是当生命周期经...
    99+
    2023-06-29
  • Vue中钩子函数的示例分析
    这篇文章主要介绍了Vue中钩子函数的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Vue-Router导航守卫:有的时候,我们需要通...
    99+
    2022-10-19
  • vue中的mounted钩子怎么用
    这篇文章主要为大家展示了“vue中的mounted钩子怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue中的mounted钩子怎么用”这篇文章吧。注:阅读本文需要对vue的patch流程...
    99+
    2023-06-29
  • vue parseHTML函数源码分析start钩子函数
    这篇文章主要讲解了“vue parseHTML函数源码分析start钩子函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue parseHTML函数源码分析start...
    99+
    2023-07-02
  • vue parseHTML函数源码解析start钩子函数
    目录正文platformGetTagNamespace 源码 isForbiddenTag 函数addIfCondition是什么processIfConditions 源...
    99+
    2022-09-27
  • vue中的生命周期及钩子函数
    目录1.什么是生命周期2.vue 的生命周期3.生命周期钩子函数1.什么是生命周期 Vue 实例有一个完整的生命周期,也就是从开始创建、初始化数据、编译模板、挂载 Dom、渲染 &r...
    99+
    2022-11-12
  • vue生命周期钩子函数是什么
    本篇内容主要讲解“vue生命周期钩子函数是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue生命周期钩子函数是什么”吧!vue生命周期钩子函数vue生命周期即为一个组件从出生到死亡的一个完...
    99+
    2023-06-30
  • 使用vue-router钩子函数怎么实现路由守卫
    这篇文章给大家介绍使用vue-router钩子函数怎么实现路由守卫,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。全局钩子函数beforeEach:beforeEach一共接收三个参数,分别是to、from、next;t...
    99+
    2023-06-14
  • vue导航钩子怎么用
    这篇文章将为大家详细讲解有关vue导航钩子怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。导航钩子正如其名,vue-router 提供的导航钩子主要用来拦截导航,让它...
    99+
    2022-10-19
  • vue路由钩子函数是哪几种
    这篇文章主要介绍“vue路由钩子函数是哪几种”,在日常操作中,相信很多人在vue路由钩子函数是哪几种问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue路由钩子函数是哪几种”...
    99+
    2022-10-19
  • vue中的生命周期和钩子函数是什么
    这篇文章主要讲解了“vue中的生命周期和钩子函数是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue中的生命周期和钩子函数是什么”吧!1.什么是生命周期Vue 实例有一个完整的生命周期...
    99+
    2023-06-21
  • vue-router导航钩子怎么用
    这篇文章主要介绍vue-router导航钩子怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!vue-router 提供的导航钩子主要用来拦截导航,让它完成跳转或取消。全局钩子1、...
    99+
    2022-10-19
  • pytorchhook钩子函数的用法
    钩子编程(hooking),也称作“挂钩”,是计算机程序设计术语,指通过拦截软件模块间的函数调用、消息传递、事件传递来修改或扩展操作系统、应用程序或其他软件组...
    99+
    2022-11-13
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作