首页 > 其他 > 详细

Vue 2.0 与 Vue 3.0 响应式原理比较

时间:2021-09-03 18:20:22      阅读:23      评论:0      收藏:0      [点我收藏+]
<!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.0">
    <title>Vue 响应式原理</title>
</head>

<body>
    <div id="msg">
        里斯
    </div>
    <div id="count">
        里斯
    </div>
    <script>
        window.log = console.log
        let data = {
            msg: ‘张三‘,
            count: 10,
        }
        let vm = {}
        // Vue 2.0 响应式原理
        // for (const key in data) {
        //     Object.defineProperty(vm, key, {
        //         enumerable: true,
        //         configurable: true,
        //         get() {
        //             log(‘get‘, data[key])
        //             return data[key]
        //         },
        //         set(newVal) {
        //             log(‘set‘, newVal)
        //             if (data[key] === newVal) return
        //             data[key] = newVal
        //             document.querySelector("#" + key).textContent = newVal
        //         }
        //     })
        // }
        //-----------------------
        // Vue 3.0 响应式原理
        vm = new Proxy(data, {
            get(target, key) {
                log(‘get‘, target[key], key)
                return target[key]
            },
            set(target, key, newVal) {
                log(‘set‘, newVal, key)
                if (target[key] === newVal) return
                target[key] = newVal
                document.querySelector("#" + key).textContent = newVal
            }
        })
        //-----------------------
        vm.msg = ‘李四‘
        vm.count = 10
        log(vm.msg, vm.count)
    </script>
</body>

</html>

Vue 2.0 与 Vue 3.0 响应式原理比较

原文:https://www.cnblogs.com/llyk/p/15223485.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!