diff --git a/packages/uni-mp-alipay/dist/uni.mp.esm.js b/packages/uni-mp-alipay/dist/uni.mp.esm.js index e55aab36f948abe2fcea0e7d073f5e3356143ca8..80b4049ffd16b46571c5d9975ff320818a20512a 100644 --- a/packages/uni-mp-alipay/dist/uni.mp.esm.js +++ b/packages/uni-mp-alipay/dist/uni.mp.esm.js @@ -320,6 +320,7 @@ function parseApp(instance, parseAppOptions) { globalData: (instance.$options && instance.$options.globalData) || {}, $vm: instance, onLaunch(options) { + this.$vm = instance; // 飞书小程序可能会把 AppOptions 序列化,导致 $vm 对象部分属性丢失 const ctx = internalInstance.ctx; if (this.$vm && ctx.$scope) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前 diff --git a/packages/uni-mp-baidu/dist/uni.mp.esm.js b/packages/uni-mp-baidu/dist/uni.mp.esm.js index 4a0b41bad19b92eac18c84216487c5e897c699f5..d6972a6c7f2e708968d4ed359199483da8571387 100644 --- a/packages/uni-mp-baidu/dist/uni.mp.esm.js +++ b/packages/uni-mp-baidu/dist/uni.mp.esm.js @@ -347,6 +347,7 @@ function parseApp(instance, parseAppOptions) { globalData: (instance.$options && instance.$options.globalData) || {}, $vm: instance, onLaunch(options) { + this.$vm = instance; // 飞书小程序可能会把 AppOptions 序列化,导致 $vm 对象部分属性丢失 const ctx = internalInstance.ctx; if (this.$vm && ctx.$scope) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前 @@ -962,7 +963,7 @@ function initLifetimes({ mocks, isPage, initRelation, vueOptions, }) { { initSetRef(this); } - const properties = this.properties; + let properties = this.properties; initVueIds(properties.uI, this); const relationOptions = { vuePid: this._$vuePid, @@ -972,19 +973,16 @@ function initLifetimes({ mocks, isPage, initRelation, vueOptions, }) { // 初始化 vue 实例 const mpInstance = this; const isMiniProgramPage = isPage(mpInstance); - let propsData = {}; + let propsData = properties; if (isMiniProgramPage) { - // 百度小程序在 onInit 时就可以临时存储下页面参数 - const { _$props } = this.pageinstance; - delete this.pageinstance._$props; - propsData = findPropsData(_$props, true); - } - else { - propsData = findPropsData(properties, isMiniProgramPage); + { + propsData = this.pageinstance._$props; + delete this.pageinstance._$props; + } } this.$vm = $createComponent({ type: vueOptions, - props: propsData, + props: findPropsData(propsData, isMiniProgramPage), }, { mpType: isMiniProgramPage ? 'page' : 'component', mpInstance, diff --git a/packages/uni-mp-core/src/runtime/app.ts b/packages/uni-mp-core/src/runtime/app.ts index 359f9c8d462b2b410673ad51b896a76482abcc1c..66f073b5607039e7f7adc6220dbdc9faeb34bcf2 100644 --- a/packages/uni-mp-core/src/runtime/app.ts +++ b/packages/uni-mp-core/src/runtime/app.ts @@ -45,6 +45,7 @@ export function parseApp( globalData: (instance.$options && instance.$options.globalData) || {}, $vm: instance, // mp-alipay 组件 data 初始化比 onLaunch 早,提前挂载 onLaunch(options: App.LaunchShowOption) { + this.$vm = instance // 飞书小程序可能会把 AppOptions 序列化,导致 $vm 对象部分属性丢失 const ctx = (internalInstance as any).ctx as Record if (this.$vm && ctx.$scope) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前 diff --git a/packages/uni-mp-kuaishou/dist/uni.mp.esm.js b/packages/uni-mp-kuaishou/dist/uni.mp.esm.js index f8e5561651920ee785d9a90a8f460107eb6ba200..989fd103bf8740837ceb98e9bf781458706e22f5 100644 --- a/packages/uni-mp-kuaishou/dist/uni.mp.esm.js +++ b/packages/uni-mp-kuaishou/dist/uni.mp.esm.js @@ -345,6 +345,7 @@ function parseApp(instance, parseAppOptions) { globalData: (instance.$options && instance.$options.globalData) || {}, $vm: instance, onLaunch(options) { + this.$vm = instance; // 飞书小程序可能会把 AppOptions 序列化,导致 $vm 对象部分属性丢失 const ctx = internalInstance.ctx; if (this.$vm && ctx.$scope) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前 @@ -931,7 +932,7 @@ function initLifetimes({ mocks, isPage, initRelation, vueOptions, }) { { initSetRef(this); } - const properties = this.properties; + let properties = this.properties; initVueIds(properties.uI, this); const relationOptions = { vuePid: this._$vuePid, @@ -941,13 +942,15 @@ function initLifetimes({ mocks, isPage, initRelation, vueOptions, }) { // 初始化 vue 实例 const mpInstance = this; const isMiniProgramPage = isPage(mpInstance); - let propsData = {}; - { - propsData = findPropsData(properties, isMiniProgramPage); + let propsData = properties; + if (isMiniProgramPage) { + { + propsData = this.options; + } } this.$vm = $createComponent({ type: vueOptions, - props: propsData, + props: findPropsData(propsData, isMiniProgramPage), }, { mpType: isMiniProgramPage ? 'page' : 'component', mpInstance, diff --git a/packages/uni-mp-lark/dist/uni.mp.esm.js b/packages/uni-mp-lark/dist/uni.mp.esm.js index 7c9a9dddd08121a206ff9ddb87b98c28c2992b21..64feead570c180d3808419105485575a39eaf18a 100644 --- a/packages/uni-mp-lark/dist/uni.mp.esm.js +++ b/packages/uni-mp-lark/dist/uni.mp.esm.js @@ -344,6 +344,7 @@ function parseApp(instance, parseAppOptions) { globalData: (instance.$options && instance.$options.globalData) || {}, $vm: instance, onLaunch(options) { + this.$vm = instance; // 飞书小程序可能会把 AppOptions 序列化,导致 $vm 对象部分属性丢失 const ctx = internalInstance.ctx; if (this.$vm && ctx.$scope) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前 diff --git a/packages/uni-mp-qq/dist/uni.mp.esm.js b/packages/uni-mp-qq/dist/uni.mp.esm.js index a044ead6c5ac7f5e9d122795f2b32be4b04cd906..2bb87397eab8abdc0292657645edfabfa9d48f3c 100644 --- a/packages/uni-mp-qq/dist/uni.mp.esm.js +++ b/packages/uni-mp-qq/dist/uni.mp.esm.js @@ -341,6 +341,7 @@ function parseApp(instance, parseAppOptions) { globalData: (instance.$options && instance.$options.globalData) || {}, $vm: instance, onLaunch(options) { + this.$vm = instance; // 飞书小程序可能会把 AppOptions 序列化,导致 $vm 对象部分属性丢失 const ctx = internalInstance.ctx; if (this.$vm && ctx.$scope) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前 @@ -856,7 +857,7 @@ Component = function (options) { function initLifetimes({ mocks, isPage, initRelation, vueOptions, }) { return { attached() { - const properties = this.properties; + let properties = this.properties; initVueIds(properties.uI, this); const relationOptions = { vuePid: this._$vuePid, @@ -866,13 +867,10 @@ function initLifetimes({ mocks, isPage, initRelation, vueOptions, }) { // 初始化 vue 实例 const mpInstance = this; const isMiniProgramPage = isPage(mpInstance); - let propsData = {}; - { - propsData = findPropsData(properties, isMiniProgramPage); - } + let propsData = properties; this.$vm = $createComponent({ type: vueOptions, - props: propsData, + props: findPropsData(propsData, isMiniProgramPage), }, { mpType: isMiniProgramPage ? 'page' : 'component', mpInstance, diff --git a/packages/uni-mp-toutiao/dist/uni.mp.esm.js b/packages/uni-mp-toutiao/dist/uni.mp.esm.js index 59a1a2258ee0d9ce655fbfd5411277e6a62f93ce..58fba4894fe370b38619965cf354970ab6ef22c6 100644 --- a/packages/uni-mp-toutiao/dist/uni.mp.esm.js +++ b/packages/uni-mp-toutiao/dist/uni.mp.esm.js @@ -344,6 +344,7 @@ function parseApp(instance, parseAppOptions) { globalData: (instance.$options && instance.$options.globalData) || {}, $vm: instance, onLaunch(options) { + this.$vm = instance; // 飞书小程序可能会把 AppOptions 序列化,导致 $vm 对象部分属性丢失 const ctx = internalInstance.ctx; if (this.$vm && ctx.$scope) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前 diff --git a/packages/uni-mp-weixin/dist/uni.mp.esm.js b/packages/uni-mp-weixin/dist/uni.mp.esm.js index 8151adff989e14a9edbd275add5740e2a9cf1af9..14bfe97ada1d64529c210c8ddda75219c07739e5 100644 --- a/packages/uni-mp-weixin/dist/uni.mp.esm.js +++ b/packages/uni-mp-weixin/dist/uni.mp.esm.js @@ -278,6 +278,7 @@ function parseApp(instance, parseAppOptions) { globalData: (instance.$options && instance.$options.globalData) || {}, $vm: instance, onLaunch(options) { + this.$vm = instance; // 飞书小程序可能会把 AppOptions 序列化,导致 $vm 对象部分属性丢失 const ctx = internalInstance.ctx; if (this.$vm && ctx.$scope) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前 @@ -793,7 +794,7 @@ Component = function (options) { function initLifetimes({ mocks, isPage, initRelation, vueOptions, }) { return { attached() { - const properties = this.properties; + let properties = this.properties; initVueIds(properties.uI, this); const relationOptions = { vuePid: this._$vuePid, @@ -803,13 +804,10 @@ function initLifetimes({ mocks, isPage, initRelation, vueOptions, }) { // 初始化 vue 实例 const mpInstance = this; const isMiniProgramPage = isPage(mpInstance); - let propsData = {}; - { - propsData = findPropsData(properties, isMiniProgramPage); - } + let propsData = properties; this.$vm = $createComponent({ type: vueOptions, - props: propsData, + props: findPropsData(propsData, isMiniProgramPage), }, { mpType: isMiniProgramPage ? 'page' : 'component', mpInstance, diff --git a/packages/uni-quickapp-webview/dist/uni.mp.esm.js b/packages/uni-quickapp-webview/dist/uni.mp.esm.js index fb9f64058d08985ec96ab6d1260edbd123caa52a..c4f92bbdf34d7d85c99b697eb57c2d5da37ff6d0 100644 --- a/packages/uni-quickapp-webview/dist/uni.mp.esm.js +++ b/packages/uni-quickapp-webview/dist/uni.mp.esm.js @@ -406,6 +406,7 @@ function parseApp(instance, parseAppOptions) { globalData: (instance.$options && instance.$options.globalData) || {}, $vm: instance, onLaunch(options) { + this.$vm = instance; // 飞书小程序可能会把 AppOptions 序列化,导致 $vm 对象部分属性丢失 const ctx = internalInstance.ctx; if (this.$vm && ctx.$scope) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前