vue.js实战——vue 实时时间

created:实例创建完成后调用,此阶段完成了数据的观测等,但尚未挂载,$el还不可用,需要初始化处理一些数据时会比较有用。

mounted:el挂载到实例上后调用,一般我们的第一个业务逻辑会在这里开始。

beforeDestroy:实例销毁之前调用,主要解绑一些使用addEventListener监听的事件等。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>实时时间</title>
    <script src="vue.js"></script>
</head>
<body>
    <div id="app">
        {{date}}
    </div>
    <script>
        //自个写的
    /*     new Vue({
            el:"#app",
            data:{
                date:''
            },
            mounted:function(){
                var self=this;
                var time=setInterval(function(){
                    self.date=new Date();
                },1000);
            },
            beforeDestory:function(){
                clearInterval(time);
            }
        }) */
        //标准代码
        var app=new Vue({
            el:'#app',
            data:{
                date:new Date()
            },
            mounted:function(){ //el挂载到实例上调用,一般我们第一个业务逻辑会在这里开始
                var _this=this;
                this.timer=setInterval(function(){
                    _this.date=new Date();
                },1000);
            },
            beofreDestory:function(){
                if(this.timer){
                    clearInterval(this.timer);
                }
            }
        })
    </script>
</body>
</html>
对比之下自己写的代码真的是,考虑的太少了,都没有判断setInterval对象是否存在
posted @ 2019-02-20 10:56  聂小恶  阅读(1131)  评论(0编辑  收藏  举报