diff --git a/packages/uni-app-plus/dist/index.js b/packages/uni-app-plus/dist/index.js index 0895c651190c11e9eef0af7ff19124c191256a39..0735b0aac453aa84479b950960288c1f0380d1c6 100644 --- a/packages/uni-app-plus/dist/index.js +++ b/packages/uni-app-plus/dist/index.js @@ -436,13 +436,21 @@ function initMocks (vm, mocks) { function hasHook (hook, vueOptions) { if (!vueOptions) { return true - } - - vueOptions = vueOptions.default || vueOptions; - - if (isFn(vueOptions)) { - vueOptions = vueOptions.extendOptions; - } + } + + vueOptions = vueOptions.default || vueOptions; + + if (isFn(vueOptions)) { + if (isFn(vueOptions.extendOptions[hook])) { + return true + } + if (vueOptions.super && + vueOptions.super.options && + Array.isArray(vueOptions.super.options[hook])) { + return true + } + return false + } if (isFn(vueOptions[hook])) { return true @@ -455,13 +463,13 @@ function hasHook (hook, vueOptions) { function initHooks (mpOptions, hooks, vueOptions) { hooks.forEach(hook => { - if (hasHook(hook, vueOptions)) { + if (hasHook(hook, vueOptions)) { mpOptions[hook] = function (args) { return this.$vm && this.$vm.__call_hook(hook, args) }; } }); -} +} function initVueComponent (Vue$$1, vueOptions) { vueOptions = vueOptions.default || vueOptions; @@ -867,18 +875,18 @@ function handleEvent (event) { }); } -const hooks = [ +const hooks = [ 'onShow', 'onHide', 'onError', 'onPageNotFound' ]; -function parseBaseApp (vm, { +function parseBaseApp (vm, { mocks, initRefs -}) { - Vue.prototype.mpHost = "app-plus"; +}) { + Vue.prototype.mpHost = "app-plus"; Vue.mixin({ beforeCreate () { @@ -907,6 +915,9 @@ function parseBaseApp (vm, { const appOptions = { onLaunch (args) { + if (this.$vm) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前 + return + } this.$vm = vm; diff --git a/packages/uni-app-plus/package.json b/packages/uni-app-plus/package.json index d7ad897db8949c2fde329c498e579ad34527274d..672adabbc18e9a4f85be53745a3ce68ca9d63133 100644 --- a/packages/uni-app-plus/package.json +++ b/packages/uni-app-plus/package.json @@ -1,6 +1,6 @@ { "name": "@dcloudio/uni-app-plus", - "version": "0.0.242", + "version": "0.0.243", "description": "uni-app app-plus", "main": "dist/index.js", "scripts": { diff --git a/packages/uni-mp-alipay/dist/index.js b/packages/uni-mp-alipay/dist/index.js index ff4299896b67dccc69bcfa3a2e4e841b94eab125..0fbfdb73cbfe07a932b455cd53ac3e84897b9405 100644 --- a/packages/uni-mp-alipay/dist/index.js +++ b/packages/uni-mp-alipay/dist/index.js @@ -755,13 +755,21 @@ function initMocks (vm, mocks) { function hasHook (hook, vueOptions) { if (!vueOptions) { return true - } - - vueOptions = vueOptions.default || vueOptions; - - if (isFn(vueOptions)) { - vueOptions = vueOptions.extendOptions; - } + } + + vueOptions = vueOptions.default || vueOptions; + + if (isFn(vueOptions)) { + if (isFn(vueOptions.extendOptions[hook])) { + return true + } + if (vueOptions.super && + vueOptions.super.options && + Array.isArray(vueOptions.super.options[hook])) { + return true + } + return false + } if (isFn(vueOptions[hook])) { return true @@ -774,13 +782,13 @@ function hasHook (hook, vueOptions) { function initHooks (mpOptions, hooks, vueOptions) { hooks.forEach(hook => { - if (hasHook(hook, vueOptions)) { + if (hasHook(hook, vueOptions)) { mpOptions[hook] = function (args) { return this.$vm && this.$vm.__call_hook(hook, args) }; } }); -} +} function initVueComponent (Vue$$1, vueOptions) { vueOptions = vueOptions.default || vueOptions; @@ -1176,18 +1184,18 @@ function handleEvent (event) { }); } -const hooks = [ +const hooks = [ 'onShow', 'onHide', 'onError', 'onPageNotFound' ]; -function parseBaseApp (vm, { +function parseBaseApp (vm, { mocks, initRefs -}) { - Vue.prototype.mpHost = "mp-alipay"; +}) { + Vue.prototype.mpHost = "mp-alipay"; Vue.mixin({ beforeCreate () { @@ -1216,6 +1224,9 @@ function parseBaseApp (vm, { const appOptions = { onLaunch (args) { + if (this.$vm) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前 + return + } this.$vm = vm; diff --git a/packages/uni-mp-alipay/package.json b/packages/uni-mp-alipay/package.json index 805c7ee691970ed77156095a73460da2b98549b3..4f28d70159e67f99bcff21524c24e84ef183f622 100644 --- a/packages/uni-mp-alipay/package.json +++ b/packages/uni-mp-alipay/package.json @@ -1,6 +1,6 @@ { "name": "@dcloudio/uni-mp-alipay", - "version": "0.0.816", + "version": "0.0.817", "description": "uni-app mp-alipay", "main": "dist/index.js", "scripts": { diff --git a/packages/uni-mp-baidu/dist/index.js b/packages/uni-mp-baidu/dist/index.js index 3a0dcb6684a020cf6f62d4cfd32727066cc7c1c2..986be9a1e07fac51fa804c4be4d68a1716abe048 100644 --- a/packages/uni-mp-baidu/dist/index.js +++ b/packages/uni-mp-baidu/dist/index.js @@ -536,13 +536,21 @@ function initMocks (vm, mocks) { function hasHook (hook, vueOptions) { if (!vueOptions) { return true - } - - vueOptions = vueOptions.default || vueOptions; - - if (isFn(vueOptions)) { - vueOptions = vueOptions.extendOptions; - } + } + + vueOptions = vueOptions.default || vueOptions; + + if (isFn(vueOptions)) { + if (isFn(vueOptions.extendOptions[hook])) { + return true + } + if (vueOptions.super && + vueOptions.super.options && + Array.isArray(vueOptions.super.options[hook])) { + return true + } + return false + } if (isFn(vueOptions[hook])) { return true @@ -555,13 +563,13 @@ function hasHook (hook, vueOptions) { function initHooks (mpOptions, hooks, vueOptions) { hooks.forEach(hook => { - if (hasHook(hook, vueOptions)) { + if (hasHook(hook, vueOptions)) { mpOptions[hook] = function (args) { return this.$vm && this.$vm.__call_hook(hook, args) }; } }); -} +} function initVueComponent (Vue$$1, vueOptions) { vueOptions = vueOptions.default || vueOptions; diff --git a/packages/uni-mp-baidu/package.json b/packages/uni-mp-baidu/package.json index 8d25a71c9b5676245b07d8ad1923bd784e2d0d5c..8393c09ab254f28617ffd6ca4f86f5384e4ccdb6 100644 --- a/packages/uni-mp-baidu/package.json +++ b/packages/uni-mp-baidu/package.json @@ -1,6 +1,6 @@ { "name": "@dcloudio/uni-mp-baidu", - "version": "0.0.843", + "version": "0.0.844", "description": "uni-app mp-baidu", "main": "dist/index.js", "scripts": { diff --git a/packages/uni-mp-qq/dist/index.js b/packages/uni-mp-qq/dist/index.js index 58ee21ae7b49e2178995b83b97e348749013d746..4e95168f7879d8c139d299bd2ed5b87c2cf99c2c 100644 --- a/packages/uni-mp-qq/dist/index.js +++ b/packages/uni-mp-qq/dist/index.js @@ -500,13 +500,21 @@ function initMocks (vm, mocks) { function hasHook (hook, vueOptions) { if (!vueOptions) { return true - } - - vueOptions = vueOptions.default || vueOptions; - - if (isFn(vueOptions)) { - vueOptions = vueOptions.extendOptions; - } + } + + vueOptions = vueOptions.default || vueOptions; + + if (isFn(vueOptions)) { + if (isFn(vueOptions.extendOptions[hook])) { + return true + } + if (vueOptions.super && + vueOptions.super.options && + Array.isArray(vueOptions.super.options[hook])) { + return true + } + return false + } if (isFn(vueOptions[hook])) { return true @@ -519,13 +527,13 @@ function hasHook (hook, vueOptions) { function initHooks (mpOptions, hooks, vueOptions) { hooks.forEach(hook => { - if (hasHook(hook, vueOptions)) { + if (hasHook(hook, vueOptions)) { mpOptions[hook] = function (args) { return this.$vm && this.$vm.__call_hook(hook, args) }; } }); -} +} function initVueComponent (Vue$$1, vueOptions) { vueOptions = vueOptions.default || vueOptions; @@ -931,18 +939,18 @@ function handleEvent (event) { }); } -const hooks = [ +const hooks = [ 'onShow', 'onHide', 'onError', 'onPageNotFound' ]; -function parseBaseApp (vm, { +function parseBaseApp (vm, { mocks, initRefs -}) { - Vue.prototype.mpHost = "mp-qq"; +}) { + Vue.prototype.mpHost = "mp-qq"; Vue.mixin({ beforeCreate () { @@ -971,6 +979,9 @@ function parseBaseApp (vm, { const appOptions = { onLaunch (args) { + if (this.$vm) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前 + return + } this.$vm = vm; diff --git a/packages/uni-mp-qq/package.json b/packages/uni-mp-qq/package.json index 8a909f40282a915338a857fbcbae100739c726f3..bdc311d730aca8acd71ded60bfdc6eb27a3c54a3 100644 --- a/packages/uni-mp-qq/package.json +++ b/packages/uni-mp-qq/package.json @@ -1,6 +1,6 @@ { "name": "@dcloudio/uni-mp-qq", - "version": "0.0.100", + "version": "0.0.101", "description": "uni-app mp-qq", "main": "dist/index.js", "scripts": { diff --git a/packages/uni-mp-toutiao/dist/index.js b/packages/uni-mp-toutiao/dist/index.js index c8ad8c95fade93287d63ac853ec2f7e37a8d44c2..ab662aeb5d645878358015bd0084522e8477d08d 100644 --- a/packages/uni-mp-toutiao/dist/index.js +++ b/packages/uni-mp-toutiao/dist/index.js @@ -581,13 +581,21 @@ function initMocks (vm, mocks) { function hasHook (hook, vueOptions) { if (!vueOptions) { return true - } - - vueOptions = vueOptions.default || vueOptions; - - if (isFn(vueOptions)) { - vueOptions = vueOptions.extendOptions; - } + } + + vueOptions = vueOptions.default || vueOptions; + + if (isFn(vueOptions)) { + if (isFn(vueOptions.extendOptions[hook])) { + return true + } + if (vueOptions.super && + vueOptions.super.options && + Array.isArray(vueOptions.super.options[hook])) { + return true + } + return false + } if (isFn(vueOptions[hook])) { return true @@ -600,13 +608,13 @@ function hasHook (hook, vueOptions) { function initHooks (mpOptions, hooks, vueOptions) { hooks.forEach(hook => { - if (hasHook(hook, vueOptions)) { + if (hasHook(hook, vueOptions)) { mpOptions[hook] = function (args) { return this.$vm && this.$vm.__call_hook(hook, args) }; } }); -} +} function initVueComponent (Vue$$1, vueOptions) { vueOptions = vueOptions.default || vueOptions; @@ -1012,18 +1020,18 @@ function handleEvent (event) { }); } -const hooks = [ +const hooks = [ 'onShow', 'onHide', 'onError', 'onPageNotFound' ]; -function parseBaseApp (vm, { +function parseBaseApp (vm, { mocks, initRefs -}) { - Vue.prototype.mpHost = "mp-toutiao"; +}) { + Vue.prototype.mpHost = "mp-toutiao"; Vue.mixin({ beforeCreate () { @@ -1052,6 +1060,9 @@ function parseBaseApp (vm, { const appOptions = { onLaunch (args) { + if (this.$vm) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前 + return + } this.$vm = vm; diff --git a/packages/uni-mp-toutiao/package.json b/packages/uni-mp-toutiao/package.json index d2ef67feadd13a8690e5b98f5e79af3df167d27b..22fd974323186228b17b1801146312318e3cab44 100644 --- a/packages/uni-mp-toutiao/package.json +++ b/packages/uni-mp-toutiao/package.json @@ -1,6 +1,6 @@ { "name": "@dcloudio/uni-mp-toutiao", - "version": "0.0.340", + "version": "0.0.341", "description": "uni-app mp-toutiao", "main": "dist/index.js", "scripts": { diff --git a/packages/uni-mp-weixin/dist/index.js b/packages/uni-mp-weixin/dist/index.js index 1d5da1d3240357d07056675c2ca59dfabb644a83..e1d27e9b7e824400bc2b6b13d13ab4954b4ac8ec 100644 --- a/packages/uni-mp-weixin/dist/index.js +++ b/packages/uni-mp-weixin/dist/index.js @@ -438,13 +438,21 @@ function initMocks (vm, mocks) { function hasHook (hook, vueOptions) { if (!vueOptions) { return true - } - - vueOptions = vueOptions.default || vueOptions; - - if (isFn(vueOptions)) { - vueOptions = vueOptions.extendOptions; - } + } + + vueOptions = vueOptions.default || vueOptions; + + if (isFn(vueOptions)) { + if (isFn(vueOptions.extendOptions[hook])) { + return true + } + if (vueOptions.super && + vueOptions.super.options && + Array.isArray(vueOptions.super.options[hook])) { + return true + } + return false + } if (isFn(vueOptions[hook])) { return true @@ -457,13 +465,13 @@ function hasHook (hook, vueOptions) { function initHooks (mpOptions, hooks, vueOptions) { hooks.forEach(hook => { - if (hasHook(hook, vueOptions)) { + if (hasHook(hook, vueOptions)) { mpOptions[hook] = function (args) { return this.$vm && this.$vm.__call_hook(hook, args) }; } }); -} +} function initVueComponent (Vue$$1, vueOptions) { vueOptions = vueOptions.default || vueOptions; @@ -869,18 +877,18 @@ function handleEvent (event) { }); } -const hooks = [ +const hooks = [ 'onShow', 'onHide', 'onError', 'onPageNotFound' ]; -function parseBaseApp (vm, { +function parseBaseApp (vm, { mocks, initRefs -}) { - Vue.prototype.mpHost = "mp-weixin"; +}) { + Vue.prototype.mpHost = "mp-weixin"; Vue.mixin({ beforeCreate () { @@ -909,6 +917,9 @@ function parseBaseApp (vm, { const appOptions = { onLaunch (args) { + if (this.$vm) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前 + return + } { if (!wx.canIUse('nextTick')) { // 事实 上2.2.3 即可,简单使用 2.3.0 的 nextTick 判断 console.error('当前微信基础库版本过低,请将 微信开发者工具-详情-项目设置-调试基础库版本 更换为`2.3.0`以上'); diff --git a/packages/uni-mp-weixin/package.json b/packages/uni-mp-weixin/package.json index d2f66ba441b890c8c31c470038bf0eca53264bcb..f59fe4098f619610b1d5aeccca669c72ebce05ce 100644 --- a/packages/uni-mp-weixin/package.json +++ b/packages/uni-mp-weixin/package.json @@ -1,6 +1,6 @@ { "name": "@dcloudio/uni-mp-weixin", - "version": "0.0.961", + "version": "0.0.962", "description": "uni-app mp-weixin", "main": "dist/index.js", "scripts": { diff --git a/src/core/runtime/wrapper/util.js b/src/core/runtime/wrapper/util.js index 29c70323b7f4142c622a3a29dafac0680a654bee..6f73dc4b351b3c6fb3a841016e3585c67edb5aef 100644 --- a/src/core/runtime/wrapper/util.js +++ b/src/core/runtime/wrapper/util.js @@ -26,13 +26,21 @@ export function initMocks (vm, mocks) { function hasHook (hook, vueOptions) { if (!vueOptions) { return true - } - - vueOptions = vueOptions.default || vueOptions - - if (isFn(vueOptions)) { - vueOptions = vueOptions.extendOptions - } + } + + vueOptions = vueOptions.default || vueOptions + + if (isFn(vueOptions)) { + if (isFn(vueOptions.extendOptions[hook])) { + return true + } + if (vueOptions.super && + vueOptions.super.options && + Array.isArray(vueOptions.super.options[hook])) { + return true + } + return false + } if (isFn(vueOptions[hook])) { return true @@ -45,13 +53,13 @@ function hasHook (hook, vueOptions) { export function initHooks (mpOptions, hooks, vueOptions) { hooks.forEach(hook => { - if (hasHook(hook, vueOptions)) { + if (hasHook(hook, vueOptions)) { mpOptions[hook] = function (args) { return this.$vm && this.$vm.__call_hook(hook, args) } } }) -} +} export function initVueComponent (Vue, vueOptions) { vueOptions = vueOptions.default || vueOptions