Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
genary
uni-app
提交
8154200e
U
uni-app
项目概览
genary
/
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,发现更多精彩内容 >>
提交
8154200e
编写于
8月 08, 2021
作者:
Q
qiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(mp): scopedSlotsCompiler augmented
上级
16962672
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
379 addition
and
4 deletion
+379
-4
packages/shims-uni-app.d.ts
packages/shims-uni-app.d.ts
+1
-0
packages/uni-mp-alipay/dist/uni.mp.esm.js
packages/uni-mp-alipay/dist/uni.mp.esm.js
+51
-0
packages/uni-mp-baidu/dist/uni.mp.esm.js
packages/uni-mp-baidu/dist/uni.mp.esm.js
+51
-0
packages/uni-mp-core/src/runtime/componentInstance/index.ts
packages/uni-mp-core/src/runtime/componentInstance/index.ts
+70
-2
packages/uni-mp-kuaishou/dist/uni.mp.esm.js
packages/uni-mp-kuaishou/dist/uni.mp.esm.js
+53
-2
packages/uni-mp-qq/dist/uni.mp.esm.js
packages/uni-mp-qq/dist/uni.mp.esm.js
+51
-0
packages/uni-mp-toutiao/dist/uni.mp.esm.js
packages/uni-mp-toutiao/dist/uni.mp.esm.js
+51
-0
packages/uni-mp-weixin/dist/uni.mp.esm.js
packages/uni-mp-weixin/dist/uni.mp.esm.js
+51
-0
未找到文件。
packages/shims-uni-app.d.ts
浏览文件 @
8154200e
...
...
@@ -157,6 +157,7 @@ declare namespace UniApp {
'
mp-qq
'
?:
PagesJsonPageStyle
'
mp-toutiao
'
?:
PagesJsonPageStyle
'
mp-weixin
'
?:
PagesJsonPageStyle
'
mp-kuaishou
'
?:
PagesJsonPageStyle
'
quickapp-webview
'
?:
PagesJsonPageStyle
'
quickapp-webview-huawei
'
?:
PagesJsonPageStyle
'
quickapp-webview-union
'
?:
PagesJsonPageStyle
...
...
packages/uni-mp-alipay/dist/uni.mp.esm.js
浏览文件 @
8154200e
import
{
isPlainObject
,
isArray
,
extend
,
hyphenate
,
isObject
,
hasOwn
,
toNumber
,
capitalize
,
isFunction
,
NOOP
,
EMPTY_OBJ
,
camelize
}
from
'
@vue/shared
'
;
import
{
onUnmounted
}
from
'
vue
'
;
const
encode
=
encodeURIComponent
;
function
stringifyQuery
(
obj
,
encodeStr
=
encode
)
{
...
...
@@ -391,6 +392,9 @@ function initBaseInstance(instance, options) {
}
function
initComponentInstance
(
instance
,
options
)
{
initBaseInstance
(
instance
,
options
);
{
initScopedSlotsParams
(
instance
);
}
const
ctx
=
instance
.
ctx
;
MP_METHODS
.
forEach
((
method
)
=>
{
ctx
[
method
]
=
function
(...
args
)
{
...
...
@@ -440,6 +444,53 @@ function callHook(name, args) {
}
const
hooks
=
this
.
$
[
name
];
return
hooks
&&
invokeArrayFns
(
hooks
,
args
);
}
const
center
=
{};
const
parents
=
{};
function
initScopedSlotsParams
(
instance
)
{
const
ctx
=
instance
.
ctx
;
ctx
.
$hasScopedSlotsParams
=
function
(
vueId
)
{
const
has
=
center
[
vueId
];
if
(
!
has
)
{
parents
[
vueId
]
=
this
;
onUnmounted
(()
=>
{
delete
parents
[
vueId
];
},
instance
);
}
return
has
;
};
ctx
.
$getScopedSlotsParams
=
function
(
vueId
,
name
,
key
)
{
const
data
=
center
[
vueId
];
if
(
data
)
{
const
object
=
data
[
name
]
||
{};
return
key
?
object
[
key
]
:
object
;
}
else
{
parents
[
vueId
]
=
this
;
onUnmounted
(()
=>
{
delete
parents
[
vueId
];
},
instance
);
}
};
ctx
.
$setScopedSlotsParams
=
function
(
name
,
value
)
{
const
vueIds
=
instance
.
attrs
.
vueId
;
if
(
vueIds
)
{
const
vueId
=
vueIds
.
split
(
'
,
'
)[
0
];
const
object
=
center
[
vueId
]
=
center
[
vueId
]
||
{};
object
[
name
]
=
value
;
if
(
parents
[
vueId
])
{
parents
[
vueId
].
$forceUpdate
();
}
}
};
onUnmounted
(
function
()
{
const
propsData
=
instance
.
attrs
;
const
vueId
=
propsData
&&
propsData
.
vueId
;
if
(
vueId
)
{
delete
center
[
vueId
];
delete
parents
[
vueId
];
}
},
instance
);
}
const
PAGE_HOOKS
=
[
...
...
packages/uni-mp-baidu/dist/uni.mp.esm.js
浏览文件 @
8154200e
import
{
isPlainObject
,
hasOwn
,
isArray
,
extend
,
hyphenate
,
isObject
,
toNumber
,
isFunction
,
NOOP
,
camelize
}
from
'
@vue/shared
'
;
import
{
onUnmounted
}
from
'
vue
'
;
const
encode
=
encodeURIComponent
;
function
stringifyQuery
(
obj
,
encodeStr
=
encode
)
{
...
...
@@ -419,6 +420,9 @@ function initBaseInstance(instance, options) {
}
function
initComponentInstance
(
instance
,
options
)
{
initBaseInstance
(
instance
,
options
);
{
initScopedSlotsParams
(
instance
);
}
const
ctx
=
instance
.
ctx
;
MP_METHODS
.
forEach
((
method
)
=>
{
ctx
[
method
]
=
function
(...
args
)
{
...
...
@@ -465,6 +469,53 @@ function callHook(name, args) {
}
const
hooks
=
this
.
$
[
name
];
return
hooks
&&
invokeArrayFns
(
hooks
,
args
);
}
const
center
=
{};
const
parents
=
{};
function
initScopedSlotsParams
(
instance
)
{
const
ctx
=
instance
.
ctx
;
ctx
.
$hasScopedSlotsParams
=
function
(
vueId
)
{
const
has
=
center
[
vueId
];
if
(
!
has
)
{
parents
[
vueId
]
=
this
;
onUnmounted
(()
=>
{
delete
parents
[
vueId
];
},
instance
);
}
return
has
;
};
ctx
.
$getScopedSlotsParams
=
function
(
vueId
,
name
,
key
)
{
const
data
=
center
[
vueId
];
if
(
data
)
{
const
object
=
data
[
name
]
||
{};
return
key
?
object
[
key
]
:
object
;
}
else
{
parents
[
vueId
]
=
this
;
onUnmounted
(()
=>
{
delete
parents
[
vueId
];
},
instance
);
}
};
ctx
.
$setScopedSlotsParams
=
function
(
name
,
value
)
{
const
vueIds
=
instance
.
attrs
.
vueId
;
if
(
vueIds
)
{
const
vueId
=
vueIds
.
split
(
'
,
'
)[
0
];
const
object
=
center
[
vueId
]
=
center
[
vueId
]
||
{};
object
[
name
]
=
value
;
if
(
parents
[
vueId
])
{
parents
[
vueId
].
$forceUpdate
();
}
}
};
onUnmounted
(
function
()
{
const
propsData
=
instance
.
attrs
;
const
vueId
=
propsData
&&
propsData
.
vueId
;
if
(
vueId
)
{
delete
center
[
vueId
];
delete
parents
[
vueId
];
}
},
instance
);
}
const
PAGE_HOOKS
=
[
...
...
packages/uni-mp-core/src/runtime/componentInstance/index.ts
浏览文件 @
8154200e
...
...
@@ -7,8 +7,11 @@ import {
isObject
,
isPlainObject
,
}
from
'
@vue/shared
'
import
{
ComponentPublicInstance
,
ComponentInternalInstance
}
from
'
vue
'
import
{
ComponentPublicInstance
,
ComponentInternalInstance
,
onUnmounted
,
}
from
'
vue
'
import
{
getEventChannel
}
from
'
../../api/protocols/navigateTo
'
import
{
MPComponentInstance
}
from
'
../component
'
import
{
getClass
,
getStyle
,
getValue
}
from
'
./utils
'
...
...
@@ -167,6 +170,16 @@ export function initComponentInstance(
options
:
CreateComponentOptions
)
{
initBaseInstance
(
instance
,
options
)
if
(
__PLATFORM__
===
'
mp-weixin
'
||
__PLATFORM__
===
'
mp-qq
'
||
__PLATFORM__
===
'
mp-toutiao
'
||
__PLATFORM__
===
'
mp-kuaishou
'
||
__PLATFORM__
===
'
mp-alipay
'
||
__PLATFORM__
===
'
mp-baidu
'
)
{
initScopedSlotsParams
(
instance
)
}
const
ctx
=
(
instance
as
any
).
ctx
MP_METHODS
.
forEach
((
method
)
=>
{
...
...
@@ -225,3 +238,58 @@ function callHook(this: ComponentPublicInstance, name: string, args?: unknown) {
const
hooks
=
(
this
.
$
as
any
)[
name
]
return
hooks
&&
invokeArrayFns
(
hooks
,
args
)
}
const
center
:
Record
<
string
,
any
>
=
{}
const
parents
:
Record
<
string
,
ComponentPublicInstance
>
=
{}
function
initScopedSlotsParams
(
instance
:
ComponentInternalInstance
)
{
const
ctx
=
(
instance
as
any
).
ctx
ctx
.
$hasScopedSlotsParams
=
function
(
vueId
:
string
)
{
const
has
=
center
[
vueId
]
if
(
!
has
)
{
parents
[
vueId
]
=
this
onUnmounted
(()
=>
{
delete
parents
[
vueId
]
},
instance
)
}
return
has
}
ctx
.
$getScopedSlotsParams
=
function
(
vueId
:
string
,
name
:
string
,
key
:
string
)
{
const
data
=
center
[
vueId
]
if
(
data
)
{
const
object
=
data
[
name
]
||
{}
return
key
?
object
[
key
]
:
object
}
else
{
parents
[
vueId
]
=
this
onUnmounted
(()
=>
{
delete
parents
[
vueId
]
},
instance
)
}
}
ctx
.
$setScopedSlotsParams
=
function
(
name
:
string
,
value
:
any
)
{
const
vueIds
=
instance
.
attrs
.
vueId
as
string
if
(
vueIds
)
{
const
vueId
=
vueIds
.
split
(
'
,
'
)[
0
]
const
object
=
(
center
[
vueId
]
=
center
[
vueId
]
||
{})
object
[
name
]
=
value
if
(
parents
[
vueId
])
{
parents
[
vueId
].
$forceUpdate
()
}
}
}
onUnmounted
(
function
()
{
const
propsData
=
instance
.
attrs
const
vueId
=
propsData
&&
(
propsData
.
vueId
as
string
)
if
(
vueId
)
{
delete
center
[
vueId
]
delete
parents
[
vueId
]
}
},
instance
)
}
packages/uni-mp-kuaishou/dist/uni.mp.esm.js
浏览文件 @
8154200e
import
{
isPlainObject
,
hasOwn
,
isArray
,
extend
,
hyphenate
,
isObject
,
toNumber
,
isFunction
,
NOOP
,
camelize
}
from
'
@vue/shared
'
;
import
{
onUnmounted
}
from
'
vue
'
;
const
encode
=
encodeURIComponent
;
function
stringifyQuery
(
obj
,
encodeStr
=
encode
)
{
...
...
@@ -419,6 +420,9 @@ function initBaseInstance(instance, options) {
}
function
initComponentInstance
(
instance
,
options
)
{
initBaseInstance
(
instance
,
options
);
{
initScopedSlotsParams
(
instance
);
}
const
ctx
=
instance
.
ctx
;
MP_METHODS
.
forEach
((
method
)
=>
{
ctx
[
method
]
=
function
(...
args
)
{
...
...
@@ -465,6 +469,53 @@ function callHook(name, args) {
}
const
hooks
=
this
.
$
[
name
];
return
hooks
&&
invokeArrayFns
(
hooks
,
args
);
}
const
center
=
{};
const
parents
=
{};
function
initScopedSlotsParams
(
instance
)
{
const
ctx
=
instance
.
ctx
;
ctx
.
$hasScopedSlotsParams
=
function
(
vueId
)
{
const
has
=
center
[
vueId
];
if
(
!
has
)
{
parents
[
vueId
]
=
this
;
onUnmounted
(()
=>
{
delete
parents
[
vueId
];
},
instance
);
}
return
has
;
};
ctx
.
$getScopedSlotsParams
=
function
(
vueId
,
name
,
key
)
{
const
data
=
center
[
vueId
];
if
(
data
)
{
const
object
=
data
[
name
]
||
{};
return
key
?
object
[
key
]
:
object
;
}
else
{
parents
[
vueId
]
=
this
;
onUnmounted
(()
=>
{
delete
parents
[
vueId
];
},
instance
);
}
};
ctx
.
$setScopedSlotsParams
=
function
(
name
,
value
)
{
const
vueIds
=
instance
.
attrs
.
vueId
;
if
(
vueIds
)
{
const
vueId
=
vueIds
.
split
(
'
,
'
)[
0
];
const
object
=
center
[
vueId
]
=
center
[
vueId
]
||
{};
object
[
name
]
=
value
;
if
(
parents
[
vueId
])
{
parents
[
vueId
].
$forceUpdate
();
}
}
};
onUnmounted
(
function
()
{
const
propsData
=
instance
.
attrs
;
const
vueId
=
propsData
&&
propsData
.
vueId
;
if
(
vueId
)
{
delete
center
[
vueId
];
delete
parents
[
vueId
];
}
},
instance
);
}
const
PAGE_HOOKS
=
[
...
...
@@ -1179,7 +1230,7 @@ function fixSetDataStart(mpInstance) {
mpInstance
.
__fixInitData
=
function
()
{
this
.
setData
=
setData
;
const
fn
=
()
=>
{
setDataArgs
.
forEach
(
args
=>
{
setDataArgs
.
forEach
(
(
args
)
=>
{
setData
.
apply
(
this
,
args
);
});
};
...
...
@@ -1219,7 +1270,7 @@ function parse(componentOptions) {
};
}
var
parseComponentOptions
=
extend
({},
baseParseOptions
,
{
parse
parse
,
});
const
createComponent
=
initCreateComponent
(
parseComponentOptions
);
...
...
packages/uni-mp-qq/dist/uni.mp.esm.js
浏览文件 @
8154200e
import
{
isPlainObject
,
hasOwn
,
isArray
,
extend
,
hyphenate
,
isObject
,
toNumber
,
isFunction
,
NOOP
,
camelize
}
from
'
@vue/shared
'
;
import
{
onUnmounted
}
from
'
vue
'
;
const
encode
=
encodeURIComponent
;
function
stringifyQuery
(
obj
,
encodeStr
=
encode
)
{
...
...
@@ -419,6 +420,9 @@ function initBaseInstance(instance, options) {
}
function
initComponentInstance
(
instance
,
options
)
{
initBaseInstance
(
instance
,
options
);
{
initScopedSlotsParams
(
instance
);
}
const
ctx
=
instance
.
ctx
;
MP_METHODS
.
forEach
((
method
)
=>
{
ctx
[
method
]
=
function
(...
args
)
{
...
...
@@ -465,6 +469,53 @@ function callHook(name, args) {
}
const
hooks
=
this
.
$
[
name
];
return
hooks
&&
invokeArrayFns
(
hooks
,
args
);
}
const
center
=
{};
const
parents
=
{};
function
initScopedSlotsParams
(
instance
)
{
const
ctx
=
instance
.
ctx
;
ctx
.
$hasScopedSlotsParams
=
function
(
vueId
)
{
const
has
=
center
[
vueId
];
if
(
!
has
)
{
parents
[
vueId
]
=
this
;
onUnmounted
(()
=>
{
delete
parents
[
vueId
];
},
instance
);
}
return
has
;
};
ctx
.
$getScopedSlotsParams
=
function
(
vueId
,
name
,
key
)
{
const
data
=
center
[
vueId
];
if
(
data
)
{
const
object
=
data
[
name
]
||
{};
return
key
?
object
[
key
]
:
object
;
}
else
{
parents
[
vueId
]
=
this
;
onUnmounted
(()
=>
{
delete
parents
[
vueId
];
},
instance
);
}
};
ctx
.
$setScopedSlotsParams
=
function
(
name
,
value
)
{
const
vueIds
=
instance
.
attrs
.
vueId
;
if
(
vueIds
)
{
const
vueId
=
vueIds
.
split
(
'
,
'
)[
0
];
const
object
=
center
[
vueId
]
=
center
[
vueId
]
||
{};
object
[
name
]
=
value
;
if
(
parents
[
vueId
])
{
parents
[
vueId
].
$forceUpdate
();
}
}
};
onUnmounted
(
function
()
{
const
propsData
=
instance
.
attrs
;
const
vueId
=
propsData
&&
propsData
.
vueId
;
if
(
vueId
)
{
delete
center
[
vueId
];
delete
parents
[
vueId
];
}
},
instance
);
}
const
PAGE_HOOKS
=
[
...
...
packages/uni-mp-toutiao/dist/uni.mp.esm.js
浏览文件 @
8154200e
import
{
isPlainObject
,
hasOwn
,
isArray
,
extend
,
hyphenate
,
isObject
,
toNumber
,
isFunction
,
NOOP
,
camelize
}
from
'
@vue/shared
'
;
import
{
onUnmounted
}
from
'
vue
'
;
const
encode
=
encodeURIComponent
;
function
stringifyQuery
(
obj
,
encodeStr
=
encode
)
{
...
...
@@ -419,6 +420,9 @@ function initBaseInstance(instance, options) {
}
function
initComponentInstance
(
instance
,
options
)
{
initBaseInstance
(
instance
,
options
);
{
initScopedSlotsParams
(
instance
);
}
const
ctx
=
instance
.
ctx
;
MP_METHODS
.
forEach
((
method
)
=>
{
ctx
[
method
]
=
function
(...
args
)
{
...
...
@@ -465,6 +469,53 @@ function callHook(name, args) {
}
const
hooks
=
this
.
$
[
name
];
return
hooks
&&
invokeArrayFns
(
hooks
,
args
);
}
const
center
=
{};
const
parents
=
{};
function
initScopedSlotsParams
(
instance
)
{
const
ctx
=
instance
.
ctx
;
ctx
.
$hasScopedSlotsParams
=
function
(
vueId
)
{
const
has
=
center
[
vueId
];
if
(
!
has
)
{
parents
[
vueId
]
=
this
;
onUnmounted
(()
=>
{
delete
parents
[
vueId
];
},
instance
);
}
return
has
;
};
ctx
.
$getScopedSlotsParams
=
function
(
vueId
,
name
,
key
)
{
const
data
=
center
[
vueId
];
if
(
data
)
{
const
object
=
data
[
name
]
||
{};
return
key
?
object
[
key
]
:
object
;
}
else
{
parents
[
vueId
]
=
this
;
onUnmounted
(()
=>
{
delete
parents
[
vueId
];
},
instance
);
}
};
ctx
.
$setScopedSlotsParams
=
function
(
name
,
value
)
{
const
vueIds
=
instance
.
attrs
.
vueId
;
if
(
vueIds
)
{
const
vueId
=
vueIds
.
split
(
'
,
'
)[
0
];
const
object
=
center
[
vueId
]
=
center
[
vueId
]
||
{};
object
[
name
]
=
value
;
if
(
parents
[
vueId
])
{
parents
[
vueId
].
$forceUpdate
();
}
}
};
onUnmounted
(
function
()
{
const
propsData
=
instance
.
attrs
;
const
vueId
=
propsData
&&
propsData
.
vueId
;
if
(
vueId
)
{
delete
center
[
vueId
];
delete
parents
[
vueId
];
}
},
instance
);
}
const
PAGE_HOOKS
=
[
...
...
packages/uni-mp-weixin/dist/uni.mp.esm.js
浏览文件 @
8154200e
import
{
isPlainObject
,
hasOwn
,
isArray
,
extend
,
hyphenate
,
isObject
,
toNumber
,
isFunction
,
NOOP
,
camelize
}
from
'
@vue/shared
'
;
import
{
onUnmounted
}
from
'
vue
'
;
const
encode
=
encodeURIComponent
;
function
stringifyQuery
(
obj
,
encodeStr
=
encode
)
{
...
...
@@ -365,6 +366,9 @@ function initBaseInstance(instance, options) {
}
function
initComponentInstance
(
instance
,
options
)
{
initBaseInstance
(
instance
,
options
);
{
initScopedSlotsParams
(
instance
);
}
const
ctx
=
instance
.
ctx
;
MP_METHODS
.
forEach
((
method
)
=>
{
ctx
[
method
]
=
function
(...
args
)
{
...
...
@@ -411,6 +415,53 @@ function callHook(name, args) {
}
const
hooks
=
this
.
$
[
name
];
return
hooks
&&
invokeArrayFns
(
hooks
,
args
);
}
const
center
=
{};
const
parents
=
{};
function
initScopedSlotsParams
(
instance
)
{
const
ctx
=
instance
.
ctx
;
ctx
.
$hasScopedSlotsParams
=
function
(
vueId
)
{
const
has
=
center
[
vueId
];
if
(
!
has
)
{
parents
[
vueId
]
=
this
;
onUnmounted
(()
=>
{
delete
parents
[
vueId
];
},
instance
);
}
return
has
;
};
ctx
.
$getScopedSlotsParams
=
function
(
vueId
,
name
,
key
)
{
const
data
=
center
[
vueId
];
if
(
data
)
{
const
object
=
data
[
name
]
||
{};
return
key
?
object
[
key
]
:
object
;
}
else
{
parents
[
vueId
]
=
this
;
onUnmounted
(()
=>
{
delete
parents
[
vueId
];
},
instance
);
}
};
ctx
.
$setScopedSlotsParams
=
function
(
name
,
value
)
{
const
vueIds
=
instance
.
attrs
.
vueId
;
if
(
vueIds
)
{
const
vueId
=
vueIds
.
split
(
'
,
'
)[
0
];
const
object
=
center
[
vueId
]
=
center
[
vueId
]
||
{};
object
[
name
]
=
value
;
if
(
parents
[
vueId
])
{
parents
[
vueId
].
$forceUpdate
();
}
}
};
onUnmounted
(
function
()
{
const
propsData
=
instance
.
attrs
;
const
vueId
=
propsData
&&
propsData
.
vueId
;
if
(
vueId
)
{
delete
center
[
vueId
];
delete
parents
[
vueId
];
}
},
instance
);
}
const
PAGE_HOOKS
=
[
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录