Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
2e9ef422
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看板
提交
2e9ef422
编写于
8月 04, 2020
作者:
Q
qiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: 字节跳动小程序自定义组件支持 v-show 指令
上级
74f861f2
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
40 addition
and
21 deletion
+40
-21
packages/uni-template-compiler/__tests__/compiler-mp-toutiao.spec.js
...i-template-compiler/__tests__/compiler-mp-toutiao.spec.js
+20
-13
packages/uni-template-compiler/__tests__/compiler-mp-weixin.spec.js
...ni-template-compiler/__tests__/compiler-mp-weixin.spec.js
+7
-0
packages/uni-template-compiler/__tests__/compiler.spec.js
packages/uni-template-compiler/__tests__/compiler.spec.js
+0
-4
packages/uni-template-compiler/lib/template/traverse.js
packages/uni-template-compiler/lib/template/traverse.js
+10
-2
packages/webpack-uni-mp-loader/lib/plugin/generate-app.js
packages/webpack-uni-mp-loader/lib/plugin/generate-app.js
+3
-2
未找到文件。
packages/uni-template-compiler/__tests__/compiler-mp-toutiao.spec.js
浏览文件 @
2e9ef422
const
compiler
=
require
(
'
../lib
'
)
function
assertCodegen
(
template
,
templateCode
,
renderCode
=
'
with(this){}
'
,
options
=
{})
{
const
res
=
compiler
.
compile
(
template
,
{
const
res
=
compiler
.
compile
(
template
,
{
resourcePath
:
'
test.wxml
'
,
mp
:
Object
.
assign
({
minified
:
true
,
minified
:
true
,
isTest
:
true
,
platform
:
'
mp-toutiao
'
},
options
)
...
...
@@ -20,13 +20,13 @@ describe('mp:compiler-mp-toutiao', () => {
'
<view><view v-for="(item,index) in items" :key="index"></view></view>
'
,
'
<view><block tt:for="{{items}}" tt:for-item="item" tt:for-index="index" tt:key="index"><view></view></block></view>
'
)
})
it
(
'
generate ref
'
,
()
=>
{
assertCodegen
(
'
<my-component ref="ref"></my-component>
'
,
'
<my-component class="vue-ref" vue-id="551070e6-1" data-ref="ref" bind:__l="__l"></my-component>
'
)
})
it
(
'
generate ref
'
,
()
=>
{
assertCodegen
(
'
<my-component ref="ref"></my-component>
'
,
'
<my-component class="vue-ref" vue-id="551070e6-1" data-ref="ref" bind:__l="__l"></my-component>
'
)
})
it
(
'
generate class binding
'
,
()
=>
{
...
...
@@ -49,10 +49,10 @@ describe('mp:compiler-mp-toutiao', () => {
assertCodegen
(
'
<p class="static" :class="[{ active: isActive }, errorClass]">5</p>
'
,
'
<view class="{{(((
\'
static _p
\'
)+
\'
\'
+[(isActive)?
\'
active
\'
:
\'\'
])+
\'
\'
+errorClass)}}">5</view>
'
)
assertCodegen
(
'
<div class="container" :class="computedClassObject">6</div>
'
,
'
<view class="{{((
\'
container _div
\'
)+
\'
\'
+computedClassObject)}}">6</view>
'
)
assertCodegen
(
'
<div class="container" :class="computedClassObject">6</div>
'
,
'
<view class="{{((
\'
container _div
\'
)+
\'
\'
+computedClassObject)}}">6</view>
'
)
// assertCodegen(
// `<div class="container" :class="computedClassObject">6</div>`,
...
...
@@ -72,4 +72,11 @@ describe('mp:compiler-mp-toutiao', () => {
'
<view class="{{((
\'
bg _p
\'
)+
\'
\'
+(classStr1||classStr2))}}">9</view>
'
)
})
it
(
'
generate v-show directive
'
,
()
=>
{
assertCodegen
(
'
<test v-show="shown">hello world</test>
'
,
'
<test bind:-data-custom-hidden="{{!(shown)}}" vue-id="551070e6-1" bind:__l="__l" vue-slots="{{[
\'
default
\'
]}}">hello world</test>
'
)
})
})
packages/uni-template-compiler/__tests__/compiler-mp-weixin.spec.js
浏览文件 @
2e9ef422
...
...
@@ -132,4 +132,11 @@ describe('mp:compiler-mp-weixin', () => {
)
assertCodegen
(
'
<test :obj="{x:0}"></test>
'
,
'
<test vue-id="551070e6-1" obj="{{({x:0})}}" bind:__l="__l"></test>
'
)
})
it
(
'
generate v-show directive
'
,
()
=>
{
assertCodegen
(
'
<test v-show="shown">hello world</test>
'
,
'
<test data-custom-hidden="{{!(shown)}}" vue-id="551070e6-1" bind:__l="__l" vue-slots="{{[
\'
default
\'
]}}">hello world</test>
'
)
})
})
packages/uni-template-compiler/__tests__/compiler.spec.js
浏览文件 @
2e9ef422
...
...
@@ -277,10 +277,6 @@ describe('mp:compiler', () => {
'
<view v-show="shown">hello world</view>
'
,
'
<view hidden="{{!(shown)}}">hello world</view>
'
)
assertCodegen
(
'
<test v-show="shown">hello world</test>
'
,
'
<test data-custom-hidden="{{!(shown)}}" vue-id="551070e6-1" bind:__l="__l" vue-slots="{{[
\'
default
\'
]}}">hello world</test>
'
)
})
it
(
'
generate DOM props with v-bind directive
'
,
()
=>
{
...
...
packages/uni-template-compiler/lib/template/traverse.js
浏览文件 @
2e9ef422
...
...
@@ -227,9 +227,17 @@ function traverseDataNode (dataNode, state, node) {
objectExpression
.
properties
.
find
(
valueProperty
=>
{
const
isValue
=
valueProperty
.
key
.
name
===
'
value
'
if
(
isValue
)
{
let
key
// 自定义组件不支持 hidden 属性
const
platforms
=
[
'
mp-weixin
'
,
'
mp-qq
'
]
ret
[
platforms
.
includes
(
state
.
options
.
platform
.
name
)
&&
isComponent
(
node
.
type
)
?
ATTE_DATA_CUSTOM_HIDDEN
:
'
hidden
'
]
=
genCode
(
valueProperty
.
value
,
false
,
true
)
const
platform
=
state
.
options
.
platform
.
name
const
platforms
=
[
'
mp-weixin
'
,
'
mp-qq
'
,
'
mp-toutiao
'
]
if
(
isComponent
(
node
.
type
)
&&
platforms
.
includes
(
platform
))
{
// 字节跳动小程序自定义属性不会反应在DOM上,只能使用事件格式
key
=
`
${
platform
===
'
mp-toutiao
'
?
'
bind:-
'
:
''
}${
ATTE_DATA_CUSTOM_HIDDEN
}
`
}
else
{
key
=
'
hidden
'
}
ret
[
key
]
=
genCode
(
valueProperty
.
value
,
false
,
true
)
}
return
isValue
})
...
...
packages/webpack-uni-mp-loader/lib/plugin/generate-app.js
浏览文件 @
2e9ef422
...
...
@@ -46,8 +46,9 @@ module.exports = function generateApp (compilation) {
}
// 框架预设样式 用于隐藏自定义组件
const
platforms
=
[
'
mp-weixin
'
,
'
mp-qq
'
]
const
presetStyle
=
platforms
.
includes
(
process
.
env
.
UNI_PLATFORM
)
?
'
[data-custom-hidden="true"]{display: none !important;}
'
:
''
// TODO 分平台 import 不同 css
const
platforms
=
[
'
mp-weixin
'
,
'
mp-qq
'
,
'
mp-toutiao
'
]
const
presetStyle
=
platforms
.
includes
(
process
.
env
.
UNI_PLATFORM
)
?
'
[data-custom-hidden="true"],[bind-data-custom-hidden="true"]{display: none !important;}
'
:
''
if
(
compilation
.
assets
[
`common/main
${
ext
}
`
])
{
// 是否存在 main.css
importMainCss
=
`@import './common/main
${
ext
}
';`
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录