Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
良好的行为成为习惯
uni-app
提交
0cbbe295
U
uni-app
项目概览
良好的行为成为习惯
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0cbbe295
编写于
3月 18, 2019
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(runtime): 优化 mp-weixin 生命周期
上级
d7b00708
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
99 addition
and
115 deletion
+99
-115
packages/uni-mp-baidu/dist/index.js
packages/uni-mp-baidu/dist/index.js
+18
-25
packages/uni-mp-baidu/package.json
packages/uni-mp-baidu/package.json
+1
-1
packages/uni-mp-toutiao/dist/index.js
packages/uni-mp-toutiao/dist/index.js
+18
-25
packages/uni-mp-toutiao/package.json
packages/uni-mp-toutiao/package.json
+1
-1
packages/uni-mp-weixin/dist/index.js
packages/uni-mp-weixin/dist/index.js
+30
-31
packages/uni-mp-weixin/package.json
packages/uni-mp-weixin/package.json
+1
-1
src/core/runtime/wrapper/create-app.js
src/core/runtime/wrapper/create-app.js
+4
-0
src/core/runtime/wrapper/create-component.js
src/core/runtime/wrapper/create-component.js
+9
-23
src/core/runtime/wrapper/create-page.js
src/core/runtime/wrapper/create-page.js
+5
-2
src/platforms/mp-weixin/runtime/wrapper/index.js
src/platforms/mp-weixin/runtime/wrapper/index.js
+12
-6
未找到文件。
packages/uni-mp-baidu/dist/index.js
浏览文件 @
0cbbe295
...
...
@@ -618,6 +618,10 @@ function createApp (vueOptions) {
initRefs
(
this
);
initMocks
(
this
);
}
},
created
()
{
// 处理 injections
this
.
__init_injections
(
this
);
this
.
__init_provide
(
this
);
}
});
...
...
@@ -697,9 +701,12 @@ function createPage (vueOptions) {
this
.
$vm
=
new
Vue
(
Object
.
assign
(
vueOptions
,
{
mpType
:
'
page
'
,
mpInstance
:
this
}));
}));
this
.
$vm
.
__call_hook
(
'
created
'
);
this
.
$vm
.
$mount
();
this
.
$vm
.
$mount
();
this
.
$vm
.
__call_hook
(
'
onLoad
'
,
args
);
},
onReady
()
{
...
...
@@ -722,16 +729,16 @@ function createPage (vueOptions) {
return
Page
(
pageOptions
)
}
function
initVueComponent
(
mpInstace
,
VueComponent
)
{
function
initVueComponent
(
mpInstace
,
VueComponent
,
extraOptions
=
{}
)
{
if
(
mpInstace
.
$vm
)
{
return
}
const
options
=
{
const
options
=
Object
.
assign
(
{
mpType
:
'
component
'
,
mpInstance
:
mpInstace
,
propsData
:
mpInstace
.
properties
};
}
,
extraOptions
)
;
// 初始化 vue 实例
mpInstace
.
$vm
=
new
VueComponent
(
options
);
...
...
@@ -744,9 +751,6 @@ function initVueComponent (mpInstace, VueComponent) {
});
mpInstace
.
$vm
.
$scopedSlots
=
mpInstace
.
$vm
.
$slots
=
$slots
;
}
// 初始化渲染数据
mpInstace
.
$vm
.
$mount
();
}
function
createComponent
(
vueOptions
)
{
...
...
@@ -769,22 +773,11 @@ function createComponent (vueOptions) {
},
ready
()
{
initVueComponent
(
this
,
VueComponent
);
// 目前发现部分情况小程序 attached 不触发
triggerLink
(
this
);
// 处理 parent,children
triggerLink
(
this
);
const
eventId
=
this
.
dataset
.
eventId
;
if
(
eventId
)
{
const
listeners
=
this
.
$vm
.
$parent
.
$mp
.
listeners
;
if
(
listeners
)
{
const
listenerOpts
=
listeners
[
eventId
];
Object
.
keys
(
listenerOpts
).
forEach
(
eventType
=>
{
listenerOpts
[
eventType
].
forEach
(
handler
=>
{
this
.
$vm
[
handler
.
once
?
'
$once
'
:
'
$on
'
](
eventType
,
handler
);
});
});
}
}
// 初始化渲染数据(需要等 parent,inject 都初始化完成,否则可以放到 attached 里边初始化渲染)
this
.
$vm
.
__call_hook
(
'
created
'
);
this
.
$vm
.
$mount
();
this
.
$vm
.
_isMounted
=
true
;
this
.
$vm
.
__call_hook
(
'
mounted
'
);
this
.
$vm
.
__call_hook
(
'
onReady
'
);
...
...
@@ -801,10 +794,10 @@ function createComponent (vueOptions) {
this
.
$vm
.
__call_hook
(
'
onPageShow
'
,
args
);
},
hide
()
{
this
.
$vm
.
__call_hook
(
'
onPageHide
'
);
this
.
$vm
&&
this
.
$vm
.
__call_hook
(
'
onPageHide
'
);
},
resize
(
size
)
{
this
.
$vm
.
__call_hook
(
'
onPageResize
'
,
size
);
this
.
$vm
&&
this
.
$vm
.
__call_hook
(
'
onPageResize
'
,
size
);
}
},
methods
:
{
...
...
packages/uni-mp-baidu/package.json
浏览文件 @
0cbbe295
{
"name"
:
"@dcloudio/uni-mp-baidu"
,
"version"
:
"0.0.8
09
"
,
"version"
:
"0.0.8
10
"
,
"description"
:
"uni-app mp-baidu"
,
"main"
:
"dist/index.js"
,
"scripts"
:
{
...
...
packages/uni-mp-toutiao/dist/index.js
浏览文件 @
0cbbe295
...
...
@@ -643,6 +643,10 @@ function createApp (vueOptions) {
initRefs
(
this
);
initMocks
(
this
);
}
},
created
()
{
// 处理 injections
this
.
__init_injections
(
this
);
this
.
__init_provide
(
this
);
}
});
...
...
@@ -721,9 +725,12 @@ function createPage (vueOptions) {
this
.
$vm
=
new
Vue
(
Object
.
assign
(
vueOptions
,
{
mpType
:
'
page
'
,
mpInstance
:
this
}));
}));
this
.
$vm
.
__call_hook
(
'
created
'
);
this
.
$vm
.
$mount
();
this
.
$vm
.
$mount
();
this
.
$vm
.
__call_hook
(
'
onLoad
'
,
args
);
},
onReady
()
{
...
...
@@ -746,16 +753,16 @@ function createPage (vueOptions) {
return
Page
(
pageOptions
)
}
function
initVueComponent
(
mpInstace
,
VueComponent
)
{
function
initVueComponent
(
mpInstace
,
VueComponent
,
extraOptions
=
{}
)
{
if
(
mpInstace
.
$vm
)
{
return
}
const
options
=
{
const
options
=
Object
.
assign
(
{
mpType
:
'
component
'
,
mpInstance
:
mpInstace
,
propsData
:
mpInstace
.
properties
};
}
,
extraOptions
)
;
// 初始化 vue 实例
mpInstace
.
$vm
=
new
VueComponent
(
options
);
...
...
@@ -768,9 +775,6 @@ function initVueComponent (mpInstace, VueComponent) {
});
mpInstace
.
$vm
.
$scopedSlots
=
mpInstace
.
$vm
.
$slots
=
$slots
;
}
// 初始化渲染数据
mpInstace
.
$vm
.
$mount
();
}
function
createComponent
(
vueOptions
)
{
...
...
@@ -793,22 +797,11 @@ function createComponent (vueOptions) {
},
ready
()
{
initVueComponent
(
this
,
VueComponent
);
// 目前发现部分情况小程序 attached 不触发
triggerLink
(
this
);
// 处理 parent,children
triggerLink
(
this
);
const
eventId
=
this
.
dataset
.
eventId
;
if
(
eventId
)
{
const
listeners
=
this
.
$vm
.
$parent
.
$mp
.
listeners
;
if
(
listeners
)
{
const
listenerOpts
=
listeners
[
eventId
];
Object
.
keys
(
listenerOpts
).
forEach
(
eventType
=>
{
listenerOpts
[
eventType
].
forEach
(
handler
=>
{
this
.
$vm
[
handler
.
once
?
'
$once
'
:
'
$on
'
](
eventType
,
handler
);
});
});
}
}
// 初始化渲染数据(需要等 parent,inject 都初始化完成,否则可以放到 attached 里边初始化渲染)
this
.
$vm
.
__call_hook
(
'
created
'
);
this
.
$vm
.
$mount
();
this
.
$vm
.
_isMounted
=
true
;
this
.
$vm
.
__call_hook
(
'
mounted
'
);
this
.
$vm
.
__call_hook
(
'
onReady
'
);
...
...
@@ -822,10 +815,10 @@ function createComponent (vueOptions) {
this
.
$vm
.
__call_hook
(
'
onPageShow
'
,
args
);
},
hide
()
{
this
.
$vm
.
__call_hook
(
'
onPageHide
'
);
this
.
$vm
&&
this
.
$vm
.
__call_hook
(
'
onPageHide
'
);
},
resize
(
size
)
{
this
.
$vm
.
__call_hook
(
'
onPageResize
'
,
size
);
this
.
$vm
&&
this
.
$vm
.
__call_hook
(
'
onPageResize
'
,
size
);
}
},
methods
:
{
...
...
packages/uni-mp-toutiao/package.json
浏览文件 @
0cbbe295
{
"name"
:
"@dcloudio/uni-mp-toutiao"
,
"version"
:
"0.0.30
5
"
,
"version"
:
"0.0.30
6
"
,
"description"
:
"uni-app mp-toutiao"
,
"main"
:
"dist/index.js"
,
"scripts"
:
{
...
...
packages/uni-mp-weixin/dist/index.js
浏览文件 @
0cbbe295
...
...
@@ -485,6 +485,10 @@ function createApp (vueOptions) {
initRefs
(
this
);
initMocks
(
this
);
}
},
created
()
{
// 处理 injections
this
.
__init_injections
(
this
);
this
.
__init_provide
(
this
);
}
});
...
...
@@ -507,19 +511,25 @@ function createApp (vueOptions) {
return
vueOptions
}
function
triggerLink
(
mpInstance
)
{
mpInstance
.
triggerEvent
(
'
__l
'
,
mpInstance
.
$vm
,
{
function
triggerLink
(
mpInstance
,
vueOptions
)
{
mpInstance
.
triggerEvent
(
'
__l
'
,
mpInstance
.
$vm
||
vueOptions
,
{
bubbles
:
true
,
composed
:
true
});
}
function
handleLink
(
event
)
{
if
(
!
event
.
detail
.
$parent
)
{
event
.
detail
.
$parent
=
this
.
$vm
;
event
.
detail
.
$parent
.
$children
.
push
(
event
.
detail
);
if
(
event
.
detail
.
$mp
)
{
// vm
if
(
!
event
.
detail
.
$parent
)
{
event
.
detail
.
$parent
=
this
.
$vm
;
event
.
detail
.
$parent
.
$children
.
push
(
event
.
detail
);
event
.
detail
.
$root
=
this
.
$vm
.
$root
;
event
.
detail
.
$root
=
this
.
$vm
.
$root
;
}
}
else
{
// vueOptions
if
(
!
event
.
detail
.
parent
)
{
event
.
detail
.
parent
=
this
.
$vm
;
}
}
}
...
...
@@ -548,9 +558,12 @@ function createPage (vueOptions) {
this
.
$vm
=
new
Vue
(
Object
.
assign
(
vueOptions
,
{
mpType
:
'
page
'
,
mpInstance
:
this
}));
}));
this
.
$vm
.
__call_hook
(
'
created
'
);
this
.
$vm
.
$mount
();
this
.
$vm
.
$mount
();
this
.
$vm
.
__call_hook
(
'
onLoad
'
,
args
);
},
onReady
()
{
...
...
@@ -573,16 +586,16 @@ function createPage (vueOptions) {
return
Page
(
pageOptions
)
}
function
initVueComponent
(
mpInstace
,
VueComponent
)
{
function
initVueComponent
(
mpInstace
,
VueComponent
,
extraOptions
=
{}
)
{
if
(
mpInstace
.
$vm
)
{
return
}
const
options
=
{
const
options
=
Object
.
assign
(
{
mpType
:
'
component
'
,
mpInstance
:
mpInstace
,
propsData
:
mpInstace
.
properties
};
}
,
extraOptions
)
;
// 初始化 vue 实例
mpInstace
.
$vm
=
new
VueComponent
(
options
);
...
...
@@ -595,9 +608,6 @@ function initVueComponent (mpInstace, VueComponent) {
});
mpInstace
.
$vm
.
$scopedSlots
=
mpInstace
.
$vm
.
$slots
=
$slots
;
}
// 初始化渲染数据
mpInstace
.
$vm
.
$mount
();
}
function
createComponent
(
vueOptions
)
{
...
...
@@ -620,22 +630,11 @@ function createComponent (vueOptions) {
},
ready
()
{
initVueComponent
(
this
,
VueComponent
);
// 目前发现部分情况小程序 attached 不触发
triggerLink
(
this
);
// 处理 parent,children
triggerLink
(
this
);
const
eventId
=
this
.
dataset
.
eventId
;
if
(
eventId
)
{
const
listeners
=
this
.
$vm
.
$parent
.
$mp
.
listeners
;
if
(
listeners
)
{
const
listenerOpts
=
listeners
[
eventId
];
Object
.
keys
(
listenerOpts
).
forEach
(
eventType
=>
{
listenerOpts
[
eventType
].
forEach
(
handler
=>
{
this
.
$vm
[
handler
.
once
?
'
$once
'
:
'
$on
'
](
eventType
,
handler
);
});
});
}
}
// 初始化渲染数据(需要等 parent,inject 都初始化完成,否则可以放到 attached 里边初始化渲染)
this
.
$vm
.
__call_hook
(
'
created
'
);
this
.
$vm
.
$mount
();
this
.
$vm
.
_isMounted
=
true
;
this
.
$vm
.
__call_hook
(
'
mounted
'
);
this
.
$vm
.
__call_hook
(
'
onReady
'
);
...
...
@@ -649,10 +648,10 @@ function createComponent (vueOptions) {
this
.
$vm
.
__call_hook
(
'
onPageShow
'
,
args
);
},
hide
()
{
this
.
$vm
.
__call_hook
(
'
onPageHide
'
);
this
.
$vm
&&
this
.
$vm
.
__call_hook
(
'
onPageHide
'
);
},
resize
(
size
)
{
this
.
$vm
.
__call_hook
(
'
onPageResize
'
,
size
);
this
.
$vm
&&
this
.
$vm
.
__call_hook
(
'
onPageResize
'
,
size
);
}
},
methods
:
{
...
...
packages/uni-mp-weixin/package.json
浏览文件 @
0cbbe295
{
"name"
:
"@dcloudio/uni-mp-weixin"
,
"version"
:
"0.0.9
09
"
,
"version"
:
"0.0.9
10
"
,
"description"
:
"uni-app mp-weixin"
,
"main"
:
"dist/index.js"
,
"scripts"
:
{
...
...
src/core/runtime/wrapper/create-app.js
浏览文件 @
0cbbe295
...
...
@@ -33,6 +33,10 @@ export function createApp (vueOptions) {
initRefs
(
this
)
initMocks
(
this
)
}
},
created
()
{
// 处理 injections
this
.
__init_injections
(
this
)
this
.
__init_provide
(
this
)
}
})
...
...
src/core/runtime/wrapper/create-component.js
浏览文件 @
0cbbe295
...
...
@@ -11,16 +11,16 @@ import {
getProperties
}
from
'
./util
'
function
initVueComponent
(
mpInstace
,
VueComponent
)
{
function
initVueComponent
(
mpInstace
,
VueComponent
,
extraOptions
=
{}
)
{
if
(
mpInstace
.
$vm
)
{
return
}
const
options
=
{
const
options
=
Object
.
assign
(
{
mpType
:
'
component
'
,
mpInstance
:
mpInstace
,
propsData
:
mpInstace
.
properties
}
}
,
extraOptions
)
// 初始化 vue 实例
mpInstace
.
$vm
=
new
VueComponent
(
options
)
...
...
@@ -33,9 +33,6 @@ function initVueComponent (mpInstace, VueComponent) {
})
mpInstace
.
$vm
.
$scopedSlots
=
mpInstace
.
$vm
.
$slots
=
$slots
}
// 初始化渲染数据
mpInstace
.
$vm
.
$mount
()
}
export
function
createComponent
(
vueOptions
)
{
...
...
@@ -58,22 +55,11 @@ export function createComponent (vueOptions) {
},
ready
()
{
initVueComponent
(
this
,
VueComponent
)
// 目前发现部分情况小程序 attached 不触发
triggerLink
(
this
)
// 处理 parent,children
triggerLink
(
this
)
const
eventId
=
this
.
dataset
.
eventId
if
(
eventId
)
{
const
listeners
=
this
.
$vm
.
$parent
.
$mp
.
listeners
if
(
listeners
)
{
const
listenerOpts
=
listeners
[
eventId
]
Object
.
keys
(
listenerOpts
).
forEach
(
eventType
=>
{
listenerOpts
[
eventType
].
forEach
(
handler
=>
{
this
.
$vm
[
handler
.
once
?
'
$once
'
:
'
$on
'
](
eventType
,
handler
)
})
})
}
}
// 初始化渲染数据(需要等 parent,inject 都初始化完成,否则可以放到 attached 里边初始化渲染)
this
.
$vm
.
__call_hook
(
'
created
'
)
this
.
$vm
.
$mount
()
this
.
$vm
.
_isMounted
=
true
this
.
$vm
.
__call_hook
(
'
mounted
'
)
this
.
$vm
.
__call_hook
(
'
onReady
'
)
...
...
@@ -90,10 +76,10 @@ export function createComponent (vueOptions) {
this
.
$vm
.
__call_hook
(
'
onPageShow
'
,
args
)
},
hide
()
{
this
.
$vm
.
__call_hook
(
'
onPageHide
'
)
this
.
$vm
&&
this
.
$vm
.
__call_hook
(
'
onPageHide
'
)
},
resize
(
size
)
{
this
.
$vm
.
__call_hook
(
'
onPageResize
'
,
size
)
this
.
$vm
&&
this
.
$vm
.
__call_hook
(
'
onPageResize
'
,
size
)
}
},
methods
:
{
...
...
src/core/runtime/wrapper/create-page.js
浏览文件 @
0cbbe295
...
...
@@ -39,9 +39,12 @@ export function createPage (vueOptions) {
this
.
$vm
=
new
Vue
(
Object
.
assign
(
vueOptions
,
{
mpType
:
'
page
'
,
mpInstance
:
this
}))
}))
this
.
$vm
.
__call_hook
(
'
created
'
)
this
.
$vm
.
$mount
()
this
.
$vm
.
$mount
()
this
.
$vm
.
__call_hook
(
'
onLoad
'
,
args
)
},
onReady
()
{
...
...
src/platforms/mp-weixin/runtime/wrapper/index.js
浏览文件 @
0cbbe295
export
function
triggerLink
(
mpInstance
)
{
mpInstance
.
triggerEvent
(
'
__l
'
,
mpInstance
.
$vm
,
{
export
function
triggerLink
(
mpInstance
,
vueOptions
)
{
mpInstance
.
triggerEvent
(
'
__l
'
,
mpInstance
.
$vm
||
vueOptions
,
{
bubbles
:
true
,
composed
:
true
})
}
export
function
handleLink
(
event
)
{
if
(
!
event
.
detail
.
$parent
)
{
event
.
detail
.
$parent
=
this
.
$vm
event
.
detail
.
$parent
.
$children
.
push
(
event
.
detail
)
if
(
event
.
detail
.
$mp
)
{
// vm
if
(
!
event
.
detail
.
$parent
)
{
event
.
detail
.
$parent
=
this
.
$vm
event
.
detail
.
$parent
.
$children
.
push
(
event
.
detail
)
event
.
detail
.
$root
=
this
.
$vm
.
$root
event
.
detail
.
$root
=
this
.
$vm
.
$root
}
}
else
{
// vueOptions
if
(
!
event
.
detail
.
parent
)
{
event
.
detail
.
parent
=
this
.
$vm
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录