Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
ff89c56c
U
uni-app
项目概览
DCloud
/
uni-app
3 个月 前同步成功
通知
725
Star
38705
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,发现更多精彩内容 >>
提交
ff89c56c
编写于
12月 21, 2021
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(mp): component with v-else (#3096)
上级
238dae0f
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
14 addition
and
3 deletion
+14
-3
packages/uni-mp-compiler/__tests__/component.spec.ts
packages/uni-mp-compiler/__tests__/component.spec.ts
+8
-0
packages/uni-mp-compiler/__tests__/vIf.spec.ts
packages/uni-mp-compiler/__tests__/vIf.spec.ts
+1
-1
packages/uni-mp-compiler/src/transforms/transformComponent.ts
...ages/uni-mp-compiler/src/transforms/transformComponent.ts
+4
-1
packages/uni-mp-compiler/src/transforms/transformIdentifier.ts
...ges/uni-mp-compiler/src/transforms/transformIdentifier.ts
+1
-1
未找到文件。
packages/uni-mp-compiler/__tests__/component.spec.ts
浏览文件 @
ff89c56c
...
...
@@ -104,9 +104,17 @@ describe('compiler: transform component', () => {
`<uni-collapse ref="a" ref="{{a}}" slot="c" slot="{{b}}" class="{{['e', c]}}" style="{{'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}}"/>`
,
`(_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 }) }
}`
)
assert
(
`<uni-collapse v-if="ok" :accordion="true"/><uni-collapse v-else :accordion="true"/>`
,
`<uni-collapse wx:if="{{a}}" u-i="2a9ec0b0-0" u-p="{{b}}"/><uni-collapse wx:else u-i="2a9ec0b0-1" u-p="{{c||''}}"/>`
,
`(_ctx, _cache) => {
return _e({ a: _ctx.ok }, _ctx.ok ? { b: _p({ accordion: true }) } : { c: _p({ accordion: true }) })
}`
)
})
test
(
`mini program component`
,
()
=>
{
const
filename
=
'
pages/vant/vant
'
addMiniProgramPageJson
(
filename
,
{
...
...
packages/uni-mp-compiler/__tests__/vIf.spec.ts
浏览文件 @
ff89c56c
...
...
@@ -179,7 +179,7 @@ describe(`compiler: v-if`, () => {
test
(
`v-for + v-if + v-else`
,
()
=>
{
assert
(
`<view v-for="item in items"><uni-icons v-if="ok"/><uni-icons v-else :title="item.title"/></view>`
,
`<view wx:for="{{a}}" wx:for-item="item"><uni-icons wx:if="{{b}}" u-i="{{item.a}}"/><uni-icons wx:else u-i="{{item.b}}" u-p="{{item.c}}"/></view>`
,
`<view wx:for="{{a}}" wx:for-item="item"><uni-icons wx:if="{{b}}" u-i="{{item.a}}"/><uni-icons wx:else u-i="{{item.b}}" u-p="{{item.c
||''
}}"/></view>`
,
`(_ctx, _cache) => {
return { a: _f(_ctx.items, (item, k0, i0) => { return _ctx.ok ? { a: '2a9ec0b0-0' + '-' + i0 } : { b: '2a9ec0b0-1' + '-' + i0, c: _p({ title: item.title }) }; }), b: _ctx.ok }
}`
...
...
packages/uni-mp-compiler/src/transforms/transformComponent.ts
浏览文件 @
ff89c56c
...
...
@@ -3,6 +3,7 @@ import {
ComponentNode
,
createSimpleExpression
,
DirectiveNode
,
ElementNode
,
isSimpleIdentifier
,
isStaticExp
,
NodeTypes
,
...
...
@@ -34,6 +35,7 @@ import {
}
from
'
@babel/types
'
import
{
RENDER_PROPS
}
from
'
../runtimeHelpers
'
import
{
parseExpr
}
from
'
../ast
'
import
{
isIfElementNode
}
from
'
./vIf
'
export
const
transformComponent
:
NodeTransform
=
(
node
,
context
)
=>
{
if
(
!
isUserComponent
(
node
,
context
as
any
))
{
...
...
@@ -229,6 +231,7 @@ export function isPropsBinding({ arg }: DirectiveNode) {
export
function
rewritePropsBinding
(
dir
:
DirectiveNode
,
node
:
ElementNode
,
context
:
TransformContext
)
{
dir
.
exp
=
createSimpleExpression
(
...
...
@@ -239,6 +242,6 @@ export function rewritePropsBinding(
dir
.
loc
,
context
)
!
)
)
+
(
isIfElementNode
(
node
)
&&
node
.
vIf
.
name
===
'
else
'
?
`||''`
:
''
)
)
}
packages/uni-mp-compiler/src/transforms/transformIdentifier.ts
浏览文件 @
ff89c56c
...
...
@@ -81,7 +81,7 @@ export const transformIdentifier: NodeTransform = (node, context) => {
hasStyleBinding
=
true
rewriteStyle
(
i
,
dir
,
props
,
context
)
}
else
if
(
isPropsBinding
(
dir
))
{
rewritePropsBinding
(
dir
,
context
)
rewritePropsBinding
(
dir
,
node
,
context
)
}
else
{
dir
.
exp
=
rewriteExpression
(
exp
,
context
)
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录