1. 程式人生 > 實用技巧 >分別使用jQuery、Vue寫時鐘小例子

分別使用jQuery、Vue寫時鐘小例子

Vue是一個神奇的東西,你只要有一點點html,css,javascript知識就可以使用Vue,而且還很好用。

今天老師上課講了Vue第一節基礎知識,就能用一點點知識用兩種方法寫出時鐘。加上我們之前也用jQuery寫過時鐘,我就想到將它兩的程式碼進行對比。

注:時鐘程式碼均為最原始的時鐘,為了突出其差異性而不對樣式進行細究。

1.jQuery程式碼:

    <script src="./jquery-3.5.0/jquery-3.5.0.js">
    </script>
    <script>
        window.onload=function
(){ function clock() { var date=new Date(); document.getElementById("timeShow").innerText=""+date; } setInterval(clock,1000); } </script> </head> <body> <
div id="timeShow"> </div> </body> </html>

jQuery程式碼需要將dom元素提取出來,然後用間歇呼叫進行動態設定。

2.Vue程式碼一:

    <script src="../js/vue-2.6.12.js"></script>
   
</head>
<body>
    <div id="app">
        {{time}}
    </div>
    <script>
         let vm=new Vue({
             el:
"#app", data:{ msg:'hello', name:'zhangsan', time:new Date() }, methods:{ sayName(){ console.log(this.name); }, } }); // 一般不會在外部呼叫vm //修改msg setInterval(() => { vm.time=new Date(); }, 1000); </script> </body> </html>

Vue程式碼將time放進一個變數time中,每次只要修改data中time的值就可實現時鐘動態變化。這種方法已經比jQuery程式碼感覺清爽了好多。但是就像程式碼中註釋的那樣,一般不會在外部呼叫vm,所以這種方法有待改進。

接著老師又講了生命週期函式(鉤子函式)。於是有了下面的程式碼:

<script src="../js/vue-2.6.12.js"></script>
</head>
<body>
    <div id="app">
        {{time}}
    </div>
    <script>
        new Vue({
            el:"#app",
            data:{
                msg:'hello',
                time:new Date()
            },
            //鉤子函式
            beforeCreate(){
                console.log(this.msg,"beforeCreate");
            },
            created(){
            setInterval(() => {
               this.time= new Date();
            }, 1000);
            }
        });
    </script>
</body>
</html>

程式碼中 beforeCreate()、created()函式都是鉤子函式,除此之外還有beforeMount()、mounted()、beforeUpdated()、updated()、beforeDestory()、destory()函式。這些函式不用呼叫,達到某種程度會自動呼叫。所以不用寫到method裡等待呼叫。這種方式使虛擬dom節點在建立的 時候就能夠間歇修改time值,十分好用。