@tarojs/with-weapp 3.4.4 → 3.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/lifecycle.ts","../src/utils.ts","../src/diff.js","../src/clone.js","../src/index.ts"],"sourcesContent":["interface LifecycleMap {\n [key: string]: string[]\n}\n\nexport enum TaroLifeCycles {\n WillMount = 'componentWillMount',\n DidMount = 'componentDidMount',\n DidShow = 'componentDidShow',\n DidHide = 'componentDidHide',\n WillUnmount = 'componentWillUnmount'\n}\n\nexport const lifecycleMap: LifecycleMap = {\n [TaroLifeCycles.WillMount]: ['created'],\n [TaroLifeCycles.DidMount]: ['attached'],\n [TaroLifeCycles.DidShow]: ['onShow'],\n [TaroLifeCycles.DidHide]: ['onHide'],\n [TaroLifeCycles.WillUnmount]: ['detached', 'onUnload']\n}\n\nexport const lifecycles = new Set<string>(['ready'])\n\nfor (const key in lifecycleMap) {\n const lifecycle = lifecycleMap[key]\n lifecycle.forEach(l => lifecycles.add(l))\n}\n\nexport const uniquePageLifecycle = [\n 'onPullDownRefresh',\n 'onReachBottom',\n 'onShareAppMessage',\n 'onShareTimeline',\n 'onAddToFavorites',\n 'onPageScroll',\n 'onResize',\n 'onTabItemTap'\n]\n\nexport const appOptions = [\n 'onLaunch',\n 'onShow',\n 'onHide',\n 'onError',\n 'onPageNotFound',\n 'onUnhandledRejection',\n 'onThemeChange'\n]\n","/**\n * Simple bind, faster than native\n */\nexport function bind (fn /*: Function */, ctx /*: Object */) /*: Function */ {\n if (!fn) return false\n\n function boundFn (a) {\n const l /*: number */ = arguments.length\n return l ? (l > 1 ? fn.apply(ctx, arguments) : fn.call(ctx, a)) : fn.call(ctx)\n }\n\n // record original fn length\n boundFn._length = fn.length\n return boundFn\n}\n\nexport function isEqual (obj1, obj2) {\n return JSON.stringify(obj1) === JSON.stringify(obj2)\n}\n\nexport function noop (..._: unknown[]) {\n //\n}\n\nconst sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n}\n\nexport function proxy (target, sourceKey: string, key: string) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n }\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val\n }\n Object.defineProperty(target, key, sharedPropertyDefinition)\n}\n\nexport function safeGet (obj, propsArg, defaultValue?) {\n if (!obj) {\n return defaultValue\n }\n let props, prop\n if (Array.isArray(propsArg)) {\n props = propsArg.slice(0)\n }\n if (typeof propsArg === 'string') {\n props = propsArg.replace(/\\[(.+?)\\]/g, '.$1')\n props = props.split('.')\n }\n if (typeof propsArg === 'symbol') {\n props = [propsArg]\n }\n if (!Array.isArray(props)) {\n throw new Error('props arg must be an array, a string or a symbol')\n }\n while (props.length) {\n prop = props.shift()\n if (!obj) {\n return defaultValue\n }\n obj = obj[prop]\n if (obj === undefined) {\n return defaultValue\n }\n }\n return obj\n}\n\nexport function safeSet (obj, props, value) {\n if (typeof props === 'string') {\n props = props.replace(/\\[(.+?)\\]/g, '.$1')\n props = props.split('.')\n }\n if (typeof props === 'symbol') {\n props = [props]\n }\n const lastProp = props.pop()\n if (!lastProp) {\n return false\n }\n let thisProp\n while ((thisProp = props.shift())) {\n if (typeof obj[thisProp] === 'undefined') {\n obj[thisProp] = {}\n }\n\n // 直接按路径修改 this.state 可能会导致 nextProps 也被修改\n // 因此按路径寻找时,每一层都复制一遍\n if (Array.isArray(obj[thisProp])) {\n obj[thisProp] = [...obj[thisProp]]\n } else if (typeof obj[thisProp] === 'object') {\n obj[thisProp] = { ...obj[thisProp] }\n }\n\n obj = obj[thisProp]\n if (!obj || typeof obj !== 'object') {\n return false\n }\n }\n obj[lastProp] = value\n return true\n}\n\nexport function report (msg) {\n console.warn('[Taro Convert Warning] ' + msg)\n}\n\nexport const unsupport = new Map([\n ['onError', '不支持 App 的 onError 生命周期方法。'],\n ['onPageNotFound', '不支持 App 的 onPageNotFound 生命周期方法。'],\n ['onUnhandledRejection', '不支持 App 的 onUnhandledRejection 生命周期方法。'],\n ['onThemeChange', '不支持 App 的 onThemeChange 生命周期方法。'],\n ['moved', '不支持自定义组件的 moved 生命周期。'],\n ['externalClasses', '不支持自定义组件的 externalClasses 功能。'],\n ['relations', '不支持自定义组件的 relations 功能。'],\n ['options', '不支持自定义组件的 options 功能。'],\n ['definitionFilter', '不支持自定义组件的 definitionFilter 功能。'],\n ['selectComponent', 'selectComponent 方法产生不到目标效果,请使用 React 的 ref 进行重构。'],\n ['selectAllComponents', 'selectAllComponents 方法产生不到目标效果,请使用 React 的 ref 进行重构。'],\n ['selectOwnerComponent', 'selectOwnerComponent 方法产生不到目标效果,请使用 React 语法重构。'],\n ['groupSetData', 'groupSetData 方法产生不到目标效果,请使用 React 语法重构。']\n])\n\nexport function flattenBehaviors (behavior, behaviorMap: Map<string, any[]>) {\n if (typeof behavior === 'string') {\n return report(`不支持使用内置 Behavior: [${behavior}]`)\n }\n const subBehaviors = behavior.behaviors\n if (subBehaviors?.length) {\n subBehaviors.forEach(subBehavior => flattenBehaviors(subBehavior, behaviorMap))\n }\n\n Object.keys(behavior).forEach(key => {\n // 不支持的属性\n if (unsupport.has(key)) {\n const advise = unsupport.get(key)\n return report(advise)\n }\n\n if (behaviorMap.has(key)) {\n const list = behaviorMap.get(key)!\n const value = behavior[key]\n list.push(value)\n }\n })\n}\n","/*eslint-disable*/\nconst ARRAYTYPE = '[object Array]'\nconst OBJECTTYPE = '[object Object]'\nconst FUNCTIONTYPE = '[object Function]'\n\nexport function diff (current, pre) {\n const result = {}\n syncKeys(current, pre)\n _diff(current, pre, '', result)\n return result\n}\n\nfunction syncKeys (current, pre) {\n if (current === pre) return\n const rootCurrentType = type(current)\n const rootPreType = type(pre)\n if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {\n // if(Object.keys(current).length >= Object.keys(pre).length){\n for (let key in pre) {\n const currentValue = current[key]\n if (currentValue === undefined) {\n current[key] = null\n } else {\n syncKeys(currentValue, pre[key])\n }\n }\n // }\n } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {\n if (current.length >= pre.length) {\n pre.forEach((item, index) => {\n syncKeys(current[index], item)\n })\n }\n }\n}\n\nfunction _diff (current, pre, path, result) {\n if (current === pre) return\n const rootCurrentType = type(current)\n const rootPreType = type(pre)\n if (rootCurrentType == OBJECTTYPE) {\n if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {\n setResult(result, path, current)\n } else {\n for (let key in current) {\n const currentValue = current[key]\n const preValue = pre[key]\n const currentType = type(currentValue)\n const preType = type(preValue)\n if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {\n if (currentValue != pre[key]) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n }\n } else if (currentType == ARRAYTYPE) {\n if (preType != ARRAYTYPE) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n if (currentValue.length < preValue.length) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n currentValue.forEach((item, index) => {\n _diff(item, preValue[index], (path == '' ? '' : path + '.') + key + '[' + index + ']', result)\n })\n }\n }\n } else if (currentType == OBJECTTYPE) {\n if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n for (let subKey in currentValue) {\n _diff(currentValue[subKey], preValue[subKey], (path == '' ? '' : path + '.') + key + '.' + subKey, result)\n }\n }\n }\n }\n }\n } else if (rootCurrentType == ARRAYTYPE) {\n if (rootPreType != ARRAYTYPE) {\n setResult(result, path, current)\n } else {\n if (current.length < pre.length) {\n setResult(result, path, current)\n } else {\n current.forEach((item, index) => {\n _diff(item, pre[index], path + '[' + index + ']', result)\n })\n }\n }\n } else {\n setResult(result, path, current)\n }\n}\n\nfunction setResult (result, k, v) {\n if (type(v) != FUNCTIONTYPE) {\n result[k] = v\n }\n}\n\nfunction type (obj) {\n return Object.prototype.toString.call(obj)\n}\n","const json = JSON\n\nexport const clone = (obj) => json.parse(stringify(obj))\n\nconst isArray = Array.isArray || function (x) {\n return {}.toString.call(x) === '[object Array]'\n}\n\nconst objectKeys = Object.keys || function (obj) {\n const has = Object.prototype.hasOwnProperty || function () { return true }\n const keys = []\n for (const key in obj) {\n if (has.call(obj, key)) keys.push(key)\n }\n return keys\n}\n\nfunction stringify (obj, opts) {\n if (!opts) opts = {}\n if (typeof opts === 'function') opts = { cmp: opts }\n let space = opts.space || ''\n if (typeof space === 'number') space = Array(space + 1).join(' ')\n const cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false\n const replacer = opts.replacer || function (key, value) { return value }\n\n const cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n const aobj = { key: a, value: node[a] }\n const bobj = { key: b, value: node[b] }\n return f(aobj, bobj)\n }\n }\n })(opts.cmp)\n\n const seen = []\n return (function stringify (parent, key, node, level) {\n const indent = space ? ('\\n' + new Array(level + 1).join(space)) : ''\n const colonSeparator = space ? ': ' : ':'\n\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON()\n }\n\n node = replacer.call(parent, key, node)\n\n if (node === undefined) {\n return\n }\n if (typeof node !== 'object' || node === null) {\n return json.stringify(node)\n }\n if (isArray(node)) {\n const out = []\n for (let i = 0; i < node.length; i++) {\n const item = stringify(node, i, node[i], level + 1) || json.stringify(null)\n out.push(indent + space + item)\n }\n return '[' + out.join(',') + indent + ']'\n } else {\n if (seen.indexOf(node) !== -1) {\n if (cycles) return json.stringify('__cycle__')\n throw new TypeError('Converting circular structure to JSON')\n } else seen.push(node)\n\n const keys = objectKeys(node).sort(cmp && cmp(node))\n const out = []\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n const value = stringify(node, key, node[key], level + 1)\n\n if (!value) continue\n\n const keyValue = json.stringify(key) +\n colonSeparator +\n value\n\n out.push(indent + space + keyValue)\n }\n seen.splice(seen.indexOf(node), 1)\n return '{' + out.join(',') + indent + '}'\n }\n })({ '': obj }, '', obj, 0)\n}\n","import { ComponentLifecycle, eventCenter, nextTick } from '@tarojs/taro'\nimport { getCurrentInstance } from '@tarojs/runtime'\nimport { lifecycles, lifecycleMap, TaroLifeCycles, uniquePageLifecycle, appOptions } from './lifecycle'\nimport { bind, isEqual, safeGet, safeSet, report, unsupport, flattenBehaviors } from './utils'\nimport { diff } from './diff'\nimport { clone } from './clone'\n\ntype Observer = (newProps, oldProps, changePath: string) => void\ntype Func = (...args: any[]) => void\n\ninterface ObserverProperties {\n name: string,\n observer: string | Observer\n}\n\ninterface ComponentClass<P = Record<string, any>, S = Record<string, any>> extends ComponentLifecycle<P, S> {\n new (props: P)\n externalClasses: Record<string, unknown>\n defaultProps?: Partial<P>\n _observeProps?: ObserverProperties[]\n observers?: Record<string, Func>\n}\n\ninterface WxOptions {\n methods?: {\n [key: string]: Func;\n }\n properties?: Record<string, Record<string, unknown> | Func>\n props?: Record<string, unknown>\n data?: Record<string, unknown>,\n observers?: Record<string, Func>\n lifetimes?: Record<string, Func>\n behaviors?: any[]\n}\n\nfunction defineGetter (component, key: string, getter: string) {\n Object.defineProperty(component, key, {\n enumerable: true,\n configurable: true,\n get: () => {\n if (getter === 'props') {\n return component.props\n }\n return {\n ...component.state,\n ...component.props\n }\n }\n })\n}\n\nfunction isFunction (o): o is Func {\n return typeof o === 'function'\n}\n\nexport default function withWeapp (weappConf: WxOptions, isApp = false) {\n if (typeof weappConf === 'object' && Object.keys(weappConf).length === 0) {\n report('withWeapp 请传入“App/页面/组件“的配置对象。如果原生写法使用了基类,请将基类组合后的配置对象传入,详情请参考文档。')\n }\n return (ConnectComponent: ComponentClass<any, any>) => {\n const behaviorMap = new Map<string, any[]>([\n ['properties', []],\n ['data', []],\n ['methods', []],\n ['created', []],\n ['attached', []],\n ['ready', []],\n ['detached', []]\n ])\n const behaviorProperties = {}\n if (weappConf.behaviors?.length) {\n const { behaviors } = weappConf\n behaviors.forEach(behavior => flattenBehaviors(behavior, behaviorMap))\n\n const propertiesList = behaviorMap.get('properties')!\n if (propertiesList.length) {\n propertiesList.forEach(property => {\n Object.assign(behaviorProperties, property)\n })\n Object.keys(behaviorProperties).forEach(propName => {\n const propValue = behaviorProperties[propName]\n if (!weappConf.properties) {\n weappConf.properties = {}\n }\n if (!weappConf.properties.hasOwnProperty(propName)) {\n if (propValue && typeof propValue === 'object' && propValue.value) {\n propValue.value = clone(propValue.value)\n }\n weappConf.properties[propName] = propValue\n }\n })\n }\n }\n\n class BaseComponent<P = Record<string, any>, S = Record<string, any>> extends ConnectComponent {\n private _observeProps: ObserverProperties[] = []\n\n // mixins 可以多次调用生命周期\n private willMounts: Func[] = []\n\n private didMounts: Func[] = []\n\n private didHides: Func[] = []\n\n private didShows: Func[] = []\n\n private willUnmounts: Func[] = []\n\n private eventDistoryList: Func[] = []\n\n private current: any = getCurrentInstance()\n\n public observers?: Record<string, Func>\n\n public taroGlobalData: Record<any, any> = Object.create(null)\n\n public data: any\n\n constructor (props) {\n super(props)\n this.state = this.state || {}\n this.init(weappConf)\n defineGetter(this, 'data', 'state')\n defineGetter(this, 'properties', 'props')\n }\n\n private initProps (props: any) {\n for (const propKey in props) {\n if (props.hasOwnProperty(propKey)) {\n const propValue = props[propKey]\n // propValue 可能是 null, 构造函数, 对象\n if (propValue && !isFunction(propValue)) {\n if (propValue.observer) {\n this._observeProps.push({\n name: propKey,\n observer: propValue.observer\n })\n }\n }\n }\n }\n }\n\n private init (options: WxOptions) {\n // 处理 Behaviors\n if (options.behaviors?.length) {\n for (const [key, list] of behaviorMap.entries()) {\n switch (key) {\n case 'created':\n case 'attached':\n case 'detached':\n case 'ready':\n list.forEach(fn => this.initLifeCycles(key, fn))\n break\n }\n }\n }\n\n for (const confKey in options) {\n // 不支持的属性\n if (unsupport.has(confKey)) {\n const advise = unsupport.get(confKey)\n report(advise)\n }\n\n const confValue = options[confKey]\n\n switch (confKey) {\n case 'behaviors':\n break\n case 'data': {\n if (isApp) {\n this[confKey] = confValue\n if (!appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n } else {\n this.state = {\n ...confValue,\n ...this.state\n }\n }\n break\n }\n case 'properties':\n this.initProps(Object.assign(behaviorProperties, confValue))\n break\n case 'methods':\n for (const key in confValue) {\n const method = confValue[key]\n this[key] = bind(method, this)\n }\n break\n case 'lifetimes':\n for (const key in confValue) {\n this.initLifeCycles(key, confValue[key])\n }\n break\n case 'pageLifetimes':\n for (const key in confValue) {\n const cb = confValue[key]\n switch (key) {\n case 'show': {\n this.initLifeCycleListener('show', cb)\n break\n }\n case 'hide': {\n this.initLifeCycleListener('hide', cb)\n break\n }\n case 'resize': {\n report('不支持组件所在页面的生命周期 pageLifetimes.resize。')\n break\n }\n }\n }\n break\n default:\n if (lifecycles.has(confKey)) {\n // 优先使用 lifetimes 中定义的生命周期\n if (options.lifetimes?.[confKey]) {\n break\n }\n\n const lifecycle = options[confKey]\n this.initLifeCycles(confKey, lifecycle)\n } else if (isFunction(confValue)) {\n this[confKey] = bind(confValue, this)\n\n if (isApp && !appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n\n // 原生页面和 Taro 页面中共计只能定义一次的生命周期\n if (uniquePageLifecycle.includes(confKey) && ConnectComponent.prototype[confKey]) {\n report(`生命周期 ${confKey} 已在原生部分进行定义,React 部分的定义将不会被执行。`)\n }\n } else {\n this[confKey] = confValue\n\n if (isApp && !appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n }\n\n break\n }\n }\n\n // 处理 Behaviors\n if (options.behaviors?.length) {\n const behaviorData = {}\n const methods = {}\n for (const [key, list] of behaviorMap.entries()) {\n switch (key) {\n case 'data':\n [...list, this.state].forEach((dataObject, index) => {\n Object.keys(dataObject).forEach(dataKey => {\n const value = dataObject[dataKey]\n const preValue = behaviorData[dataKey]\n const valueType = typeof value\n const preValueType = typeof preValue\n if (valueType === 'object') {\n if (!value) {\n behaviorData[dataKey] = value\n } else if (preValueType !== 'object' || !preValueType || Array.isArray(value)) {\n behaviorData[dataKey] = index === list.length ? value : clone(value)\n } else {\n const newVal = Object.assign({}, preValue, value)\n behaviorData[dataKey] = index === list.length ? newVal : clone(newVal)\n }\n } else {\n behaviorData[dataKey] = value\n }\n })\n })\n this.state = behaviorData\n break\n case 'methods':\n list.forEach(methodsObject => {\n Object.assign(methods, methodsObject)\n })\n Object.keys(methods).forEach(methodName => {\n if (!this[methodName]) {\n const method = methods[methodName]\n this[methodName] = bind(method, this)\n }\n })\n break\n default:\n break\n }\n }\n }\n }\n\n private initLifeCycles (lifecycleName: string, lifecycle: (...args: any[]) => any) {\n // 不支持的生命周期\n if (unsupport.has(lifecycleName)) {\n const advise = unsupport.get(lifecycleName)\n return report(advise)\n }\n\n if (lifecycleName === 'ready') {\n // 如果组件是延时渲染的,页面 onReady 的事件已经 emit 了,因此使用 componentDidMount + nextTick 模拟\n if (this.current.page.onReady.called) {\n this.didMounts.push(function (...args: unknown[]) {\n nextTick(() => {\n if (isFunction(lifecycle)) {\n lifecycle.apply(this, args)\n }\n })\n })\n } else {\n this.initLifeCycleListener('ready', lifecycle)\n }\n } else {\n for (const lifecycleKey in lifecycleMap) {\n const cycleNames = lifecycleMap[lifecycleKey]\n if (cycleNames.indexOf(lifecycleName) !== -1) {\n switch (lifecycleKey) {\n case TaroLifeCycles.DidHide:\n this.didHides.push(lifecycle)\n break\n case TaroLifeCycles.DidMount:\n this.didMounts.push(lifecycle)\n break\n case TaroLifeCycles.DidShow:\n this.didShows.push(lifecycle)\n break\n case TaroLifeCycles.WillMount:\n this.willMounts.push(lifecycle)\n break\n case TaroLifeCycles.WillUnmount:\n this.willUnmounts.push(lifecycle)\n break\n default:\n break\n }\n }\n }\n }\n\n // mixins 不会覆盖已经设置的生命周期,加入到 this 是为了形如 this.created() 的调用\n if (!isFunction(this[lifecycleName])) {\n this[lifecycleName] = lifecycle\n }\n }\n\n private safeExecute = (func?: Func, ...args: unknown[]) => {\n if (isFunction(func)) func.apply(this, args)\n }\n\n private initLifeCycleListener (name: string, cb: (...args: any[]) => void) {\n // 组件的 ready、show、hide 需要利用页面事件触发\n const { router } = this.current\n const lifecycleName = `on${name[0].toUpperCase()}${name.slice(1)}`\n cb = cb.bind(this)\n router?.[lifecycleName] && eventCenter.on(router[lifecycleName], cb)\n // unMount 时需要取消事件监听\n this.eventDistoryList.push(() => eventCenter.off(router[lifecycleName], cb))\n }\n\n private executeLifeCycles (funcs: Func[], ...args: unknown[]) {\n for (let i = 0; i < funcs.length; i++) {\n const func = funcs[i]\n this.safeExecute(func, ...args)\n }\n }\n\n private triggerPropertiesObservers (prevProps, nextProps) {\n this._observeProps.forEach(({ name: key, observer }) => {\n const prop = prevProps?.[key]\n const nextProp = nextProps[key]\n // 小程序是深比较不同之后才 trigger observer\n if (!isEqual(prop, nextProp)) {\n if (typeof observer === 'string') {\n const ob = this[observer]\n if (isFunction(ob)) {\n ob.call(this, nextProp, prop, key)\n }\n } else if (isFunction(observer)) {\n observer.call(this, nextProp, prop, key)\n }\n }\n })\n }\n\n private triggerObservers (current, prev) {\n const observers = this.observers\n if (observers == null) {\n return\n }\n\n if (Object.keys(observers).length === 0) {\n return\n }\n\n const result = diff(current, prev)\n const resultKeys = Object.keys(result)\n if (resultKeys.length === 0) {\n return\n }\n\n for (const observerKey in observers) {\n if (/\\*\\*/.test(observerKey)) {\n report('数据监听器 observers 不支持使用通配符 **。')\n continue\n }\n\n const keys = observerKey.split(',').map(k => k.trim())\n let isModified = false\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n for (let j = 0; j < resultKeys.length; j++) {\n const resultKey = resultKeys[j]\n if (\n resultKey.startsWith(key) ||\n (key.startsWith(resultKey) && key.endsWith(']'))\n ) {\n isModified = true\n }\n }\n }\n if (isModified) {\n observers[observerKey].apply(this, keys.map(key => safeGet(current, key)))\n }\n }\n }\n\n private defineProperty (target, key, data) {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: true,\n set (value) {\n data[key] = value\n },\n get () {\n return data[key]\n }\n })\n }\n\n public privateStopNoop (...args) {\n let e\n let fn\n if (args.length === 2) {\n fn = args[0]\n e = args[1]\n } else if (args.length === 1) {\n e = args[0]\n }\n if (e.type === 'touchmove') {\n report('catchtouchmove 转换后只能停止回调函数的冒泡,不能阻止滚动穿透。如要阻止滚动穿透,可以手动给编译后的 View 组件加上 catchMove 属性')\n }\n e.stopPropagation()\n isFunction(fn) && fn(e)\n }\n\n // ================ React 生命周期 ================\n\n public componentWillMount () {\n this.safeExecute(super.componentWillMount)\n this.executeLifeCycles(this.willMounts, this.current.router || {})\n this.triggerObservers(this.data, BaseComponent.defaultProps)\n this.triggerPropertiesObservers(BaseComponent.defaultProps, this.props)\n }\n\n public componentDidMount () {\n this.safeExecute(super.componentDidMount)\n this.executeLifeCycles(this.didMounts)\n }\n\n public componentWillUnmount () {\n this.eventDistoryList.forEach(fn => fn())\n this.safeExecute(super.componentWillUnmount)\n this.executeLifeCycles(this.willUnmounts)\n }\n\n public componentDidHide () {\n this.safeExecute(super.componentDidHide)\n this.executeLifeCycles(this.didHides)\n }\n\n public componentDidShow () {\n this.safeExecute(super.componentDidShow, this.current.router || {})\n this.executeLifeCycles(this.didShows, this.current.router || {})\n }\n\n public componentWillReceiveProps (nextProps: P) {\n this.triggerObservers(nextProps, this.props)\n this.triggerPropertiesObservers(this.props, nextProps)\n this.safeExecute(super.componentWillReceiveProps)\n }\n\n // ================ 小程序 App, Page, Component 实例属性与方法 ================\n\n get is () {\n return this.current.page.is\n }\n\n get id () {\n return this.current.page.id\n }\n\n get dataset () {\n return this.current.page.dataset\n }\n\n public setData = (obj: S, callback?: () => void) => {\n let oldState\n if (this.observers && Object.keys(Object.keys(this.observers))) {\n oldState = clone(this.state)\n }\n Object.keys(obj).forEach(key => {\n safeSet(this.state, key, obj[key])\n })\n this.setState(this.state, () => {\n this.triggerObservers(this.state, oldState)\n if (callback) {\n callback.call(this)\n }\n })\n }\n\n public triggerEvent = (eventName: string, detail, options) => {\n if (options) {\n report('triggerEvent 不支持事件选项。')\n }\n\n const props = this.props\n const dataset = {}\n for (const key in props) {\n if (!key.startsWith('data-')) continue\n dataset[key.replace(/^data-/, '')] = props[key]\n }\n\n const func = props[`on${eventName[0].toUpperCase()}${eventName.slice(1)}`]\n if (isFunction(func)) {\n func.call(this, {\n type: eventName,\n detail,\n target: {\n id: props.id || '',\n dataset\n },\n currentTarget: {\n id: props.id || '',\n dataset\n }\n })\n }\n }\n\n private componentMethodsProxy (method: string) {\n return (...args: any[]) => {\n const page = this.current.page\n if (page?.[method]) {\n return page[method](...args)\n } else {\n console.error(`page 下没有 ${method} 方法`)\n }\n }\n }\n\n public hasBehavior = this.componentMethodsProxy('hasBehavior')\n public createSelectorQuery = this.componentMethodsProxy('createSelectorQuery')\n public createIntersectionObserver = this.componentMethodsProxy('createIntersectionObserver')\n public createMediaQueryObserver = this.componentMethodsProxy('createMediaQueryObserver')\n public getRelationNodes = this.componentMethodsProxy('getRelationNodes')\n public getTabBar = this.componentMethodsProxy('getTabBar')\n public getPageId = this.componentMethodsProxy('getPageId')\n public animate = this.componentMethodsProxy('animate')\n public clearAnimation = this.componentMethodsProxy('clearAnimation')\n public setUpdatePerformanceListener = this.componentMethodsProxy('setUpdatePerformanceListener')\n\n public selectComponent () {\n report(unsupport.get('selectComponent'))\n }\n\n public selectAllComponents () {\n report(unsupport.get('selectAllComponents'))\n }\n\n public selectOwnerComponent () {\n report(unsupport.get('selectOwnerComponent'))\n }\n\n public groupSetData () {\n report(unsupport.get('groupSetData'))\n }\n }\n\n const props = weappConf.properties\n\n if (props) {\n for (const propKey in props) {\n const propValue = props[propKey]\n if (propValue != null && !isFunction(propValue)) {\n if (propValue.value !== undefined) { // 如果是 null 也赋值到 defaultProps\n BaseComponent.defaultProps = {\n [propKey]: propValue.value,\n ...BaseComponent.defaultProps\n }\n }\n }\n }\n }\n\n const staticOptions = ['externalClasses', 'relations', 'options']\n\n staticOptions.forEach(option => {\n const value = weappConf[option]\n if (value != null) {\n BaseComponent[option] = value\n }\n })\n\n return BaseComponent\n }\n}\n"],"names":["TaroLifeCycles","lifecycleMap","WillMount","DidMount","DidShow","DidHide","WillUnmount","lifecycles","Set","key","lifecycle","forEach","l","add","uniquePageLifecycle","appOptions","bind","fn","ctx","boundFn","a","arguments","length","apply","call","_length","isEqual","obj1","obj2","JSON","stringify","safeGet","obj","propsArg","defaultValue","props","prop","Array","isArray","slice","replace","split","Error","shift","undefined","safeSet","value","lastProp","pop","thisProp","report","msg","console","warn","unsupport","Map","flattenBehaviors","behavior","behaviorMap","subBehaviors","behaviors","subBehavior","Object","keys","has","advise","get","list","push","ARRAYTYPE","OBJECTTYPE","FUNCTIONTYPE","diff","current","pre","result","syncKeys","_diff","rootCurrentType","type","rootPreType","currentValue","item","index","path","setResult","preValue","currentType","preType","subKey","k","v","prototype","toString","json","clone","parse","x","objectKeys","hasOwnProperty","opts","cmp","space","join","cycles","replacer","f","node","b","aobj","bobj","seen","parent","level","indent","colonSeparator","toJSON","out","i","indexOf","TypeError","sort","keyValue","splice","defineGetter","component","getter","defineProperty","enumerable","configurable","state","isFunction","o","withWeapp","weappConf","isApp","ConnectComponent","behaviorProperties","propertiesList","property","assign","propName","propValue","properties","BaseComponent","getCurrentInstance","create","func","args","callback","oldState","observers","setState","triggerObservers","eventName","detail","options","dataset","startsWith","toUpperCase","target","id","currentTarget","componentMethodsProxy","init","propKey","observer","_observeProps","name","entries","initLifeCycles","confKey","confValue","includes","taroGlobalData","initProps","method","cb","initLifeCycleListener","lifetimes","behaviorData","methods","dataObject","dataKey","valueType","preValueType","newVal","methodsObject","methodName","lifecycleName","page","onReady","called","didMounts","nextTick","lifecycleKey","cycleNames","didHides","didShows","willMounts","willUnmounts","router","eventCenter","on","eventDistoryList","off","funcs","safeExecute","prevProps","nextProps","nextProp","ob","prev","resultKeys","observerKey","test","map","trim","isModified","j","resultKey","endsWith","data","set","e","stopPropagation","executeLifeCycles","defaultProps","triggerPropertiesObservers","is","error","staticOptions","option"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/lifecycle.ts","../src/utils.ts","../src/diff.js","../src/clone.js","../src/index.ts"],"sourcesContent":["interface LifecycleMap {\n [key: string]: string[]\n}\n\nexport enum TaroLifeCycles {\n WillMount = 'componentWillMount',\n DidMount = 'componentDidMount',\n DidShow = 'componentDidShow',\n DidHide = 'componentDidHide',\n WillUnmount = 'componentWillUnmount'\n}\n\nexport const lifecycleMap: LifecycleMap = {\n [TaroLifeCycles.WillMount]: ['created'],\n [TaroLifeCycles.DidMount]: ['attached'],\n [TaroLifeCycles.DidShow]: ['onShow'],\n [TaroLifeCycles.DidHide]: ['onHide'],\n [TaroLifeCycles.WillUnmount]: ['detached', 'onUnload']\n}\n\nexport const lifecycles = new Set<string>(['ready'])\n\nfor (const key in lifecycleMap) {\n const lifecycle = lifecycleMap[key]\n lifecycle.forEach(l => lifecycles.add(l))\n}\n\nexport const uniquePageLifecycle = [\n 'onPullDownRefresh',\n 'onReachBottom',\n 'onShareAppMessage',\n 'onShareTimeline',\n 'onAddToFavorites',\n 'onPageScroll',\n 'onResize',\n 'onTabItemTap'\n]\n\nexport const appOptions = [\n 'onLaunch',\n 'onShow',\n 'onHide',\n 'onError',\n 'onPageNotFound',\n 'onUnhandledRejection',\n 'onThemeChange'\n]\n","/**\n * Simple bind, faster than native\n */\nexport function bind (fn /*: Function */, ctx /*: Object */) /*: Function */ {\n if (!fn) return false\n\n function boundFn (a) {\n const l /*: number */ = arguments.length\n return l ? (l > 1 ? fn.apply(ctx, arguments) : fn.call(ctx, a)) : fn.call(ctx)\n }\n\n // record original fn length\n boundFn._length = fn.length\n return boundFn\n}\n\nexport function isEqual (obj1, obj2) {\n return JSON.stringify(obj1) === JSON.stringify(obj2)\n}\n\nexport function noop (..._: unknown[]) {\n //\n}\n\nconst sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n}\n\nexport function proxy (target, sourceKey: string, key: string) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n }\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val\n }\n Object.defineProperty(target, key, sharedPropertyDefinition)\n}\n\nexport function safeGet (obj, propsArg, defaultValue?) {\n if (!obj) {\n return defaultValue\n }\n let props, prop\n if (Array.isArray(propsArg)) {\n props = propsArg.slice(0)\n }\n if (typeof propsArg === 'string') {\n props = propsArg.replace(/\\[(.+?)\\]/g, '.$1')\n props = props.split('.')\n }\n if (typeof propsArg === 'symbol') {\n props = [propsArg]\n }\n if (!Array.isArray(props)) {\n throw new Error('props arg must be an array, a string or a symbol')\n }\n while (props.length) {\n prop = props.shift()\n if (!obj) {\n return defaultValue\n }\n obj = obj[prop]\n if (obj === undefined) {\n return defaultValue\n }\n }\n return obj\n}\n\nexport function safeSet (obj, props, value) {\n if (typeof props === 'string') {\n props = props.replace(/\\[(.+?)\\]/g, '.$1')\n props = props.split('.')\n }\n if (typeof props === 'symbol') {\n props = [props]\n }\n const lastProp = props.pop()\n if (!lastProp) {\n return false\n }\n let thisProp\n while ((thisProp = props.shift())) {\n if (typeof obj[thisProp] === 'undefined') {\n obj[thisProp] = {}\n }\n\n // 直接按路径修改 this.state 可能会导致 nextProps 也被修改\n // 因此按路径寻找时,每一层都复制一遍\n if (Array.isArray(obj[thisProp])) {\n obj[thisProp] = [...obj[thisProp]]\n } else if (typeof obj[thisProp] === 'object') {\n obj[thisProp] = { ...obj[thisProp] }\n }\n\n obj = obj[thisProp]\n if (!obj || typeof obj !== 'object') {\n return false\n }\n }\n obj[lastProp] = value\n return true\n}\n\nexport function report (msg) {\n console.warn('[Taro Convert Warning] ' + msg)\n}\n\nexport const unsupport = new Map([\n ['onError', '不支持 App 的 onError 生命周期方法。'],\n ['onPageNotFound', '不支持 App 的 onPageNotFound 生命周期方法。'],\n ['onUnhandledRejection', '不支持 App 的 onUnhandledRejection 生命周期方法。'],\n ['onThemeChange', '不支持 App 的 onThemeChange 生命周期方法。'],\n ['moved', '不支持自定义组件的 moved 生命周期。'],\n ['externalClasses', '不支持自定义组件的 externalClasses 功能。'],\n ['relations', '不支持自定义组件的 relations 功能。'],\n ['options', '不支持自定义组件的 options 功能。'],\n ['definitionFilter', '不支持自定义组件的 definitionFilter 功能。'],\n ['selectComponent', 'selectComponent 方法产生不到目标效果,请使用 React 的 ref 进行重构。'],\n ['selectAllComponents', 'selectAllComponents 方法产生不到目标效果,请使用 React 的 ref 进行重构。'],\n ['selectOwnerComponent', 'selectOwnerComponent 方法产生不到目标效果,请使用 React 语法重构。'],\n ['groupSetData', 'groupSetData 方法产生不到目标效果,请使用 React 语法重构。']\n])\n\nexport function flattenBehaviors (behavior, behaviorMap: Map<string, any[]>) {\n if (typeof behavior === 'string') {\n return report(`不支持使用内置 Behavior: [${behavior}]`)\n }\n const subBehaviors = behavior.behaviors\n if (subBehaviors?.length) {\n subBehaviors.forEach(subBehavior => flattenBehaviors(subBehavior, behaviorMap))\n }\n\n Object.keys(behavior).forEach(key => {\n // 不支持的属性\n if (unsupport.has(key)) {\n const advise = unsupport.get(key)\n return report(advise)\n }\n\n if (behaviorMap.has(key)) {\n const list = behaviorMap.get(key)!\n const value = behavior[key]\n list.push(value)\n }\n })\n}\n","/*eslint-disable*/\nconst ARRAYTYPE = '[object Array]'\nconst OBJECTTYPE = '[object Object]'\nconst FUNCTIONTYPE = '[object Function]'\n\nexport function diff (current, pre) {\n const result = {}\n syncKeys(current, pre)\n _diff(current, pre, '', result)\n return result\n}\n\nfunction syncKeys (current, pre) {\n if (current === pre) return\n const rootCurrentType = type(current)\n const rootPreType = type(pre)\n if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {\n // if(Object.keys(current).length >= Object.keys(pre).length){\n for (let key in pre) {\n const currentValue = current[key]\n if (currentValue === undefined) {\n current[key] = null\n } else {\n syncKeys(currentValue, pre[key])\n }\n }\n // }\n } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {\n if (current.length >= pre.length) {\n pre.forEach((item, index) => {\n syncKeys(current[index], item)\n })\n }\n }\n}\n\nfunction _diff (current, pre, path, result) {\n if (current === pre) return\n const rootCurrentType = type(current)\n const rootPreType = type(pre)\n if (rootCurrentType == OBJECTTYPE) {\n if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {\n setResult(result, path, current)\n } else {\n for (let key in current) {\n const currentValue = current[key]\n const preValue = pre[key]\n const currentType = type(currentValue)\n const preType = type(preValue)\n if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {\n if (currentValue != pre[key]) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n }\n } else if (currentType == ARRAYTYPE) {\n if (preType != ARRAYTYPE) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n if (currentValue.length < preValue.length) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n currentValue.forEach((item, index) => {\n _diff(item, preValue[index], (path == '' ? '' : path + '.') + key + '[' + index + ']', result)\n })\n }\n }\n } else if (currentType == OBJECTTYPE) {\n if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n for (let subKey in currentValue) {\n _diff(currentValue[subKey], preValue[subKey], (path == '' ? '' : path + '.') + key + '.' + subKey, result)\n }\n }\n }\n }\n }\n } else if (rootCurrentType == ARRAYTYPE) {\n if (rootPreType != ARRAYTYPE) {\n setResult(result, path, current)\n } else {\n if (current.length < pre.length) {\n setResult(result, path, current)\n } else {\n current.forEach((item, index) => {\n _diff(item, pre[index], path + '[' + index + ']', result)\n })\n }\n }\n } else {\n setResult(result, path, current)\n }\n}\n\nfunction setResult (result, k, v) {\n if (type(v) != FUNCTIONTYPE) {\n result[k] = v\n }\n}\n\nfunction type (obj) {\n return Object.prototype.toString.call(obj)\n}\n","const json = JSON\n\nexport const clone = (obj) => json.parse(stringify(obj))\n\nconst isArray = Array.isArray || function (x) {\n return {}.toString.call(x) === '[object Array]'\n}\n\nconst objectKeys = Object.keys || function (obj) {\n const has = Object.prototype.hasOwnProperty || function () { return true }\n const keys = []\n for (const key in obj) {\n if (has.call(obj, key)) keys.push(key)\n }\n return keys\n}\n\nfunction stringify (obj, opts) {\n if (!opts) opts = {}\n if (typeof opts === 'function') opts = { cmp: opts }\n let space = opts.space || ''\n if (typeof space === 'number') space = Array(space + 1).join(' ')\n const cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false\n const replacer = opts.replacer || function (key, value) { return value }\n\n const cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n const aobj = { key: a, value: node[a] }\n const bobj = { key: b, value: node[b] }\n return f(aobj, bobj)\n }\n }\n })(opts.cmp)\n\n const seen = []\n return (function stringify (parent, key, node, level) {\n const indent = space ? ('\\n' + new Array(level + 1).join(space)) : ''\n const colonSeparator = space ? ': ' : ':'\n\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON()\n }\n\n node = replacer.call(parent, key, node)\n\n if (node === undefined) {\n return\n }\n if (typeof node !== 'object' || node === null) {\n return json.stringify(node)\n }\n if (isArray(node)) {\n const out = []\n for (let i = 0; i < node.length; i++) {\n const item = stringify(node, i, node[i], level + 1) || json.stringify(null)\n out.push(indent + space + item)\n }\n return '[' + out.join(',') + indent + ']'\n } else {\n if (seen.indexOf(node) !== -1) {\n if (cycles) return json.stringify('__cycle__')\n throw new TypeError('Converting circular structure to JSON')\n } else seen.push(node)\n\n const keys = objectKeys(node).sort(cmp && cmp(node))\n const out = []\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n const value = stringify(node, key, node[key], level + 1)\n\n if (!value) continue\n\n const keyValue = json.stringify(key) +\n colonSeparator +\n value\n\n out.push(indent + space + keyValue)\n }\n seen.splice(seen.indexOf(node), 1)\n return '{' + out.join(',') + indent + '}'\n }\n })({ '': obj }, '', obj, 0)\n}\n","import { ComponentLifecycle, eventCenter, nextTick } from '@tarojs/taro'\nimport { getCurrentInstance } from '@tarojs/runtime'\nimport { lifecycles, lifecycleMap, TaroLifeCycles, uniquePageLifecycle, appOptions } from './lifecycle'\nimport { bind, isEqual, safeGet, safeSet, report, unsupport, flattenBehaviors } from './utils'\nimport { diff } from './diff'\nimport { clone } from './clone'\n\ntype Observer = (newProps, oldProps, changePath: string) => void\ntype Func = (...args: any[]) => void\n\ninterface ObserverProperties {\n name: string,\n observer: string | Observer\n}\n\ninterface ComponentClass<P = Record<string, any>, S = Record<string, any>> extends ComponentLifecycle<P, S> {\n new (props: P)\n externalClasses: Record<string, unknown>\n defaultProps?: Partial<P>\n _observeProps?: ObserverProperties[]\n observers?: Record<string, Func>\n}\n\ninterface WxOptions {\n methods?: {\n [key: string]: Func;\n }\n properties?: Record<string, Record<string, unknown> | Func>\n props?: Record<string, unknown>\n data?: Record<string, unknown>,\n observers?: Record<string, Func>\n lifetimes?: Record<string, Func>\n behaviors?: any[]\n}\n\nfunction defineGetter (component, key: string, getter: string) {\n Object.defineProperty(component, key, {\n enumerable: true,\n configurable: true,\n get: () => {\n if (getter === 'props') {\n return component.props\n }\n return {\n ...component.state,\n ...component.props\n }\n }\n })\n}\n\nfunction isFunction (o): o is Func {\n return typeof o === 'function'\n}\n\nexport default function withWeapp (weappConf: WxOptions, isApp = false) {\n if (typeof weappConf === 'object' && Object.keys(weappConf).length === 0) {\n report('withWeapp 请传入“App/页面/组件“的配置对象。如果原生写法使用了基类,请将基类组合后的配置对象传入,详情请参考文档。')\n }\n return (ConnectComponent: ComponentClass<any, any>) => {\n const behaviorMap = new Map<string, any[]>([\n ['properties', []],\n ['data', []],\n ['methods', []],\n ['created', []],\n ['attached', []],\n ['ready', []],\n ['detached', []]\n ])\n const behaviorProperties = {}\n if (weappConf.behaviors?.length) {\n const { behaviors } = weappConf\n behaviors.forEach(behavior => flattenBehaviors(behavior, behaviorMap))\n\n const propertiesList = behaviorMap.get('properties')!\n if (propertiesList.length) {\n propertiesList.forEach(property => {\n Object.assign(behaviorProperties, property)\n })\n Object.keys(behaviorProperties).forEach(propName => {\n const propValue = behaviorProperties[propName]\n if (!weappConf.properties) {\n weappConf.properties = {}\n }\n if (!weappConf.properties.hasOwnProperty(propName)) {\n if (propValue && typeof propValue === 'object' && propValue.value) {\n propValue.value = clone(propValue.value)\n }\n weappConf.properties[propName] = propValue\n }\n })\n }\n }\n\n class BaseComponent<P = Record<string, any>, S = Record<string, any>> extends ConnectComponent {\n private _observeProps: ObserverProperties[] = []\n\n // mixins 可以多次调用生命周期\n private willMounts: Func[] = []\n\n private didMounts: Func[] = []\n\n private didHides: Func[] = []\n\n private didShows: Func[] = []\n\n private willUnmounts: Func[] = []\n\n private eventDistoryList: Func[] = []\n\n private current: any = getCurrentInstance()\n\n public observers?: Record<string, Func>\n\n public taroGlobalData: Record<any, any> = Object.create(null)\n\n public data: any\n\n constructor (props) {\n super(props)\n this.state = this.state || {}\n this.init(weappConf)\n defineGetter(this, 'data', 'state')\n defineGetter(this, 'properties', 'props')\n }\n\n private initProps (props: any) {\n for (const propKey in props) {\n if (props.hasOwnProperty(propKey)) {\n const propValue = props[propKey]\n // propValue 可能是 null, 构造函数, 对象\n if (propValue && !isFunction(propValue)) {\n if (propValue.observer) {\n this._observeProps.push({\n name: propKey,\n observer: propValue.observer\n })\n }\n }\n }\n }\n }\n\n private init (options: WxOptions) {\n // 处理 Behaviors\n if (options.behaviors?.length) {\n for (const [key, list] of behaviorMap.entries()) {\n switch (key) {\n case 'created':\n case 'attached':\n case 'detached':\n case 'ready':\n list.forEach(fn => this.initLifeCycles(key, fn))\n break\n }\n }\n }\n\n for (const confKey in options) {\n // 不支持的属性\n if (unsupport.has(confKey)) {\n const advise = unsupport.get(confKey)\n report(advise)\n }\n\n const confValue = options[confKey]\n\n switch (confKey) {\n case 'behaviors':\n break\n case 'data': {\n if (isApp) {\n this[confKey] = confValue\n if (!appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n } else {\n this.state = {\n ...confValue,\n ...this.state\n }\n }\n break\n }\n case 'properties':\n this.initProps(Object.assign(behaviorProperties, confValue))\n break\n case 'methods':\n for (const key in confValue) {\n const method = confValue[key]\n this[key] = bind(method, this)\n }\n break\n case 'lifetimes':\n for (const key in confValue) {\n this.initLifeCycles(key, confValue[key])\n }\n break\n case 'pageLifetimes':\n for (const key in confValue) {\n const cb = confValue[key]\n switch (key) {\n case 'show': {\n this.initLifeCycleListener('show', cb)\n break\n }\n case 'hide': {\n this.initLifeCycleListener('hide', cb)\n break\n }\n case 'resize': {\n report('不支持组件所在页面的生命周期 pageLifetimes.resize。')\n break\n }\n }\n }\n break\n default:\n if (lifecycles.has(confKey)) {\n // 优先使用 lifetimes 中定义的生命周期\n if (options.lifetimes?.[confKey]) {\n break\n }\n\n const lifecycle = options[confKey]\n this.initLifeCycles(confKey, lifecycle)\n } else if (isFunction(confValue)) {\n this[confKey] = bind(confValue, this)\n\n if (isApp && !appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n\n // 原生页面和 Taro 页面中共计只能定义一次的生命周期\n if (uniquePageLifecycle.includes(confKey) && ConnectComponent.prototype[confKey]) {\n report(`生命周期 ${confKey} 已在原生部分进行定义,React 部分的定义将不会被执行。`)\n }\n } else {\n this[confKey] = confValue\n\n if (isApp && !appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n }\n\n break\n }\n }\n\n // 处理 Behaviors\n if (options.behaviors?.length) {\n const behaviorData = {}\n const methods = {}\n for (const [key, list] of behaviorMap.entries()) {\n switch (key) {\n case 'data':\n [...list, this.state].forEach((dataObject, index) => {\n Object.keys(dataObject).forEach(dataKey => {\n const value = dataObject[dataKey]\n const preValue = behaviorData[dataKey]\n const valueType = typeof value\n const preValueType = typeof preValue\n if (valueType === 'object') {\n if (!value) {\n behaviorData[dataKey] = value\n } else if (preValueType !== 'object' || !preValueType || Array.isArray(value)) {\n behaviorData[dataKey] = index === list.length ? value : clone(value)\n } else {\n const newVal = Object.assign({}, preValue, value)\n behaviorData[dataKey] = index === list.length ? newVal : clone(newVal)\n }\n } else {\n behaviorData[dataKey] = value\n }\n })\n })\n this.state = behaviorData\n break\n case 'methods':\n list.forEach(methodsObject => {\n Object.assign(methods, methodsObject)\n })\n Object.keys(methods).forEach(methodName => {\n if (!this[methodName]) {\n const method = methods[methodName]\n this[methodName] = bind(method, this)\n }\n })\n break\n default:\n break\n }\n }\n }\n }\n\n private initLifeCycles (lifecycleName: string, lifecycle: (...args: any[]) => any) {\n // 不支持的生命周期\n if (unsupport.has(lifecycleName)) {\n const advise = unsupport.get(lifecycleName)\n return report(advise)\n }\n\n if (lifecycleName === 'ready') {\n // 如果组件是延时渲染的,页面 onReady 的事件已经 emit 了,因此使用 componentDidMount + nextTick 模拟\n if (this.current.page.onReady.called) {\n this.didMounts.push(function (...args: unknown[]) {\n nextTick(() => {\n if (isFunction(lifecycle)) {\n lifecycle.apply(this, args)\n }\n })\n })\n } else {\n this.initLifeCycleListener('ready', lifecycle)\n }\n } else {\n for (const lifecycleKey in lifecycleMap) {\n const cycleNames = lifecycleMap[lifecycleKey]\n if (cycleNames.indexOf(lifecycleName) !== -1) {\n switch (lifecycleKey) {\n case TaroLifeCycles.DidHide:\n this.didHides.push(lifecycle)\n break\n case TaroLifeCycles.DidMount:\n this.didMounts.push(lifecycle)\n break\n case TaroLifeCycles.DidShow:\n this.didShows.push(lifecycle)\n break\n case TaroLifeCycles.WillMount:\n this.willMounts.push(lifecycle)\n break\n case TaroLifeCycles.WillUnmount:\n this.willUnmounts.push(lifecycle)\n break\n default:\n break\n }\n }\n }\n }\n\n // mixins 不会覆盖已经设置的生命周期,加入到 this 是为了形如 this.created() 的调用\n if (!isFunction(this[lifecycleName])) {\n this[lifecycleName] = lifecycle\n }\n }\n\n private safeExecute = (func?: Func, ...args: unknown[]) => {\n if (isFunction(func)) func.apply(this, args)\n }\n\n private initLifeCycleListener (name: string, cb: (...args: any[]) => void) {\n // 组件的 ready、show、hide 需要利用页面事件触发\n const { router } = this.current\n const lifecycleName = `on${name[0].toUpperCase()}${name.slice(1)}`\n cb = cb.bind(this)\n router?.[lifecycleName] && eventCenter.on(router[lifecycleName], cb)\n // unMount 时需要取消事件监听\n this.eventDistoryList.push(() => eventCenter.off(router[lifecycleName], cb))\n }\n\n private executeLifeCycles (funcs: Func[], ...args: unknown[]) {\n for (let i = 0; i < funcs.length; i++) {\n const func = funcs[i]\n this.safeExecute(func, ...args)\n }\n }\n\n private triggerPropertiesObservers (prevProps, nextProps) {\n this._observeProps.forEach(({ name: key, observer }) => {\n const prop = prevProps?.[key]\n const nextProp = nextProps[key]\n // 小程序是深比较不同之后才 trigger observer\n if (!isEqual(prop, nextProp)) {\n if (typeof observer === 'string') {\n const ob = this[observer]\n if (isFunction(ob)) {\n ob.call(this, nextProp, prop, key)\n }\n } else if (isFunction(observer)) {\n observer.call(this, nextProp, prop, key)\n }\n }\n })\n }\n\n private triggerObservers (current, prev) {\n const observers = this.observers\n if (observers == null) {\n return\n }\n\n if (Object.keys(observers).length === 0) {\n return\n }\n\n const result = diff(current, prev)\n const resultKeys = Object.keys(result)\n if (resultKeys.length === 0) {\n return\n }\n\n for (const observerKey in observers) {\n if (/\\*\\*/.test(observerKey)) {\n report('数据监听器 observers 不支持使用通配符 **。')\n continue\n }\n\n const keys = observerKey.split(',').map(k => k.trim())\n let isModified = false\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n for (let j = 0; j < resultKeys.length; j++) {\n const resultKey = resultKeys[j]\n if (\n resultKey.startsWith(key) ||\n (key.startsWith(resultKey) && key.endsWith(']'))\n ) {\n isModified = true\n }\n }\n }\n if (isModified) {\n observers[observerKey].apply(this, keys.map(key => safeGet(current, key)))\n }\n }\n }\n\n private defineProperty (target, key, data) {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: true,\n set (value) {\n data[key] = value\n },\n get () {\n return data[key]\n }\n })\n }\n\n public privateStopNoop (...args) {\n let e\n let fn\n if (args.length === 2) {\n fn = args[0]\n e = args[1]\n } else if (args.length === 1) {\n e = args[0]\n }\n if (e.type === 'touchmove') {\n report('catchtouchmove 转换后只能停止回调函数的冒泡,不能阻止滚动穿透。如要阻止滚动穿透,可以手动给编译后的 View 组件加上 catchMove 属性')\n }\n e.stopPropagation()\n isFunction(fn) && fn(e)\n }\n\n // ================ React 生命周期 ================\n\n public componentWillMount () {\n this.safeExecute(super.componentWillMount)\n this.executeLifeCycles(this.willMounts, this.current.router || {})\n this.triggerObservers(this.data, BaseComponent.defaultProps)\n this.triggerPropertiesObservers(BaseComponent.defaultProps, this.props)\n }\n\n public componentDidMount () {\n this.safeExecute(super.componentDidMount)\n this.executeLifeCycles(this.didMounts)\n }\n\n public componentWillUnmount () {\n this.eventDistoryList.forEach(fn => fn())\n this.safeExecute(super.componentWillUnmount)\n this.executeLifeCycles(this.willUnmounts)\n }\n\n public componentDidHide () {\n this.safeExecute(super.componentDidHide)\n this.executeLifeCycles(this.didHides)\n }\n\n public componentDidShow () {\n this.safeExecute(super.componentDidShow, this.current.router || {})\n this.executeLifeCycles(this.didShows, this.current.router || {})\n }\n\n public componentWillReceiveProps (nextProps: P) {\n this.triggerObservers(nextProps, this.props)\n this.triggerPropertiesObservers(this.props, nextProps)\n this.safeExecute(super.componentWillReceiveProps)\n }\n\n // ================ 小程序 App, Page, Component 实例属性与方法 ================\n\n get is () {\n return this.current.page.is\n }\n\n get id () {\n return this.current.page.id\n }\n\n get dataset () {\n return this.current.page.dataset\n }\n\n public setData = (obj: S, callback?: () => void) => {\n let oldState\n if (this.observers && Object.keys(Object.keys(this.observers))) {\n oldState = clone(this.state)\n }\n Object.keys(obj).forEach(key => {\n safeSet(this.state, key, obj[key])\n })\n this.setState(this.state, () => {\n this.triggerObservers(this.state, oldState)\n if (callback) {\n callback.call(this)\n }\n })\n }\n\n public triggerEvent = (eventName: string, detail, options) => {\n if (options) {\n report('triggerEvent 不支持事件选项。')\n }\n\n const props = this.props\n const dataset = {}\n for (const key in props) {\n if (!key.startsWith('data-')) continue\n dataset[key.replace(/^data-/, '')] = props[key]\n }\n\n const func = props[`on${eventName[0].toUpperCase()}${eventName.slice(1)}`]\n if (isFunction(func)) {\n func.call(this, {\n type: eventName,\n detail,\n target: {\n id: props.id || '',\n dataset\n },\n currentTarget: {\n id: props.id || '',\n dataset\n }\n })\n }\n }\n\n private componentMethodsProxy (method: string) {\n return (...args: any[]) => {\n const page = this.current.page\n if (page?.[method]) {\n return page[method](...args)\n } else {\n console.error(`page 下没有 ${method} 方法`)\n }\n }\n }\n\n public hasBehavior = this.componentMethodsProxy('hasBehavior')\n public createSelectorQuery = this.componentMethodsProxy('createSelectorQuery')\n public createIntersectionObserver = this.componentMethodsProxy('createIntersectionObserver')\n public createMediaQueryObserver = this.componentMethodsProxy('createMediaQueryObserver')\n public getRelationNodes = this.componentMethodsProxy('getRelationNodes')\n public getTabBar = this.componentMethodsProxy('getTabBar')\n public getPageId = this.componentMethodsProxy('getPageId')\n public animate = this.componentMethodsProxy('animate')\n public clearAnimation = this.componentMethodsProxy('clearAnimation')\n public setUpdatePerformanceListener = this.componentMethodsProxy('setUpdatePerformanceListener')\n\n public selectComponent () {\n report(unsupport.get('selectComponent'))\n }\n\n public selectAllComponents () {\n report(unsupport.get('selectAllComponents'))\n }\n\n public selectOwnerComponent () {\n report(unsupport.get('selectOwnerComponent'))\n }\n\n public groupSetData () {\n report(unsupport.get('groupSetData'))\n }\n }\n\n const props = weappConf.properties\n\n if (props) {\n for (const propKey in props) {\n const propValue = props[propKey]\n if (propValue != null && !isFunction(propValue)) {\n if (propValue.value !== undefined) { // 如果是 null 也赋值到 defaultProps\n BaseComponent.defaultProps = {\n [propKey]: propValue.value,\n ...BaseComponent.defaultProps\n }\n }\n }\n }\n }\n\n const staticOptions = ['externalClasses', 'relations', 'options']\n\n staticOptions.forEach(option => {\n const value = weappConf[option]\n if (value != null) {\n BaseComponent[option] = value\n }\n })\n\n return BaseComponent\n }\n}\n"],"names":["TaroLifeCycles","lifecycleMap","WillMount","DidMount","DidShow","DidHide","WillUnmount","lifecycles","Set","key","lifecycle","forEach","l","add","uniquePageLifecycle","appOptions","bind","fn","ctx","boundFn","a","arguments","length","apply","call","_length","isEqual","obj1","obj2","JSON","stringify","safeGet","obj","propsArg","defaultValue","props","prop","Array","isArray","slice","replace","split","Error","shift","undefined","safeSet","value","lastProp","pop","thisProp","Object","assign","report","msg","console","warn","unsupport","Map","flattenBehaviors","behavior","behaviorMap","subBehaviors","behaviors","subBehavior","keys","has","advise","get","list","push","ARRAYTYPE","OBJECTTYPE","FUNCTIONTYPE","diff","current","pre","result","syncKeys","_diff","rootCurrentType","type","rootPreType","currentValue","item","index","path","setResult","preValue","currentType","preType","subKey","k","v","prototype","toString","json","clone","parse","x","objectKeys","hasOwnProperty","opts","cmp","space","join","cycles","replacer","f","node","b","aobj","bobj","seen","parent","level","indent","colonSeparator","toJSON","out","i","indexOf","TypeError","sort","keyValue","splice","defineGetter","component","getter","defineProperty","enumerable","configurable","state","isFunction","o","withWeapp","weappConf","isApp","ConnectComponent","behaviorProperties","_a","propertiesList","property","propName","propValue","properties","BaseComponent","_observeProps","willMounts","didMounts","didHides","didShows","willUnmounts","eventDistoryList","getCurrentInstance","taroGlobalData","create","safeExecute","func","args","setData","callback","oldState","observers","setState","triggerObservers","triggerEvent","eventName","detail","options","dataset","startsWith","toUpperCase","target","id","currentTarget","hasBehavior","componentMethodsProxy","createSelectorQuery","createIntersectionObserver","createMediaQueryObserver","getRelationNodes","getTabBar","getPageId","animate","clearAnimation","setUpdatePerformanceListener","init","propKey","observer","name","entries","initLifeCycles","confKey","confValue","includes","initProps","method","cb","initLifeCycleListener","lifetimes","_b","_c","behaviorData","methods","dataObject","dataKey","valueType","preValueType","newVal","methodsObject","methodName","lifecycleName","page","onReady","called","nextTick","lifecycleKey","cycleNames","router","eventCenter","on","off","funcs","prevProps","nextProps","nextProp","ob","prev","resultKeys","observerKey","test","map","trim","isModified","j","resultKey","endsWith","data","set","e","stopPropagation","executeLifeCycles","defaultProps","triggerPropertiesObservers","is","error","staticOptions","option"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -42,7 +42,7 @@ var TaroLifeCycles;
42
42
  TaroLifeCycles["WillUnmount"] = "componentWillUnmount";
43
43
  })(TaroLifeCycles || (TaroLifeCycles = {}));
