Skip to content

Commit

Permalink
update: 调整百度小程序生命周期
Browse files Browse the repository at this point in the history
  • Loading branch information
Wangyaqi committed Oct 25, 2019
1 parent be93110 commit b4f0634
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 15 deletions.
1 change: 0 additions & 1 deletion package.json
Expand Up @@ -27,7 +27,6 @@
},
"dependencies": {
"base64-arraybuffer": "^0.2.0",
"compare-versions": "^3.5.1",
"intersection-observer": "^0.7.0",
"safe-area-insets": "^1.4.1"
},
Expand Down
39 changes: 25 additions & 14 deletions src/platforms/mp-baidu/runtime/wrapper/component-parser.js
@@ -1,38 +1,49 @@
import {
hasOwn
} from 'uni-shared'

import compareVersions from 'compare-versions'

import {
isPage,
hasOwn
} from 'uni-shared'

import {
isPage,
initRelation
} from './util'

import parseBaseComponent from '../../../mp-weixin/runtime/wrapper/component-base-parser'

export default function parseComponent (vueOptions) {
const newLifecycle = swan.canIUse('lifecycle-2-0')

export default function parseComponent(vueOptions) {
const componentOptions = parseBaseComponent(vueOptions, {
isPage,
initRelation
})

const oldAttached = componentOptions.lifetimes.attached

componentOptions.lifetimes.attached = function attached () {
componentOptions.lifetimes.attached = function attached() {
oldAttached.call(this)
if (isPage.call(this)) { // 百度 onLoad 在 attached 之前触发
// 百度 当组件作为页面时 pageinstancce 不是原来组件的 instance
this.pageinstance.$vm = this.$vm

if (hasOwn(this.pageinstance, '_$args')) {
if (hasOwn(this.pageinstance, '_$args')) {
this.$vm.$mp.query = this.pageinstance._$args
this.$vm.__call_hook('onLoad', this.pageinstance._$args)
this.$vm.__call_hook('onLoad', this.pageinstance._$args)
delete this.pageinstance._$args
}
// TODO 3.105.17以下基础库内百度 Component 作为页面时,methods 中的 onShow 不触发
if (compareVersions.compare(swan.getEnvInfoSync().sdkVersion, '3.105.17', '<')) {
this.$vm.__call_hook('onShow')
// TODO 3.105.17以下基础库内百度 Component 作为页面时,methods 中的 onShow 不触发
!newLifecycle && this.$vm.__call_hook('onShow')
}
}

if (newLifecycle) {
delete componentOptions.lifetimes.ready
componentOptions.methods.onReady = function() {
if (this.$vm) {
this.$vm._isMounted = true
this.$vm.__call_hook('mounted')
this.$vm.__call_hook('onReady')
} else {
// this.is && console.warn(this.is + ' is not attached')
}
}
}
Expand Down

0 comments on commit b4f0634

Please sign in to comment.