From 710d4cfd965da16a76be0240c598c6f22038326c Mon Sep 17 00:00:00 2001 From: qiang Date: Thu, 31 Dec 2020 11:00:28 +0800 Subject: [PATCH] feat(mp): mp-baidu onInit close #2197 --- .../mp-baidu/runtime/wrapper/component-parser.js | 16 ++++++++++++---- .../mp-baidu/runtime/wrapper/page-parser.js | 4 ++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/platforms/mp-baidu/runtime/wrapper/component-parser.js b/src/platforms/mp-baidu/runtime/wrapper/component-parser.js index 47cf6208f..db85b1d1d 100644 --- a/src/platforms/mp-baidu/runtime/wrapper/component-parser.js +++ b/src/platforms/mp-baidu/runtime/wrapper/component-parser.js @@ -1,5 +1,6 @@ import { - hasOwn + hasOwn, + noop } from 'uni-shared' import { @@ -24,10 +25,17 @@ export default function parseComponent (vueOptions) { // 关于百度小程序生命周期的说明(组件作为页面时): // lifetimes:attached --> methods:onShow --> methods:onLoad --> methods:onReady // 这里在强制将onShow挪到onLoad之后触发,另外一处修改在page-parser.js - const oldAttached = componentOptions.lifetimes.attached + let oldAttached = componentOptions.lifetimes.attached + // 百度小程序基础库 3.260 以上支持页面 onInit 生命周期,提前创建 vm 实例 + componentOptions.lifetimes.onInit = function onInit (query) { + oldAttached.call(this) + oldAttached = noop + this.pageinstance.$vm = this.$vm + this.$vm.__call_hook('onInit', query) + } componentOptions.lifetimes.attached = function attached () { oldAttached.call(this) - if (isPage.call(this)) { // 百度 onLoad 在 attached 之前触发 + if (isPage.call(this)) { // 百度 onLoad 在 attached 之前触发(基础库小于 3.70) // 百度 当组件作为页面时 pageinstancce 不是原来组件的 instance this.pageinstance.$vm = this.$vm if (hasOwn(this.pageinstance, '_$args')) { @@ -62,4 +70,4 @@ export default function parseComponent (vueOptions) { delete componentOptions.methods.__l return componentOptions -} +} diff --git a/src/platforms/mp-baidu/runtime/wrapper/page-parser.js b/src/platforms/mp-baidu/runtime/wrapper/page-parser.js index baac54112..3f144471e 100644 --- a/src/platforms/mp-baidu/runtime/wrapper/page-parser.js +++ b/src/platforms/mp-baidu/runtime/wrapper/page-parser.js @@ -42,7 +42,7 @@ export default function parsePage (vuePageOptions) { } pageOptions.methods.onLoad = function onLoad (query) { - // 百度 onLoad 在 attached 之前触发,先存储 args, 在 attached 里边触发 onLoad + // 百度 onLoad 在 attached 之前触发(基础库小于 3.70),先存储 args, 在 attached 里边触发 onLoad if (this.$vm) { const copyQuery = Object.assign({}, query) delete copyQuery.__id__ @@ -63,4 +63,4 @@ export default function parsePage (vuePageOptions) { } return pageOptions -} +} -- GitLab