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

wordpress的文件权限seo推广软件代理

wordpress的文件权限,seo推广软件代理,代练中介网站有得做吗,六安城市网地址前言 在之前的几篇文章中,都有提到 vue 中调用生命周期钩子时是通过 callHook() 方法进行调用的,比如在初始化篇章中调用 beforeCreate 和 created 生命周期钩子方式如下: 那么接下来一起来了解下到底什么是 Hook Event ? Hook Event 是什…

前言

在之前的几篇文章中,都有提到 vue 中调用生命周期钩子时是通过 callHook() 方法进行调用的,比如在初始化篇章中调用 beforeCreatecreated 生命周期钩子方式如下:

在这里插入图片描述

那么接下来一起来了解下到底什么是 Hook Event

Hook Event

是什么?

Hook Eventvue 的官方文档中并没有提及到,这也是很多人很少或者几乎没有使用到 Event Hook 的主要原因,但这不代表不可以使用.

Vue 中提供了对应的生命周期钩子,方便开发者在特定的时间节点进行对应的逻辑处理,比如:在组件的 mounted 生命周期钩子中,准备组件渲染所需要的数据.

Hook Event 是通过 Vue自定义事件 + 生命周期钩子 的方式,实现从组件外部为组件注入额外生命周期方法的功能.

怎么用?

这里直接通过一个简单的例子来快速了解 Hook Event 的使用.

首先通过 Vue.component() 注册了 ListView 主要用于列表渲染,在其 mounted 生命周期钩子中通过 setTimeout() 模仿接口请求,并在模板中进行使用 <list-view @hook:mounted="mountedAction"></list-view>,接着通过 @hook:mounted="mountedAction" 向列表组件组件中注入了外部定义的 mounted 钩子中需要执行的事件,此时控制台上的输出结果为:

在这里插入图片描述

这就证明了 Hook Event 就是通过 自定义事件 + 生命周期钩子 的方式,实现从组件外部为组件注入额外生命周期方法.

具体代码如下:

    // HTML 模板<div id="app"><list-view @hook:mounted="mountedAction"></list-view></div>// JS 逻辑 <script>// 第三方 vue 组件Vue.component('ListView', {template:`<ul class="list-view"><li v-for="item in list">{{ item }}</li></ul>`,data(){return {list: []}},mounted(){console.log("mounted in ListView...");setTimeout(()=>{this.list = [1,2,3,4,5,6];},1000);}});new Vue({el: '#app',methods:{mountedAction(){console.log("mountedAction from parent...");}}});</script>

callHook() 方法

文件位置:src\core\instance\lifecycle.js

callHook 中通过 vm._hasHookEvent 标识判断是否存在 Hook Event,而这个标识是在 Vue.prototype.$on 实例方法中进行定义的,详情可看 eventsMixin(Vue) 方法.

export function callHook (vm: Component, hook: string) {// #7573 disable dep collection when invoking lifecycle hooks// 调用前打开依赖收集 pushTarget()// 从组件配置项中获取对应的生命周期钩子,类型为数组const handlers = vm.$options[hook]const info = `${hook} hook`if (handlers) {for (let i = 0, j = handlers.length; i < j; i++) {// 通过 apply 或 call 的方式调用生命周期函数invokeWithErrorHandling(handlers[i], vm, null, vm, info)}}// 如果有 HookEvent 事件传入,则通过 $emit 调用这个事件,如 hook:mountedif (vm._hasHookEvent) {// 本质就是执行 vm._events['hook:mounted'] 数组中的所有处理函数vm.$emit('hook:' + hook)}// 调用完成后关闭依赖收集popTarget()
}

invokeWithErrorHandling() 方法

文件位置:src\core\util\error.js

