export const basic = Behavior({ methods: { $emit(name, detail, options) { this.triggerEvent(name, detail, options); }, set(data) { this.setData(data); return new Promise((resolve) => wx.nextTick(resolve)); }, // high performance setData setView(data, callback) { const target = {}; let hasChange = false; Object.keys(data).forEach((key) => { if (data[key] !== this.data[key]) { target[key] = data[key]; hasChange = true; } }); if (hasChange) { return this.setData(target, callback); } return callback && callback(); }, }, });