小程序生命周期钩子函数怎么用,vue钩子函数使用场景

Vue 页面在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做生命周期钩子的函数,开发人员可以在不同阶段添加自己的代码,生命周期详细图例如下:

小程序生命周期钩子函数怎么用,vue钩子函数使用场景

生命周期图例(来源于Vue官网)

beforeCreate钩子函数

Lifecycle主要完成一些属性初始化,Events初始化父元素给子节点绑定的一些事件。

created钩子函数

在这一步,实例已完成以下的配置:数据观测 (data observer),property 属性和方法的运算,watch/event 事件回调。

beforeMount钩子函数

页面中的内容还是vue中的占位符,data中的message信息没有被挂载到BOM节点中,在渲染前该钩子函数是最后一次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取。

mounted钩子函数

实例被挂载后调用,这时 el 被新创建的 vm.$el 替换了。如果根实例挂载到了一个文档内的元素上,当 mounted 被调用时 vm.$el 也在文档内。

注意: mounted 不会保证所有的子组件也都一起被挂载。如果你希望等到整个视图都渲染完毕,可以在 mounted 内部使用 vm.$nextTick

mounted: function () {
  this.$nextTick(function () {
    // 如果你希望等到整个视图都渲染完毕,可以在 mounted 内部使用 vm.$nextTick
  })
}

beforeUpdate钩子函数

数据更新时调用,发生在虚拟 DOM 打补丁之前。这里适合在更新之前访问现有的 DOM,比如手动移除已添加的事件监听器。

updated钩子函数

由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用updated钩子。当这个钩子被调用时,组件 DOM 已经更新,所以你现在可以执行依赖于 DOM 的操作。然而在大多数情况下,你应该避免在此期间更改状态。如果要相应状态改变,通常最好使用计算属性或 watcher 取而代之。

注意: updated 不会保证所有的子组件也都一起被重绘。如果你希望等到整个视图都重绘完毕,可以在 updated 里使用 vm.$nextTick:

updated: function () {
  this.$nextTick(function () {
    //如果你希望等到整个视图都重绘完毕,可以在 updated 里使用 vm.$nextTick:
  })
}

beforeDestroy钩子函数

实例销毁之前调用。在这一步,实例仍然完全可用。

destroyed钩子函数

实例销毁后调用。该钩子被调用后,对应 Vue 实例的所有指令都被解绑,所有的事件监听器被移除,所有的子实例也都被销毁。

注意: 所有的生命周期钩子自动绑定 this上下文到实例中,因此你可以访问数据,对 property属性 和方法进行运算。这意味着你不能使用箭头函数来定义一个生命周期的方法 (例如 created: () => this.fetchTodos())。这是因为箭头函数绑定了父级上下文,因此 获取的this与你期待获取的Vue 实例不同。

vue中有哪些常用的钩子函数

vue中有哪些常用的钩子函数:

1.生命周期

2.路由钩子

3.keep-alive两个钩子( activated()  deactivated())

4.自定义指令

生命周期

1.beforeCreate

在实例初始化之后,数据观测和事件配置之前被调用 此时data 和 methods 以及页面的DOM结构都没有初始化  什么都做不了

2.created

 在实例创建完成后被立即调用此时data 和 methods已经可以使用  但是页面还没有渲染出来

3.beforeMount

在挂载开始之前被调用  此时页面上还看不到真实数据 只是一个模板页面而已

4.mountedel

被新创建的vm.$el替换,并挂载到实例上去之后调用该钩子。  数据已经真实渲染到页面上  在这个钩子函数里面我们可以使用一些第三方的插件

5.beforeUpdate

数据更新时调用,发生在虚拟DOM打补丁之前。  页面上数据还是旧的

6.updated

由于数据更改导致的虚拟DOM重新渲染和打补丁,在这之后会调用该钩子。 页面上数据已经替换成最新的

7.beforeDestroy    

实例销毁之前调用

8.destroyed            

实例销毁后调用

vue-router 路由钩子函数(导航守卫):

路由钩子函数有三种:

全局钩子: beforeEach(全局前置守卫)、 afterEach(全局后置钩子)

路由独享的守卫(单个路由里面的钩子): beforeEnter

组件路由:beforeRouteEnter、 beforeRouteUpdate、 beforeRouteLeave

路由导航守卫:–beforeEach(全局前置守卫)

小程序生命周期钩子函数怎么用,vue钩子函数使用场景

keep-alive

keep-alive有两个钩子函数:

actived: 在激活的时候的使用,第一次激活实在mounted之后执行

dectived:在失活的时候使用。

除此之外,keep-alive还提供了三个属性

1.include :记录的是哪些组件可以被缓存

2.exclude:  记录了哪些组件不能被缓存

3.max: 记录的是可以缓存组件的最大数量

vue的钩子函数有路由钩子函数和生命周期钩子函数。生命周期钩子函数有八个,有创建前后,挂载前后,更新前后,销毁前后,在这八个钩子函数中常用的是创建后和挂载完成用的比较多,基本上都能满足大部分的业务了。

路由钩子函数有全局钩子,单个路由里面的钩子,组件级路由钩子。

版权声明:【小程序生命周期钩子函数怎么用,vue钩子函数使用场景】版权归原作者所有,本文由作者:【王鹏(python工程师)】用户自发贡献上传,该文观点仅代表作者本人,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任,如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至举报,一经查实,本站将立刻删除,如若转载,请注明出处:https://www.intostarry.com/jrzy/294.html

(0)
上一篇 2023年10月27日 23:08:57
下一篇 2023年10月28日 23:16:28

相关推荐

发表回复

登录后才能评论