1. 程式人生 > >(三)Vue生命週期

(三)Vue生命週期

1. vue物件的生命週期

  1). 初始化顯示

    * beforeCreate()

    * created()

    * beforeMount()

    * mounted()

  2). 更新狀態

    * beforeUpdate()

    * updated()

  3). 銷燬vue例項: vm.$destory()

    * beforeDestory()

    * destoryed()

2. 常用的生命週期方法

  created()/mounted(): 傳送ajax請求, 啟動定時器等非同步任務

  beforeDestory(): 做收尾工作, 如: 清除定時器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>生命週期</title>
</head>
<body>
<!--
1. vue物件的生命週期
  1). 初始化顯示
    * beforeCreate()
    * created()
    * beforeMount()
    * mounted()
  2). 更新狀態
    * beforeUpdate()
    * updated()
  3). 銷燬vue例項: vm.$destory()
    * beforeDestory()
    * destoryed()
2. 常用的生命週期方法
  created()/mounted(): 傳送ajax請求, 啟動定時器等非同步任務
  beforeDestory(): 做收尾工作, 如: 清除定時器
-->

<div id="test">
    <button @click="destroyVue">destory vue</button>
    <p v-if="isShow">123456</p>
</div>

<script type="text/javascript" src="../js/vue.js"></script>
<script type="text/javascript">
    new Vue({
        el: '#test',
        data: {
            isShow: true
        },
        mounted(){
            //頁面渲染的時候,
            this.IntervalId = setInterval(()=>{
                console.log("-----");
                this.isShow = !this.isShow;
            },500)
        },
        beforeDestroy(){
                //銷燬之前清除定時器
            clearInterval(this.IntervalId)
        },
        methods:{
            destroyVue(){
                this.$destroy();//銷燬VM物件
            }
        }

    })


</script>
</body>
</html>