Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
897d4fe0
U
uni-app
项目概览
DCloud
/
uni-app
6 个月 前同步成功
通知
751
Star
38709
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
8
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
8
Issue
8
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
897d4fe0
编写于
7月 21, 2022
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(mp): id as props (#3722)
上级
78738bb2
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
12 addition
and
6 deletion
+12
-6
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
+9
-3
未找到文件。
packages/uni-mp-compiler/__tests__/component.spec.ts
浏览文件 @
897d4fe0
...
...
@@ -101,10 +101,10 @@ describe('compiler: transform component', () => {
})
test
(
`component with props`
,
()
=>
{
assert
(
`<uni-collapse id="id" ref="a" :ref="b" slot="c" :slot="d" class="e" :class="f" style="g:g;" :style="h" @click="i" v-model:first="j" v-model:last="k" prop-a="l" :prop-b="m" data-a="n" :data-b="o" key="p" :key="r" is="s" :is="t"/>`
,
`<uni-collapse id="id"
ref="a" ref="{{a}}" slot="c" slot="{{b}}" class="{{['e', c]}}" style="{{'g:g' + ';' + d}}" bindclick="{{e}}" data-a="n" data-b="{{f}}" key="p" key="{{g}}" is="s" is="{{h}}" u-i="2a9ec0b0-0" bindupdateFirst="{{i}}" bindupdateLast="{{j}}" u-p="{{k
}}"/>`
,
`<uni-collapse id="id"
:id="id"
ref="a" :ref="b" slot="c" :slot="d" class="e" :class="f" style="g:g;" :style="h" @click="i" v-model:first="j" v-model:last="k" prop-a="l" :prop-b="m" data-a="n" :data-b="o" key="p" :key="r" is="s" :is="t"/>`
,
`<uni-collapse id="id"
id="{{a}}" ref="a" ref="{{b}}" slot="c" slot="{{c}}" class="{{['e', d]}}" style="{{'g:g' + ';' + e}}" bindclick="{{f}}" data-a="n" data-b="{{g}}" key="p" key="{{h}}" is="s" is="{{i}}" u-i="2a9ec0b0-0" bindupdateFirst="{{j}}" bindupdateLast="{{k}}" u-p="{{l
}}"/>`
,
`(_ctx, _cache) => {
return { a: _ctx.
b, b: _ctx.d, c: _n(_ctx.f), d: _s(_ctx.h), e: _o(_ctx.i), f: _ctx.o, g: _ctx.r, h: _ctx.t, i: _o($event => _ctx.j = $event), j: _o($event => _ctx.k = $event), k: _p({
['prop-a']: 'l', ['prop-b']: _ctx.m, first: _ctx.j, last: _ctx.k }) }
return { a: _ctx.
id, b: _ctx.b, c: _ctx.d, d: _n(_ctx.f), e: _s(_ctx.h), f: _o(_ctx.i), g: _ctx.o, h: _ctx.r, i: _ctx.t, j: _o($event => _ctx.j = $event), k: _o($event => _ctx.k = $event), l: _p({ id: 'id', id: _ctx.id,
['prop-a']: 'l', ['prop-b']: _ctx.m, first: _ctx.j, last: _ctx.k }) }
}`
)
assert
(
...
...
packages/uni-mp-compiler/src/transforms/transformComponent.ts
浏览文件 @
897d4fe0
...
...
@@ -116,7 +116,7 @@ function processBooleanAttr({ props }: ComponentNode) {
}
const
builtInProps
=
[
'
id
'
,
//
'id',
'
class
'
,
'
style
'
,
ATTR_VUE_ID
,
...
...
@@ -172,8 +172,10 @@ export function rewriteBinding(
const
properties
:
(
ObjectProperty
|
SpreadElement
)[]
=
[]
for
(
let
i
=
0
;
i
<
props
.
length
;
i
++
)
{
const
prop
=
props
[
i
]
let
isIdProp
=
false
if
(
isAttributeNode
(
prop
))
{
const
{
name
}
=
prop
isIdProp
=
name
===
'
id
'
if
(
!
isComponentProp
(
name
))
{
continue
}
...
...
@@ -194,6 +196,7 @@ export function rewriteBinding(
properties
.
push
(
spreadElement
)
}
}
else
if
(
isStaticExp
(
arg
))
{
isIdProp
=
arg
.
content
===
'
id
'
if
(
!
isComponentProp
(
arg
.
content
))
{
continue
}
...
...
@@ -222,8 +225,11 @@ export function rewriteBinding(
)
}
}
props
.
splice
(
i
,
1
)
i
--
// 即保留 id 属性,又补充到 props 中
if
(
!
isIdProp
)
{
props
.
splice
(
i
,
1
)
i
--
}
}
if
(
properties
.
length
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录