vue2 是怎么實現響應式的


 今天看了一下vue到底是怎么實現響應式的,發現特別簡單, 就是使用了  Object.defineProperty 這個函數來進行監聽,

這是一個demo

            var vm = {};
            var data = {
                name: 'zhangsan',
                age: 18
            }
            var key , value;
            for ( key in data) {
                (function(key) {
                    
                    Object.defineProperty(vm,key,{
                        get: function() {
                            console.log('get');
                            return data[key];
                        },
                        set: function(newValue){
                            console.log('set');
                            data[key] = newValue;
                        }
                    })
                    
                })(key)
            }

 

第一個參數相當於一個vue實例,第二個參數就是data的key,第三個參數就是一個對象,對象中包含了get和set兩個函數,分別監聽獲取和修改

在控制台獲取和修改值就會打印出get和set

 

 這樣就實現了數據的監聽,可以實現響應式了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM