Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yangkaifeng
uni-app
提交
88418d31
U
uni-app
项目概览
yangkaifeng
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
3
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,发现更多精彩内容 >>
提交
88418d31
编写于
6月 06, 2019
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(mp): improve hook logic
上级
69116b84
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
27 addition
and
5 deletion
+27
-5
src/core/runtime/wrapper/util.js
src/core/runtime/wrapper/util.js
+26
-4
src/platforms/mp-weixin/runtime/wrapper/page-base-parser.js
src/platforms/mp-weixin/runtime/wrapper/page-base-parser.js
+1
-1
未找到文件。
src/core/runtime/wrapper/util.js
浏览文件 @
88418d31
...
...
@@ -23,13 +23,35 @@ export function initMocks (vm, mocks) {
})
}
export
function
initHooks
(
mpOptions
,
hooks
)
{
function
hasHook
(
hook
,
vueOptions
)
{
if
(
!
vueOptions
)
{
return
true
}
vueOptions
=
vueOptions
.
default
||
vueOptions
if
(
isFn
(
vueOptions
))
{
vueOptions
=
vueOptions
.
extendOptions
}
if
(
isFn
(
vueOptions
[
hook
]))
{
return
true
}
const
mixins
=
vueOptions
.
mixins
if
(
Array
.
isArray
(
mixins
))
{
return
!!
mixins
.
find
(
mixin
=>
hasHook
(
hook
,
mixin
))
}
}
export
function
initHooks
(
mpOptions
,
hooks
,
vueOptions
)
{
hooks
.
forEach
(
hook
=>
{
mpOptions
[
hook
]
=
function
(
args
)
{
return
this
.
$vm
&&
this
.
$vm
.
__call_hook
(
hook
,
args
)
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
...
...
src/platforms/mp-weixin/runtime/wrapper/page-base-parser.js
浏览文件 @
88418d31
...
...
@@ -22,7 +22,7 @@ export default function parseBasePage (vuePageOptions, {
initRelation
})
initHooks
(
pageOptions
.
methods
,
hooks
)
initHooks
(
pageOptions
.
methods
,
hooks
,
vuePageOptions
)
pageOptions
.
methods
.
onLoad
=
function
(
args
)
{
this
.
$vm
.
$mp
.
query
=
args
// 兼容 mpvue
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录