千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 理解vue3 onCreated

理解vue3 onCreated

来源:千锋教育
发布人:xqq
时间: 2023-11-24 20:38:09 1700829489

Vue3是Vue.js的下一个主要版本,它主要引入了Composition API,这阅读Vue3源码和创建高效,更容易组合的代码。其中重要的一个Hooks就是onCreated。

一、概述

onCreated与Vue2.x中的created类似,作为组件实例的一个生命周期钩子函数,当组件实例被创建时触发。在组件初始化阶段,我们可以在onCreated中进行一些基本的组件设计,比如初始化组件的数据、方法和组件的生命周期,等等。而在这个时候组件还没有被挂载到DOM上。


import { onCreated } from 'vue'
export default {
  onCreated() {
    console.log('Component created');
  }
}

二、数据初始化

Vue3中的数据驱动与Vue2.x相比有了很大的变化。在组件创建阶段,我们通常需要进行一些组件数据的初始化。这时我们可以利用onCreated钩子函数,在组件创建时进行数据的初始化赋值。


import { onCreated, reactive } from 'vue'

export default {
  setup() {
    const data = reactive({
        name: 'Jack',
        age: 18
    })

    onCreated(() => {
        console.log(name: ${data.name}, age: ${data.age})
    })

    return {
        data
    }
  }
}

三、调用方法

除了数据初始化,我们还可以在onCreated中定义一些组件方法,通过组件实例从而调用这些方法。在组件这个生命周期中调用方法可能会在其它方法执行期间触发,因此可以在onCreated中定义一个方法引用,在其它方法中可以随时使用该引用。


import { onCreated, ref } from 'vue'

export default {
    setup() {
        const title = ref("Vue3 onCreated")
    
        function sayHello(name) {
            console.log(${name} say: Hello World);
        }
    
        onCreated(() => {
            sayHello('Jack')
        })
    
        return {
            title
        }
    }
}

四、组件生命周期

onCreated是组件生命周期的一部分,在组件创建时自动调用。在Vue3中,onCreated代替了Vue2.x中的created生命周期钩子函数。它是组件在Vue3中的第一个被调用的钩子函数。

Vue3组件的生命周期函数按照顺序依次为:onCreated、onMounted、onUpdated、onBeforeUnmount、onUnmounted。


import { onCreated, onMounted } from 'vue'

export default {
  setup() {
    onCreated(() => {
        console.log('Component created');
    })

    onMounted(() => {
        console.log('Component mounted');
    })
  }
}

五、总结

onCreated作为Vue3的生命周期函数之一,具有以下优点:

提供了组件实例中进行基本的组件设计和数据初始化的机会; 在组件创建阶段调用,避免组件挂载时带来的性能消耗,并且可以为其它生命周期函数提供数据基础; 在组件创建阶段提供了记录日志或调试的机会,方便开发调试。

在实际开发中,我们可以灵活地使用onCreated这个生命周期函数,利用它来初始化数据、调用其他方法,以及检查组件实例的状态。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT