提交 710d4cfd 编写于 作者: Q qiang

feat(mp): mp-baidu onInit close #2197

上级 6f66a82b
import { import {
hasOwn hasOwn,
noop
} from 'uni-shared' } from 'uni-shared'
import { import {
...@@ -24,10 +25,17 @@ export default function parseComponent (vueOptions) { ...@@ -24,10 +25,17 @@ export default function parseComponent (vueOptions) {
// 关于百度小程序生命周期的说明(组件作为页面时): // 关于百度小程序生命周期的说明(组件作为页面时):
// lifetimes:attached --> methods:onShow --> methods:onLoad --> methods:onReady // lifetimes:attached --> methods:onShow --> methods:onLoad --> methods:onReady
// 这里在强制将onShow挪到onLoad之后触发,另外一处修改在page-parser.js // 这里在强制将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 () { componentOptions.lifetimes.attached = function attached () {
oldAttached.call(this) oldAttached.call(this)
if (isPage.call(this)) { // 百度 onLoad 在 attached 之前触发 if (isPage.call(this)) { // 百度 onLoad 在 attached 之前触发(基础库小于 3.70)
// 百度 当组件作为页面时 pageinstancce 不是原来组件的 instance // 百度 当组件作为页面时 pageinstancce 不是原来组件的 instance
this.pageinstance.$vm = this.$vm this.pageinstance.$vm = this.$vm
if (hasOwn(this.pageinstance, '_$args')) { if (hasOwn(this.pageinstance, '_$args')) {
...@@ -62,4 +70,4 @@ export default function parseComponent (vueOptions) { ...@@ -62,4 +70,4 @@ export default function parseComponent (vueOptions) {
delete componentOptions.methods.__l delete componentOptions.methods.__l
return componentOptions return componentOptions
} }
...@@ -42,7 +42,7 @@ export default function parsePage (vuePageOptions) { ...@@ -42,7 +42,7 @@ export default function parsePage (vuePageOptions) {
} }
pageOptions.methods.onLoad = function onLoad (query) { pageOptions.methods.onLoad = function onLoad (query) {
// 百度 onLoad 在 attached 之前触发,先存储 args, 在 attached 里边触发 onLoad // 百度 onLoad 在 attached 之前触发(基础库小于 3.70),先存储 args, 在 attached 里边触发 onLoad
if (this.$vm) { if (this.$vm) {
const copyQuery = Object.assign({}, query) const copyQuery = Object.assign({}, query)
delete copyQuery.__id__ delete copyQuery.__id__
...@@ -63,4 +63,4 @@ export default function parsePage (vuePageOptions) { ...@@ -63,4 +63,4 @@ export default function parsePage (vuePageOptions) {
} }
return pageOptions return pageOptions
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册