import { SOURCE_KEY } from '../../constants' import { proxy } from './proxy' import { setData } from './data' import { initProperties } from './properties' export function initState (vm) { const instanceData = JSON.parse(JSON.stringify(vm.$options.mpOptions.data || {})) vm[SOURCE_KEY] = instanceData const propertyDefinition = { get () { return vm[SOURCE_KEY] }, set (value) { vm[SOURCE_KEY] = value } } Object.defineProperties(vm, { data: propertyDefinition, properties: propertyDefinition }) vm.setData = setData initProperties(vm, instanceData) Object.keys(instanceData).forEach(key => { proxy(vm, SOURCE_KEY, key) }) }