初始化执行顺序:
卸载顺序:
挂载顺序:
类似于洋葱数据模型
<template>
<div>
{{ count }}
<button @click="changeCount">change count</button>
<button @click="changeIsShow">change isShow</button>
<ChildrenDemo v-if="isShow"></ChildrenDemo>
</div>
</template>
<script>
const ChildrenDemo = {
template: `
<div>
<div>{{count2}}</div>
<button @click="changeCount2">change count2</button>
</div>`,
name: 'Children',
data() {
return {
count2: 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')
},
beforeDestroy() {
console.log('子--beforeDestroy')
},
destroyed() {
console.log('子--destroyed')
},
methods: {
changeCount2() {
this.count2++
},
},
}
export default {
components: {
ChildrenDemo,
},
data() {
return {
count: 0,
isShow: true,
}
},
beforeCreate() {
console.log('父--beforeCreate')
},
created() {
console.log('父--created')
},
beforeMount() {
console.log('父--beforeMount')
},
mounted() {
console.log('父--mounted')
},
beforeUpdate() {
console.log('父--beforeUpdate')
},
updated() {
console.log('父--updated')
},
beforeDestroy() {
console.log('父--beforeDestroy')
},
destroyed() {
console.log('父--destroyed')
},
methods: {
changeCount() {
this.count++
},
changeIsShow() {
this.isShow = !this.isShow
},
},
}
</script>
<style lang="scss" scoped></style>