# setData

# 优化

优化的setData,多次调用将合并成一次执行

import { wxue, setData } from 'wxue'

wxue({
  onLoad(options) {
    setData(this, {a: 1})
    setData(this, {a: 2})
    setData(this, {b: 2})
    setData(this, {'c.d': 2})
    setData(this, {'c.e': 2})
    /**
     * 只调用一次,相当于
     * this.setData({
     *  a: 2,
     *  b: 2,
     *  c: {
     *    d: 2,
     *    e: 2
     *  }
     * })
     * 
     */
  },
})

# 劫持

this.data进行劫持,当设置data的属性时,会调用setData而不是直接设置进行赋值。

import { wxue, setData } from 'wxue'

wxue({
  onLoad(options) {
    this.data.a = 1
    this.data.a = 2
    this.data['c.d'] = 2
    this.data['c.e'] = 2
    /**
     * 只调用一次,相当于
     * this.setData({
     *  a: 2,
     *  b: 2,
     *  c: {
     *    d: 2,
     *    e: 2
     *  }
     * })
     * 
     */
  },
})

警告

目前还不支持深度劫持,将在后续版本支持。