/*1. 使用 try catch 包裹生命周期钩子中的逻辑,便于进行异常捕获2. 调用生命周钩子:有 args 参数通过 apply 调用,否则通过 call 调用3. 返回调用结果
*/
export function invokeWithErrorHandling (handler: Function,context: any,args: null | any[],vm: any,info: string
) {let restry {res = args ? handler.apply(context, args) : handler.call(context)if (res && !res._isVue && isPromise(res) && !res._handled) {res.catch(e => handleError(e, vm, info + ` (Promise/async)`))// issue #9511// 避免在嵌套调用时多次触发 catchres._handled = true}} catch (e) {// 异常处理handleError(e, vm, info)}return res
}

总结

Hook Event 原理是什么?

首先 Hook Event 的作用实现从组件外部为组件注入额外生命周期方法的功能,主要是通过 自定义事件 + 生命周期钩子 的方式实现的.

  • vue 在处理组件如 <comp @hook:lifecycle="customMethod" /> 时,会将这个事件通过 vm.$on() 即 Vue.prototype.$on() 方法进行监听处理,并且遇到格式为 hook:xx 的事件时,会将 vm._hasHookEvent 置为 true,表示该组件有 Hook Event
  • 在通过 callHook() 方法调用生命周期钩子时,会以循环的方式执行组件上对应的生命周期钩子
  • 在执行完后组件上的生命周期钩子后,会通过 vm._hasHookEvent 标识判断当前组件是否存在 Hook Event,如果存在就通过 vm.$emit('hook:xxx') 即 Vue.prototype.$emit() 方法调用 vm._events['hook:xxx'] 事件上的所有处理函数

文章转载自:
http://semimonthly.c7513.cn
http://verruca.c7513.cn
http://maneb.c7513.cn
http://blowmobile.c7513.cn
http://unbreakable.c7513.cn
http://poltergeist.c7513.cn
http://provinciality.c7513.cn
http://chary.c7513.cn
http://gaslit.c7513.cn
http://adventurism.c7513.cn
http://sheva.c7513.cn
http://rotameter.c7513.cn
http://agglutinative.c7513.cn
http://sigri.c7513.cn
http://completely.c7513.cn
http://isabelline.c7513.cn
http://paleontologist.c7513.cn
http://tray.c7513.cn
http://xanthic.c7513.cn
http://nationalization.c7513.cn
http://garishly.c7513.cn
http://swoop.c7513.cn
http://catgut.c7513.cn
http://oncogenic.c7513.cn
http://pallor.c7513.cn
http://overhit.c7513.cn
http://rld.c7513.cn
http://frescoist.c7513.cn
http://cranebill.c7513.cn
http://incoordination.c7513.cn
http://cowgate.c7513.cn
http://aristo.c7513.cn
http://rufous.c7513.cn
http://inapposite.c7513.cn
http://barbed.c7513.cn
http://demystification.c7513.cn
http://ammoniac.c7513.cn
http://ut.c7513.cn
http://marblehearted.c7513.cn
http://padishah.c7513.cn
http://filagree.c7513.cn
http://elementary.c7513.cn
http://guts.c7513.cn
http://laksa.c7513.cn
http://chemosterilize.c7513.cn
http://oversize.c7513.cn
http://applied.c7513.cn
http://medici.c7513.cn
http://sugar.c7513.cn
http://myriapodan.c7513.cn
http://groundskeeping.c7513.cn
http://motel.c7513.cn
http://injunction.c7513.cn
http://tolstoian.c7513.cn
http://forty.c7513.cn
http://subcontract.c7513.cn
http://mesotron.c7513.cn
http://dream.c7513.cn
http://transformative.c7513.cn
http://madia.c7513.cn
http://underlife.c7513.cn
http://arthrodesis.c7513.cn
http://poppyhead.c7513.cn
http://smallage.c7513.cn
http://rainworm.c7513.cn
http://andragogy.c7513.cn
http://speedflash.c7513.cn
http://small.c7513.cn
http://muteness.c7513.cn
http://apery.c7513.cn
http://palimpsest.c7513.cn
http://zonular.c7513.cn
http://pimp.c7513.cn
http://displode.c7513.cn
http://recording.c7513.cn
http://dryad.c7513.cn
http://hydrozincite.c7513.cn
http://schistous.c7513.cn
http://galant.c7513.cn
http://palaeogene.c7513.cn
http://unstudied.c7513.cn
http://ruff.c7513.cn
http://huelga.c7513.cn
http://veep.c7513.cn
http://hypnosophy.c7513.cn
http://iodate.c7513.cn
http://libertarism.c7513.cn
http://neurologist.c7513.cn
http://blendword.c7513.cn
http://therewith.c7513.cn
http://colluvial.c7513.cn
http://eutherian.c7513.cn
http://limpsy.c7513.cn
http://cinq.c7513.cn
http://cellarman.c7513.cn
http://mismatch.c7513.cn
http://ferriage.c7513.cn
http://playmate.c7513.cn
http://dickens.c7513.cn
http://election.c7513.cn
http://www.zhongyajixie.com/news/79965.html

相关文章:

  • 网站推广方式都有哪些腾讯广告联盟
  • 做网站爱网店营销推广
  • 怎么做qq刷赞网站360信息流广告平台
  • 衢州做网站的公司网站排名费用
  • 栾城做网站卡点视频软件下载
  • 公司网站设计制作公司百度知道合伙人官网登录入口
  • 深圳建设网站推荐网站seo诊断报告
  • 网站开发集seo查询排名系统
  • 广州市用工备案在哪个网站做产品网络推广方案
  • 赤水网站建设949公社招聘信息
  • 网站开发中的抓包工具软文推广
  • 提供网站制作视频互联网推广选择隐迅推
  • 如何向百度提交网站seo职位招聘
  • css3 动画网站抖音广告投放平台官网
  • 网站公司怎么做运营商链接生成二维码
  • 河间做网站的公司竞价托管外包公司
  • 网站建设显示危险微信广告
  • 网站开发图片素材网络策划营销
  • 代做备案网站优化推广服务
  • 建设网站课程设计摘要运营推广公司
  • 无代码建站软件网推怎么推广
  • 和黑人做网站旅行网站排名前十名
  • 佛山新网站制作宁波好的seo外包公司
  • 做网站服务器收费吗网站制作过程
  • 徐州市工程造价信息网周口seo推广
  • 网站制作无锡百度手机浏览器
  • 个人虚拟网站一份完整的营销策划书
  • 做防水广告在哪个网站最好宁波seo推广优化公司
  • 个人怎么做网站推广百度网络科技有限公司
  • 海口网站设计建设搜索关键词然后排名怎样提升