Vue -- 數據監聽

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="x-ua-compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Title</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
</head>
<body>
<div id="app">
    {{name}}
    {{hobby}}
    {{xuge_obj}}

    <button @click="my_click">點擊改變數據</button>
</div>
<script>
    const app = new Vue({
        el: "#app",
        data: {
            name: "旭哥",
            hobby: ["唱歌", "跳舞", "請客吃飯"],
            xuge_obj: {
                obj1: "王鐵錘",
                obj2: "李剛蛋"
            }
        },
        methods: {
            my_click: function () {
                // this.name = "病變"
                // this.hobby.push("燙頭")
                // this.hobby[0] = "狼嚎"
                // console.log(this.hobby)
                // 用下面這種方法改變數據裏的值
                // app.$set(this.hobby, 0, "狼嚎")
                this.xuge_obj.obj1 = "小粉嫩"
            }
        },
        watch: {
            name: {
                handler: function (val, oldVal) {
                    console.log(val)
                    console.log(oldVal)
                }
            },
            // push改變數據的長度的時候 能夠監聽到數據改變 新舊值是是同樣的
            // 不能監聽到數據裏值的改變 深度監聽也不能夠 除非用$set
            hobby: {
                handler: function (val, oldVal) {
                    console.log(val)
                    console.log(oldVal)
                },
                // deep: true
            },
            xuge_obj: {
                handler: function (val, oldVal) {
                    console.log(val)
                    console.log(oldVal)
                },
                deep: true
            }
        }
    })
</script>
</body>
</html>

   -  push:html

    改變數據的長度的時候  能夠監聽到數據改變, 新舊值是同樣的vue

    不能監聽到數據裏面值的改變, 深度監聽也不能夠npm

  - $set:app

    改變數據的長度的時候, 能夠監聽到數據改變,新舊值是不一樣的,能夠監聽到數據裏的值的變化函數

  - watch:ui

    該屬性是在綁定   id= app的時候的實例化的Vue中的參數, 該參數對應的值是一個對象,該對象中this

    包含的是須要被監聽的   data 中存在且被定義了的對象,該對象中包含的參數有: handler,deep;spa

 

  -handler:   對應函數,該函數,是對被監聽屬性的新舊值進行操做;.net

    -參數解釋:code

      -val : 新值

      -oldval: 舊值

    - deep:是否開啓深度監聽

相關文章
相關標籤/搜索