44
44
 
45
- var lifecycleMap = (_lifecycleMap = {}, _defineProperty__default['default'](_lifecycleMap, TaroLifeCycles.WillMount, ['created']), _defineProperty__default['default'](_lifecycleMap, TaroLifeCycles.DidMount, ['attached']), _defineProperty__default['default'](_lifecycleMap, TaroLifeCycles.DidShow, ['onShow']), _defineProperty__default['default'](_lifecycleMap, TaroLifeCycles.DidHide, ['onHide']), _defineProperty__default['default'](_lifecycleMap, TaroLifeCycles.WillUnmount, ['detached', 'onUnload']), _lifecycleMap);
45
+ var lifecycleMap = (_lifecycleMap = {}, _defineProperty__default["default"](_lifecycleMap, TaroLifeCycles.WillMount, ['created']), _defineProperty__default["default"](_lifecycleMap, TaroLifeCycles.DidMount, ['attached']), _defineProperty__default["default"](_lifecycleMap, TaroLifeCycles.DidShow, ['onShow']), _defineProperty__default["default"](_lifecycleMap, TaroLifeCycles.DidHide, ['onHide']), _defineProperty__default["default"](_lifecycleMap, TaroLifeCycles.WillUnmount, ['detached', 'onUnload']), _lifecycleMap);
46
46
  var lifecycles = new Set(['ready']);
47
47
 
48
48
  for (var key in lifecycleMap) {
@@ -95,7 +95,7 @@ function safeGet(obj, propsArg, defaultValue) {
95
95
  props = props.split('.');
96
96
  }
97
97
 
98
- if (_typeof__default['default'](propsArg) === 'symbol') {
98
+ if (_typeof__default["default"](propsArg) === 'symbol') {
99
99
  props = [propsArg];
100
100
  }
101
101
 
@@ -125,7 +125,7 @@ function safeSet(obj, props, value) {
125
125
  props = props.split('.');
126
126
  }
127
127
 
128
- if (_typeof__default['default'](props) === 'symbol') {
128
+ if (_typeof__default["default"](props) === 'symbol') {
129
129
  props = [props];
130
130
  }
131
131
 
@@ -145,14 +145,14 @@ function safeSet(obj, props, value) {
145
145
 
146
146
 
147
147
  if (Array.isArray(obj[thisProp])) {
148
- obj[thisProp] = _toConsumableArray__default['default'](obj[thisProp]);
149
- } else if (_typeof__default['default'](obj[thisProp]) === 'object') {
148
+ obj[thisProp] = _toConsumableArray__default["default"](obj[thisProp]);
149
+ } else if (_typeof__default["default"](obj[thisProp]) === 'object') {
150
150
  obj[thisProp] = Object.assign({}, obj[thisProp]);
151
151
  }
152
152
 
153
153
  obj = obj[thisProp];
154
154
 
155
- if (!obj || _typeof__default['default'](obj) !== 'object') {
155
+ if (!obj || _typeof__default["default"](obj) !== 'object') {
156
156
  return false;
157
157
  }
158
158
  }
@@ -371,7 +371,7 @@ function stringify(obj, opts) {
371
371
  return;
372
372
  }
373
373
 
374
- if (_typeof__default['default'](node) !== 'object' || node === null) {
374
+ if (_typeof__default["default"](node) !== 'object' || node === null) {
375
375
  return json.stringify(node);
376
376
  }
377
377
 
@@ -416,7 +416,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
416
416
 
417
417
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
418
418
 
419
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf__default['default'](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default['default'](this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default['default'](this, result); }; }
419
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf__default["default"](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default["default"](this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default["default"](this, result); }; }
420
420
 
421
421
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
422
422
 
@@ -441,7 +441,7 @@ function isFunction(o) {
441
441
  function withWeapp(weappConf) {
442
442
  var isApp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
443
443
 
444
- if (_typeof__default['default'](weappConf) === 'object' && Object.keys(weappConf).length === 0) {
444
+ if (_typeof__default["default"](weappConf) === 'object' && Object.keys(weappConf).length === 0) {
445
445
  report('withWeapp 请传入“App/页面/组件“的配置对象。如果原生写法使用了基类,请将基类组合后的配置对象传入,详情请参考文档。');
446
446
  }
447
447
 
@@ -470,7 +470,7 @@ function withWeapp(weappConf) {
470
470
  }
471
471
 
472
472
  if (!weappConf.properties.hasOwnProperty(propName)) {
473
- if (propValue && _typeof__default['default'](propValue) === 'object' && propValue.value) {
473
+ if (propValue && _typeof__default["default"](propValue) === 'object' && propValue.value) {
474
474
  propValue.value = clone(propValue.value);
475
475
  }
476
476
 
@@ -481,14 +481,14 @@ function withWeapp(weappConf) {
481
481
  }
482
482
 
483
483
  var BaseComponent = /*#__PURE__*/function (_ConnectComponent) {
484
- _inherits__default['default'](BaseComponent, _ConnectComponent);
484
+ _inherits__default["default"](BaseComponent, _ConnectComponent);
485
485
 
486
486
  var _super = _createSuper(BaseComponent);
487
487
 
488
488
  function BaseComponent(props) {
489
489
  var _this;
490
490
 
491
- _classCallCheck__default['default'](this, BaseComponent);
491
+ _classCallCheck__default["default"](this, BaseComponent);
492
492
 
493
493
  _this = _super.call(this, props);
494
494
  _this._observeProps = []; // mixins 可以多次调用生命周期
@@ -507,7 +507,7 @@ function withWeapp(weappConf) {
507
507
  args[_key - 1] = arguments[_key];
508
508
  }
509
509
 
510
- if (isFunction(func)) func.apply(_assertThisInitialized__default['default'](_this), args);
510
+ if (isFunction(func)) func.apply(_assertThisInitialized__default["default"](_this), args);
511
511
  };
512
512
 
513
513
  _this.setData = function (obj, callback) {
@@ -525,7 +525,7 @@ function withWeapp(weappConf) {
525
525
  _this.triggerObservers(_this.state, oldState);
526
526
 
527
527
  if (callback) {
528
- callback.call(_assertThisInitialized__default['default'](_this));
528
+ callback.call(_assertThisInitialized__default["default"](_this));
529
529
  }
530
530
  });
531
531
  };
@@ -546,7 +546,7 @@ function withWeapp(weappConf) {
546
546
  var func = props["on".concat(eventName[0].toUpperCase()).concat(eventName.slice(1))];
547
547
 
548
548
  if (isFunction(func)) {
549
- func.call(_assertThisInitialized__default['default'](_this), {
549
+ func.call(_assertThisInitialized__default["default"](_this), {
550
550
  type: eventName,
551
551
  detail: detail,
552
552
  target: {
@@ -575,12 +575,12 @@ function withWeapp(weappConf) {
575
575
 
576
576
  _this.init(weappConf);
577
577
 
578
- defineGetter(_assertThisInitialized__default['default'](_this), 'data', 'state');
579
- defineGetter(_assertThisInitialized__default['default'](_this), 'properties', 'props');
578
+ defineGetter(_assertThisInitialized__default["default"](_this), 'data', 'state');
579
+ defineGetter(_assertThisInitialized__default["default"](_this), 'properties', 'props');
580
580
  return _this;
581
581
  }
582
582
 
583
- _createClass__default['default'](BaseComponent, [{
583
+ _createClass__default["default"](BaseComponent, [{
584
584
  key: "initProps",
585
585
  value: function initProps(props) {
586
586
  for (var propKey in props) {
@@ -612,7 +612,7 @@ function withWeapp(weappConf) {
612
612
 
613
613
  try {
614
614
  var _loop = function _loop() {
615
- var _step$value = _slicedToArray__default['default'](_step.value, 2),
615
+ var _step$value = _slicedToArray__default["default"](_step.value, 2),
616
616
  key = _step$value[0],
617
617
  list = _step$value[1];
618
618
 
@@ -755,20 +755,20 @@ function withWeapp(weappConf) {
755
755
 
756
756
  try {
757
757
  var _loop2 = function _loop2() {
758
- var _step2$value = _slicedToArray__default['default'](_step2.value, 2),
758
+ var _step2$value = _slicedToArray__default["default"](_step2.value, 2),
759
759
  key = _step2$value[0],
760
760
  list = _step2$value[1];
761
761
 
762
762
  switch (key) {
763
763
  case 'data':
764
- [].concat(_toConsumableArray__default['default'](list), [_this2.state]).forEach(function (dataObject, index) {
764
+ [].concat(_toConsumableArray__default["default"](list), [_this2.state]).forEach(function (dataObject, index) {
765
765
  Object.keys(dataObject).forEach(function (dataKey) {
766
766
  var value = dataObject[dataKey];
767
767
  var preValue = behaviorData[dataKey];
768
768
 
769
- var valueType = _typeof__default['default'](value);
769
+ var valueType = _typeof__default["default"](value);
770
770
 
771
- var preValueType = _typeof__default['default'](preValue);
771
+ var preValueType = _typeof__default["default"](preValue);
772
772
 
773
773
  if (valueType === 'object') {
774
774
  if (!value) {
@@ -1015,7 +1015,7 @@ function withWeapp(weappConf) {
1015
1015
  }, {
1016
1016
  key: "componentWillMount",
1017
1017
  value: function componentWillMount() {
1018
- this.safeExecute(_get__default['default'](_getPrototypeOf__default['default'](BaseComponent.prototype), "componentWillMount", this));
1018
+ this.safeExecute(_get__default["default"](_getPrototypeOf__default["default"](BaseComponent.prototype), "componentWillMount", this));
1019
1019
  this.executeLifeCycles(this.willMounts, this.current.router || {});
1020
1020
  this.triggerObservers(this.data, BaseComponent.defaultProps);
1021
1021
  this.triggerPropertiesObservers(BaseComponent.defaultProps, this.props);
@@ -1023,7 +1023,7 @@ function withWeapp(weappConf) {
1023
1023
  }, {
1024
1024
  key: "componentDidMount",
1025
1025
  value: function componentDidMount() {
1026
- this.safeExecute(_get__default['default'](_getPrototypeOf__default['default'](BaseComponent.prototype), "componentDidMount", this));
1026
+ this.safeExecute(_get__default["default"](_getPrototypeOf__default["default"](BaseComponent.prototype), "componentDidMount", this));
1027
1027
  this.executeLifeCycles(this.didMounts);
1028
1028
  }
1029
1029
  }, {
@@ -1032,19 +1032,19 @@ function withWeapp(weappConf) {
1032
1032
  this.eventDistoryList.forEach(function (fn) {
1033
1033
  return fn();
1034
1034
  });
1035
- this.safeExecute(_get__default['default'](_getPrototypeOf__default['default'](BaseComponent.prototype), "componentWillUnmount", this));
1035
+ this.safeExecute(_get__default["default"](_getPrototypeOf__default["default"](BaseComponent.prototype), "componentWillUnmount", this));
1036
1036
  this.executeLifeCycles(this.willUnmounts);
1037
1037
  }
1038
1038
  }, {
1039
1039
  key: "componentDidHide",
1040
1040
  value: function componentDidHide() {
1041
- this.safeExecute(_get__default['default'](_getPrototypeOf__default['default'](BaseComponent.prototype), "componentDidHide", this));
1041
+ this.safeExecute(_get__default["default"](_getPrototypeOf__default["default"](BaseComponent.prototype), "componentDidHide", this));
1042
1042
  this.executeLifeCycles(this.didHides);
1043
1043
  }
1044
1044
  }, {
1045
1045
  key: "componentDidShow",
1046
1046
  value: function componentDidShow() {
1047
- this.safeExecute(_get__default['default'](_getPrototypeOf__default['default'](BaseComponent.prototype), "componentDidShow", this), this.current.router || {});
1047
+ this.safeExecute(_get__default["default"](_getPrototypeOf__default["default"](BaseComponent.prototype), "componentDidShow", this), this.current.router || {});
1048
1048
  this.executeLifeCycles(this.didShows, this.current.router || {});
1049
1049
  }
1050
1050
  }, {
@@ -1052,7 +1052,7 @@ function withWeapp(weappConf) {
1052
1052
  value: function componentWillReceiveProps(nextProps) {
1053
1053
  this.triggerObservers(nextProps, this.props);
1054
1054
  this.triggerPropertiesObservers(this.props, nextProps);
1055
- this.safeExecute(_get__default['default'](_getPrototypeOf__default['default'](BaseComponent.prototype), "componentWillReceiveProps", this));
1055
+ this.safeExecute(_get__default["default"](_getPrototypeOf__default["default"](BaseComponent.prototype), "componentWillReceiveProps", this));
1056
1056
  } // ================ 小程序 App, Page, Component 实例属性与方法 ================
1057
1057
 
1058
1058
  }, {
@@ -1119,7 +1119,7 @@ function withWeapp(weappConf) {
1119
1119
  if (propValue != null && !isFunction(propValue)) {
1120
1120
  if (propValue.value !== undefined) {
1121
1121
  // 如果是 null 也赋值到 defaultProps
1122
- BaseComponent.defaultProps = Object.assign(_defineProperty__default['default']({}, propKey, propValue.value), BaseComponent.defaultProps);
1122
+ BaseComponent.defaultProps = Object.assign(_defineProperty__default["default"]({}, propKey, propValue.value), BaseComponent.defaultProps);
1123
1123
  }
1124
1124
  }
1125
1125
  }
@@ -1137,5 +1137,5 @@ function withWeapp(weappConf) {
1137
1137
  };
1138
1138
  }
1139
1139
 
1140
- exports['default'] = withWeapp;
1140
+ exports["default"] = withWeapp;
1141
1141
  //# sourceMappingURL=index.js.map