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

npm run build:runtime

上级 89f96a04
...@@ -245,7 +245,7 @@ function isSyncApi (name) { ...@@ -245,7 +245,7 @@ function isSyncApi (name) {
} }
function isCallbackApi (name) { function isCallbackApi (name) {
return CALLBACK_API_RE.test(name) return CALLBACK_API_RE.test(name) && name !== 'onPush'
} }
function handlePromise (promise) { function handlePromise (promise) {
...@@ -1287,11 +1287,13 @@ function parseBaseComponent (vueComponentOptions, { ...@@ -1287,11 +1287,13 @@ function parseBaseComponent (vueComponentOptions, {
} = {}) { } = {}) {
let [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions); let [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions);
const options = {
multipleSlots: true,
addGlobalClass: true
};
const componentOptions = { const componentOptions = {
options: { options,
multipleSlots: true,
addGlobalClass: true
},
data: initData(vueOptions, Vue.prototype), data: initData(vueOptions, Vue.prototype),
behaviors: initBehaviors(vueOptions, initBehavior), behaviors: initBehaviors(vueOptions, initBehavior),
properties: initProperties(vueOptions.props, false, vueOptions.__file), properties: initProperties(vueOptions.props, false, vueOptions.__file),
......
...@@ -245,7 +245,7 @@ function isSyncApi (name) { ...@@ -245,7 +245,7 @@ function isSyncApi (name) {
} }
function isCallbackApi (name) { function isCallbackApi (name) {
return CALLBACK_API_RE.test(name) return CALLBACK_API_RE.test(name) && name !== 'onPush'
} }
function handlePromise (promise) { function handlePromise (promise) {
...@@ -1665,9 +1665,10 @@ const customizeRE = /:/g; ...@@ -1665,9 +1665,10 @@ const customizeRE = /:/g;
const customize = cached((str) => { const customize = cached((str) => {
return camelize(str.replace(customizeRE, '-')) return camelize(str.replace(customizeRE, '-'))
}); });
const isComponent2 = my.canIUse('component2'); // 钉钉小程序是 component2 模式
const isComponent2 = my.dd || my.canIUse('component2');
const mocks = ['$id']; const mocks = ['$id'];
......
...@@ -245,7 +245,7 @@ function isSyncApi (name) { ...@@ -245,7 +245,7 @@ function isSyncApi (name) {
} }
function isCallbackApi (name) { function isCallbackApi (name) {
return CALLBACK_API_RE.test(name) return CALLBACK_API_RE.test(name) && name !== 'onPush'
} }
function handlePromise (promise) { function handlePromise (promise) {
...@@ -1420,11 +1420,13 @@ function parseBaseComponent (vueComponentOptions, { ...@@ -1420,11 +1420,13 @@ function parseBaseComponent (vueComponentOptions, {
} = {}) { } = {}) {
let [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions); let [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions);
const options = {
multipleSlots: true,
addGlobalClass: true
};
const componentOptions = { const componentOptions = {
options: { options,
multipleSlots: true,
addGlobalClass: true
},
data: initData(vueOptions, Vue.prototype), data: initData(vueOptions, Vue.prototype),
behaviors: initBehaviors(vueOptions, initBehavior), behaviors: initBehaviors(vueOptions, initBehavior),
properties: initProperties(vueOptions.props, false, vueOptions.__file), properties: initProperties(vueOptions.props, false, vueOptions.__file),
...@@ -1505,23 +1507,29 @@ function parseComponent (vueOptions) { ...@@ -1505,23 +1507,29 @@ function parseComponent (vueOptions) {
const componentOptions = parseBaseComponent(vueOptions, { const componentOptions = parseBaseComponent(vueOptions, {
isPage, isPage,
initRelation initRelation
}); });
// 关于百度小程序新生命周期(2.0)的说明(组件作为页面时):
// lifetimes:attached --> methods:onShow --> methods:onLoad --> methods:onReady
// 这里在新生命周期强制将onShow挪到onLoad之后触发,另外一处修改在page-parser.js
const oldAttached = componentOptions.lifetimes.attached; const oldAttached = componentOptions.lifetimes.attached;
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 之前触发
// 百度 当组件作为页面时 pageinstancce 不是原来组件的 instance // 百度 当组件作为页面时 pageinstancce 不是原来组件的 instance
this.pageinstance.$vm = this.$vm; this.pageinstance.$vm = this.$vm;
if (hasOwn(this.pageinstance, '_$args')) { if (hasOwn(this.pageinstance, '_$args')) {
this.$vm.$mp.query = 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);
this.$vm.__call_hook('onShow');
delete this.pageinstance._$args; delete this.pageinstance._$args;
} }
// TODO 3.105.17以下基础库内百度 Component 作为页面时,methods 中的 onShow 不触发 } else {
!newLifecycle && this.$vm.__call_hook('onShow'); // 百度小程序组件不触发methods内的onReady
if (this.$vm) {
this.$vm._isMounted = true;
this.$vm.__call_hook('mounted');
}
} }
}; };
...@@ -1588,13 +1596,21 @@ function parsePage (vuePageOptions) { ...@@ -1588,13 +1596,21 @@ function parsePage (vuePageOptions) {
initRelation initRelation
}); });
const newLifecycle = swan.canIUse('lifecycle-2-0');
// 纠正百度小程序新生命周期(2.0)methods:onShow在methods:onLoad之前触发的问题
if (newLifecycle) {
delete pageOptions.methods.onShow;
}
pageOptions.methods.onLoad = function onLoad (args) { pageOptions.methods.onLoad = function onLoad (args) {
// 百度 onLoad 在 attached 之前触发,先存储 args, 在 attached 里边触发 onLoad // 百度 onLoad 在 attached 之前触发,先存储 args, 在 attached 里边触发 onLoad
if (this.$vm) { if (this.$vm) {
this.$vm.$mp.query = args; this.$vm.$mp.query = args;
this.$vm.__call_hook('onLoad', args); this.$vm.__call_hook('onLoad', args);
} else { this.$vm.__call_hook('onShow');
this.pageinstance._$args = args; } else {
this.pageinstance._$args = args;
} }
}; };
......
...@@ -245,7 +245,7 @@ function isSyncApi (name) { ...@@ -245,7 +245,7 @@ function isSyncApi (name) {
} }
function isCallbackApi (name) { function isCallbackApi (name) {
return CALLBACK_API_RE.test(name) return CALLBACK_API_RE.test(name) && name !== 'onPush'
} }
function handlePromise (promise) { function handlePromise (promise) {
...@@ -1334,11 +1334,13 @@ function parseBaseComponent (vueComponentOptions, { ...@@ -1334,11 +1334,13 @@ function parseBaseComponent (vueComponentOptions, {
} = {}) { } = {}) {
let [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions); let [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions);
const options = {
multipleSlots: true,
addGlobalClass: true
};
const componentOptions = { const componentOptions = {
options: { options,
multipleSlots: true,
addGlobalClass: true
},
data: initData(vueOptions, Vue.prototype), data: initData(vueOptions, Vue.prototype),
behaviors: initBehaviors(vueOptions, initBehavior), behaviors: initBehaviors(vueOptions, initBehavior),
properties: initProperties(vueOptions.props, false, vueOptions.__file), properties: initProperties(vueOptions.props, false, vueOptions.__file),
......
...@@ -245,7 +245,7 @@ function isSyncApi (name) { ...@@ -245,7 +245,7 @@ function isSyncApi (name) {
} }
function isCallbackApi (name) { function isCallbackApi (name) {
return CALLBACK_API_RE.test(name) return CALLBACK_API_RE.test(name) && name !== 'onPush'
} }
function handlePromise (promise) { function handlePromise (promise) {
...@@ -1511,11 +1511,13 @@ function parseBaseComponent (vueComponentOptions, { ...@@ -1511,11 +1511,13 @@ function parseBaseComponent (vueComponentOptions, {
} = {}) { } = {}) {
let [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions); let [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions);
const options = {
multipleSlots: true,
addGlobalClass: true
};
const componentOptions = { const componentOptions = {
options: { options,
multipleSlots: true,
addGlobalClass: true
},
data: initData(vueOptions, Vue.prototype), data: initData(vueOptions, Vue.prototype),
behaviors: initBehaviors(vueOptions, initBehavior), behaviors: initBehaviors(vueOptions, initBehavior),
properties: initProperties(vueOptions.props, false, vueOptions.__file), properties: initProperties(vueOptions.props, false, vueOptions.__file),
......
...@@ -245,7 +245,7 @@ function isSyncApi (name) { ...@@ -245,7 +245,7 @@ function isSyncApi (name) {
} }
function isCallbackApi (name) { function isCallbackApi (name) {
return CALLBACK_API_RE.test(name) return CALLBACK_API_RE.test(name) && name !== 'onPush'
} }
function handlePromise (promise) { function handlePromise (promise) {
...@@ -1275,11 +1275,20 @@ function parseBaseComponent (vueComponentOptions, { ...@@ -1275,11 +1275,20 @@ function parseBaseComponent (vueComponentOptions, {
} = {}) { } = {}) {
let [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions); let [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions);
const options = {
multipleSlots: true,
addGlobalClass: true
};
{
// 微信multipleSlots 部分情况有 bug,导致内容顺序错乱 如 u-list,提供覆盖选项
if (vueOptions['mp-weixin'] && vueOptions['mp-weixin']['options']) {
Object.assign(options, vueOptions['mp-weixin']['options']);
}
}
const componentOptions = { const componentOptions = {
options: { options,
multipleSlots: true,
addGlobalClass: true
},
data: initData(vueOptions, Vue.prototype), data: initData(vueOptions, Vue.prototype),
behaviors: initBehaviors(vueOptions, initBehavior), behaviors: initBehaviors(vueOptions, initBehavior),
properties: initProperties(vueOptions.props, false, vueOptions.__file), properties: initProperties(vueOptions.props, false, vueOptions.__file),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册