diff --git a/src/platforms/mp-baidu/runtime/wrapper/component-parser.js b/src/platforms/mp-baidu/runtime/wrapper/component-parser.js index db85b1d1dfbb6c5257c5bb7af481c621a15c7bb2..7014fd46db1515c116581ba928b6c10885d30a63 100644 --- a/src/platforms/mp-baidu/runtime/wrapper/component-parser.js +++ b/src/platforms/mp-baidu/runtime/wrapper/component-parser.js @@ -1,6 +1,5 @@ import { - hasOwn, - noop + hasOwn } from 'uni-shared' import { @@ -25,16 +24,17 @@ export default function parseComponent (vueOptions) { // 关于百度小程序生命周期的说明(组件作为页面时): // lifetimes:attached --> methods:onShow --> methods:onLoad --> methods:onReady // 这里在强制将onShow挪到onLoad之后触发,另外一处修改在page-parser.js - let oldAttached = componentOptions.lifetimes.attached + const 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 (!this.$vm) { + oldAttached.call(this) + } if (isPage.call(this)) { // 百度 onLoad 在 attached 之前触发(基础库小于 3.70) // 百度 当组件作为页面时 pageinstancce 不是原来组件的 instance this.pageinstance.$vm = this.$vm