深刻浅出vue原理(4、computed实现)

vue原理系列

vue原理一vue

vue原理二bash

vue原理三app

vue原理四函数

computed实现

在vue参数里传入post

<div id="app">
  <p>a.a: {{ a.a }}</p>
  <p>b: {{ b }}</p>
  <p>{{ add }}</p>
</div>

var vm = new Vue({
    el: '#app',
    data: {
      a: { a: '1' },
      b: '2'
    },
    computed: {
      add() {
        return this.a.a + this.b;
      }
    }
});
复制代码
function Vue(options) {
    忽略...
    initCumputed.call(this);

  }

  function initCumputed() {
    let vm = this;
    // 拿到computed属性
    let computed = this.$options.computed;
    Object.keys(computed).forEach(k => {
      // debugger;
      Object.defineProperty(vm, k, {
        get:
          typeof computed[k] === 'function' ? computed[k] : computed[k].get, //判断是函数仍是对象
        set() {}
      });
    });
  }
复制代码
相关文章
相关标签/搜索