提交 d80ed2c2 编写于 作者: fxy060608's avatar fxy060608

fix(mp): improve hasHook #300

上级 9b63b254
......@@ -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;
......
{
"name": "@dcloudio/uni-app-plus",
"version": "0.0.242",
"version": "0.0.243",
"description": "uni-app app-plus",
"main": "dist/index.js",
"scripts": {
......
......@@ -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;
......
{
"name": "@dcloudio/uni-mp-alipay",
"version": "0.0.816",
"version": "0.0.817",
"description": "uni-app mp-alipay",
"main": "dist/index.js",
"scripts": {
......
......@@ -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;
......
{
"name": "@dcloudio/uni-mp-baidu",
"version": "0.0.843",
"version": "0.0.844",
"description": "uni-app mp-baidu",
"main": "dist/index.js",
"scripts": {
......
......@@ -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;
......
{
"name": "@dcloudio/uni-mp-qq",
"version": "0.0.100",
"version": "0.0.101",
"description": "uni-app mp-qq",
"main": "dist/index.js",
"scripts": {
......
......@@ -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;
......
{
"name": "@dcloudio/uni-mp-toutiao",
"version": "0.0.340",
"version": "0.0.341",
"description": "uni-app mp-toutiao",
"main": "dist/index.js",
"scripts": {
......
......@@ -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`以上');
......
{
"name": "@dcloudio/uni-mp-weixin",
"version": "0.0.961",
"version": "0.0.962",
"description": "uni-app mp-weixin",
"main": "dist/index.js",
"scripts": {
......
......@@ -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
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册