本文共 744 字,大约阅读时间需要 2 分钟。
不废话,直接上源码
function vue() { this.$data = { aaa: 1 }; this.el = document.getElementById('app'); this.virtualdom = ''; this.observe(this.$data); this.render()}vue.prototype.observe = function (obj) { var self = this; var value; for (var key in obj) { value = obj[key]; if (typeof value == 'object') { this.observe(value) } else { Object.defineProperty(this.$data, key, { get: function () { // 收集依赖 return value }, set: function (newValue) { // 调用notify(), 进行diff运算,调用render(), value = newValue; self.render() } }) } }}vue.prototype.render = function () { this.virtualdom = 'i am ' + this.$data.aaa; this.el.innerHTML = this.virtualdom;}
转载地址:http://remsi.baihongyu.com/