1. 程式人生 > 其它 >Vue 常用的生命週期鉤子

Vue 常用的生命週期鉤子

mounted:一般做 初始化操作 如:傳送 ajax 請求、啟動定時器、繫結自定義事件、訂閱訊息

beforeDestro:一般做 收尾工作 如:清除定時器、解綁自定義事件、取消訂閱訊息


例項

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>常用的生命週期鉤子</title>
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
<div id="root">
    <h3 :style="{opacity}">你好</h3>
    <button @click="stop">不要閃爍了</button>
</div>

</body>

<script type="text/javascript">
    new Vue({
        el: '#root',
        data: {
            opacity: 1
        },
        methods: {
            stop() {
                // 銷燬 Vue例項
                this.$destroy()
            }
        },
        // Vue 完成模板的解析並把初始的真實的DOM元素放入頁面後(掛載完畢)呼叫 mounted
        mounted() {
            this.timer = setInterval(() => {
                this.opacity -= 0.01
                if (this.opacity <= 0) this.opacity = 1
            }, 16)
        },
        // 在 Vue例項 銷燬之前被呼叫,一般做收尾工作
        beforeDestroy() {
            clearInterval(this.timer)
        }
    })
</script>
</html>

關於銷燬 Vue 例項

  • 銷燬後自定義事件會失效,但原生 DOM 事件依然有效
  • 一般不會在 beforeDestro 操作資料,即使操作資料,也不會觸發更新流程了