vue.js基础学习(生命周期钩子函数)

基础入门:vue.js 生命周期钩子函数

1、生命周期图示 

每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤,比如设置好数据侦听,编译模板,挂载实例到 DOM,以及在数据改变时更新 DOM。在此过程中,它也会运行被称为生命周期钩子的函数。

2、生命周期钩子函数(最常用的是 mountedupdatedunmounted

  • beforeCreate:在组件实例初始化完成之后立即调用。

  • Created:在组件实例处理完所有与状态相关的选项后调用。

  • beforeMount:在组件被挂载之前调用。

  • Mounted:在组件被挂载之后调用。

  • beforeUpdate:在组件即将因为一个响应式状态变更而更新其 DOM 树之前调用。

  • Updated:在组件因为一个响应式状态变更而更新其 DOM 树之后调用。

  • beforeUnmount:在一个组件实例被卸载之前调用。

  • Unmounted:在一个组件实例被卸载之后调用。

  • errorCaptured:在捕获了后代组件传递的错误时调用。

  • renderTracked:在一个响应式依赖被组件的渲染作用追踪后调用。

  • renderTriggered:在一个响应式依赖被组件触发了重新渲染之后调用。

  • Activated:若组件实例是 <KeepAlive> 缓存树的一部分,当组件被插入到 DOM 中时调用。

    这个钩子在服务端渲染时不会被调用。

  • Deactivated:若组件实例是 <KeepAlive> 缓存树的一部分,当组件从 DOM 中被移除时调用。这个钩子在服务端渲染时不会被调用。

  • serverPrefetch:当组件实例在服务器上被渲染之前要完成的异步函数。

  • onMounted():注册一个回调函数,在组件挂载完成后执行。

  • onUpdated():注册一个回调函数,在组件因为响应式状态变更而更新其 DOM 树之后调用。

  • onUnmounted():注册一个回调函数,在组件实例被卸载之后调用。

  • onBeforeMount():注册一个钩子,在组件被挂载之前被调用。

  • onBeforeUpdate():注册一个钩子,在组件即将因为响应式状态变更而更新其 DOM 树之前调用。

  • onBeforeUnmount():注册一个钩子,在组件实例被卸载之前调用。

  • onErrorCaptured():注册一个钩子,在捕获了后代组件传递的错误时调用。

  • onRenderTracked()注册一个调试钩子,当组件渲染过程中追踪到响应式依赖时调用。这个钩子仅在开发模式下可用,且在服务器端渲染期间不会被调用。

  • onRenderTriggered():注册一个调试钩子,当响应式依赖的变更触发了组件渲染时调用。这个钩子仅在开发模式下可用,且在服务器端渲染期间不会被调用。

  • onActivated():注册一个回调函数,若组件实例是 <KeepAlive> 缓存树的一部分,当组件被插入到 DOM 中时调用。这个钩子在服务器端渲染期间不会被调用。

  • onDeactivated():注册一个回调函数,若组件实例是 <KeepAlive> 缓存树的一部分,当组件从 DOM 中被移除时调用。这个钩子在服务器端渲染期间不会被调用。

  • onServerPrefetch():注册一个异步函数,在组件实例在服务器上被渲染之前调用。

部分内容转载自:https://cn.vuejs.org/guide/essentials/lifecycle.html 

 源代码:

App.vue:

<script>
  import Hello from './components/Hello.vue'
  export default{
    data(){
      return{
        isShow:true
      }
    },
    components:{
      Hello
    }
  }

</script>

<template>
  <Hello v-if="isShow"></Hello>
  <button @click="isShow=!isShow">控制</button>
</template>

<style>

</style>

Hello.vue:

<script>
  export default{
    data(){
      return{
        counter:0
      }
    },
    methods:{
      changeCon:function(){
        this.counter=this.counter+1
      }
    },
    beforeCreate(){
      console.log('beforeCreate')
    },
    created(){
      console.log('created')
    },
    beforeMount(){
      console.log('beforeMount')
    },
    mounted(){
      console.log('mounted')
    },
    beforeUpdate(){
      console.log('beforeUpdate')
    },
    updated(){
      console.log('updated')
    },
    beforeUnmount(){
      console.log('beforeUnmount')
    },
    unmounted(){
      console.log('unmounted')
    }
  }
</script>

<template>
  <div>
    <h2>{{counter}}</h2>
    <button @click="changeCon">更改</button>
  </div>
</template>

<style>

</style>

 源代码运行情况:

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是对你提出的前端Vue面试题的回答: 1. Vue.js是一款流行的JavaScript框架,用于构建用户界面。Vue.js的特点是简单易学、灵活性强、性能高、可组合性好等。 2. Vue.js的双向数据绑定是通过使用数据劫持和发布/订阅模式实现的。当数据发生变化时,Vue.js会自动更新视图,反之亦然。 3. Vue.js中的生命周期钩子函数有8个,分别是beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy和destroyed。它们分别在不同的时刻被调用,用于执行一些特定的操作。 4. Vue组件是Vue.js应用程序中的可重用代码块。通过定义一个Vue组件,可以将其作为一个独立的模块来使用。Vue组件通常包括模板、样式和逻辑等内容。 5. Vue.js中的指令是一种用于向DOM元素添加特殊行为的语法。常用的指令有v-if、v-show、v-for、v-bind和v-on等等。 6. Vue.js中的路由是用于管理Vue应用程序中页面之间导航的方式。可以通过Vue Router插件来实现路由功能。 7. Vue.js中的过滤器是一种用于格式化文本的功能。可以通过定义一个过滤器来将数据进行格式化并渲染到HTML中。 8. Vue.js中的计算属性是一种用于动态计算Vue组件的属性值的方式,与方法不同的是,计算属性具有缓存和依赖检测的特点。 9. 在Vue.js中,可以通过Vue.directive()方法来定义自定义指令。自定义指令通常用于扩展Vue.js的功能。 10. Vue.js的单文件组件是一种将模板、样式和逻辑封装在一个文件中的方式,以便于组件的管理和维护。可以通过Vue CLI工具来创建和使用单文件组件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X-ysr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值