vue3学习之生命周期

学习Vue3 第十二章(认识组件&Vue3生命周期)

子组建

<template>
    <div>HelloWorld</div>
    <div ref="div">{{ str }}</div>
    <button @click="change">修改</button>
    <hr/>
</template>
<script lang="ts" setup>
import { ref, onBeforeMount, onMounted, onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted } from 'vue'


const str = ref<string>("小满")
const div = ref<HTMLDivElement>()
const change = () => {
    str.value = '大满'
}

// beforeCreate created setup语法糖模式是没有这两个生命周期的 setup 去代替
console.log('setup', div.value)  // undefined
// 创建 onBeforeMount 读不到dom ------ onMounted 可以读取dom
onBeforeMount(() => {
    console.log("创建之前", div.value)  // undefined
})
onMounted(() => {
    console.log("创建完成", div.value)  // <div>小满</div>
})
// 更新 onBeforeUpdate 获取的是更新之前的dom ------ onUpdated 获取的是更新之后的dom
onBeforeUpdate(() => {
    console.log("更新组建之前", div.value?.innerText) // 小满
})
onUpdated(() => {
    console.log("更新组建完成", div.value?.innerText)  // 大满
})
// 销毁
onBeforeUnmount(() => {
    console.log("销毁之前")
})
onUnmounted(() => {
    console.log("销毁完成")
})
</script>

父组建

<template>
    <HelloWord v-if="flag"></HelloWord>
    <button @click="flag=!flag">创建 --- 销毁</button>
</template>

<script setup lang="ts">
import HelloWord from "./components/HelloWorld.vue"
import { ref } from "vue";

const flag = ref<Boolean>(true)
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值