一:vue父子組件生命週期鉤子執行前後順序 vue
代碼 :緩存
父組件(A.vue) <template> <div> <div id="example"> <p>Original message: "{{ message }}"</p> <p>Computed reversed message: "{{ reversedMessage }}"</p> <child></child> </div> </div> </template> <script> import child from './B' export default { name: 'A', data () { return { message: 'Hello' } }, components: { child }, computed: { // 計算屬性的getter 默認的 reversedMessage: function () { return this.message.split('').reverse().join('') } }, // 生命週期鉤子 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') } } </script> <style scoped> </style> ------------------------- 子組件(B.vue) <template> <div style="border: 1px solid red;"> <p >This is child component</p> </div> </template> <script> export default { name: 'B', data () { return { } }, // 生命週期鉤子 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') } } </script> <style scoped> </style>
驗證效果: this
總結一: spa
1.父組件掛載前要先進行子組件的建立、掛載! code
二:各個生命週期分別作了什麼事情?component
三:如何觸發update類鉤子? 緩存?blog
四:什麼狀況會執行destroy類鉤子 緩存?生命週期