Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
fed8c872
U
uni-app
项目概览
DCloud
/
uni-app
大约 1 个月 前同步成功
通知
702
Star
38704
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
fed8c872
编写于
12月 19, 2021
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(mp): camelize props (#3071)
上级
ab2f2c98
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
22 addition
and
19 deletion
+22
-19
packages/uni-mp-compiler/__tests__/component.spec.ts
packages/uni-mp-compiler/__tests__/component.spec.ts
+3
-3
packages/uni-mp-compiler/src/transforms/transformComponent.ts
...ages/uni-mp-compiler/src/transforms/transformComponent.ts
+19
-16
未找到文件。
packages/uni-mp-compiler/__tests__/component.spec.ts
浏览文件 @
fed8c872
...
...
@@ -115,10 +115,10 @@ describe('compiler: transform component', () => {
},
})
assert
(
`<van-button><template #default><view/></template><template #head><view/></template></van-button>`
,
`<van-button u-t="m" u-i="dc555fe4-0" bind:__l="__l"><view/><view slot="head"/></van-button>`
,
`<van-button
custom-style="background-color: unset;" :close-on-click-overlay="true"
><template #default><view/></template><template #head><view/></template></van-button>`
,
`<van-button u-t="m" u-i="dc555fe4-0" bind:__l="__l"
u-p="{{a}}"
><view/><view slot="head"/></van-button>`
,
`(_ctx, _cache) => {
return {}
return {
a: _p({ customStyle: 'background-color: unset;', closeOnClickOverlay: true })
}
}`
,
{
filename
,
...
...
packages/uni-mp-compiler/src/transforms/transformComponent.ts
浏览文件 @
fed8c872
import
{
camelize
}
from
'
@vue/shared
'
import
{
ComponentNode
,
createSimpleExpression
,
...
...
@@ -23,6 +24,7 @@ import {
}
from
'
./utils
'
import
{
genExpr
,
genBabelExpr
}
from
'
../codegen
'
import
{
Expression
,
identifier
,
logicalExpression
,
objectExpression
,
...
...
@@ -140,9 +142,23 @@ function isComponentProp(name: string) {
* @param context
*/
export
function
rewriteBinding
(
{
props
}:
ComponentNode
,
{
tag
,
props
}:
ComponentNode
,
context
:
TransformContext
)
{
const
isMiniProgramComponent
=
context
.
isMiniProgramComponent
(
tag
)
const
createObjectProperty
=
isMiniProgramComponent
?
(
name
:
string
,
value
:
Expression
)
=>
objectProperty
(
identifier
(
camelize
(
name
)),
value
)
:
(
name
:
string
,
value
:
Expression
)
=>
{
const
computed
=
!
isSimpleIdentifier
(
name
)
return
objectProperty
(
computed
?
stringLiteral
(
name
)
:
identifier
(
name
),
value
,
computed
)
}
const
properties
:
ObjectProperty
[]
=
[]
for
(
let
i
=
0
;
i
<
props
.
length
;
i
++
)
{
const
prop
=
props
[
i
]
...
...
@@ -151,13 +167,8 @@ export function rewriteBinding(
if
(
!
isComponentProp
(
name
))
{
continue
}
const
computed
=
!
isSimpleIdentifier
(
name
)
properties
.
push
(
objectProperty
(
computed
?
stringLiteral
(
name
)
:
identifier
(
name
),
stringLiteral
(
prop
.
value
?.
content
||
''
),
computed
)
createObjectProperty
(
name
,
stringLiteral
(
prop
.
value
?.
content
||
''
))
)
}
else
if
(
prop
.
type
===
NodeTypes
.
DIRECTIVE
)
{
if
(
prop
.
name
!==
'
bind
'
)
{
...
...
@@ -176,15 +187,7 @@ export function rewriteBinding(
if
(
!
valueExpr
)
{
continue
}
const
name
=
arg
.
content
const
computed
=
!
isSimpleIdentifier
(
name
)
properties
.
push
(
objectProperty
(
computed
?
stringLiteral
(
name
)
:
identifier
(
name
),
valueExpr
,
computed
)
)
properties
.
push
(
createObjectProperty
(
arg
.
content
,
valueExpr
))
}
else
{
// :[dynamic]="dynamic"
const
leftExpr
=
parseExpr
(
genExpr
(
arg
),
context
,
exp
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录