Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
74f861f2
U
uni-app
项目概览
DCloud
/
uni-app
14 天 前同步成功
通知
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看板
提交
74f861f2
编写于
8月 04, 2020
作者:
Q
qiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: 微信小程序、QQ小程序 自定义组件支持 v-show 指令 fixed #1724
上级
edbb10d5
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
29 addition
and
12 deletion
+29
-12
packages/uni-template-compiler/__tests__/compiler.spec.js
packages/uni-template-compiler/__tests__/compiler.spec.js
+4
-0
packages/uni-template-compiler/lib/constants.js
packages/uni-template-compiler/lib/constants.js
+1
-0
packages/uni-template-compiler/lib/template/traverse.js
packages/uni-template-compiler/lib/template/traverse.js
+9
-2
packages/webpack-uni-mp-loader/lib/plugin/generate-app.js
packages/webpack-uni-mp-loader/lib/plugin/generate-app.js
+15
-10
未找到文件。
packages/uni-template-compiler/__tests__/compiler.spec.js
浏览文件 @
74f861f2
...
...
@@ -277,6 +277,10 @@ 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/constants.js
浏览文件 @
74f861f2
...
...
@@ -63,6 +63,7 @@ module.exports = {
ATTR_DATA_EVENT_OPTS
:
'
data-event-opts
'
,
ATTR_DATA_COM_TYPE
:
'
data-com-type
'
,
ATTR_DATA_EVENT_PARAMS
:
'
data-event-params
'
,
ATTE_DATA_CUSTOM_HIDDEN
:
'
data-custom-hidden
'
,
INTERNAL_GET_ORIG
,
INTERNAL_GET_CLASS
,
INTERNAL_GET_STYLE
,
...
...
packages/uni-template-compiler/lib/template/traverse.js
浏览文件 @
74f861f2
...
...
@@ -9,9 +9,14 @@ const {
genCode
,
getCode
,
getForKey
,
traverseKey
traverseKey
,
isComponent
}
=
require
(
'
../util
'
)
const
{
ATTE_DATA_CUSTOM_HIDDEN
}
=
require
(
'
../constants
'
)
module
.
exports
=
function
traverse
(
ast
,
state
=
{})
{
babelTraverse
(
ast
,
{
WithStatement
(
path
)
{
...
...
@@ -222,7 +227,9 @@ function traverseDataNode (dataNode, state, node) {
objectExpression
.
properties
.
find
(
valueProperty
=>
{
const
isValue
=
valueProperty
.
key
.
name
===
'
value
'
if
(
isValue
)
{
ret
.
hidden
=
genCode
(
valueProperty
.
value
,
false
,
true
)
// 自定义组件不支持 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
)
}
return
isValue
})
...
...
packages/webpack-uni-mp-loader/lib/plugin/generate-app.js
浏览文件 @
74f861f2
...
...
@@ -45,6 +45,10 @@ 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;}
'
:
''
if
(
compilation
.
assets
[
`common/main
${
ext
}
`
])
{
// 是否存在 main.css
importMainCss
=
`@import './common/main
${
ext
}
';`
}
...
...
@@ -54,23 +58,23 @@ module.exports = function generateApp (compilation) {
}
const
runtimeJsPath
=
'
common/runtime.js
'
const
asset
=
compilation
.
assets
[
runtimeJsPath
]
if
(
// app 和 baidu 不需要
process
.
env
.
UNI_PLATFORM
!==
'
app-plus
'
&&
process
.
env
.
UNI_PLATFORM
!==
'
mp-baidu
'
&&
asset
&&
asset
&&
!
asset
.
source
.
__$wrappered
)
{
)
{
const
source
=
`
!function(){try{var a=Function("return this")();a&&!a.Math&&(Object.assign(a,{isFinite:isFinite,Array:Array,Date:Date,Error:Error,Function:Function,Math:Math,Object:Object,RegExp:RegExp,String:String,TypeError:TypeError,setTimeout:setTimeout,clearTimeout:clearTimeout,setInterval:setInterval,clearInterval:clearInterval}),"undefined"!=typeof Reflect&&(a.Reflect=Reflect))}catch(a){}}();
${
asset
.
source
()}
`
const
newSource
=
function
()
{
return
source
}
newSource
.
__$wrappered
=
true
`
const
newSource
=
function
()
{
return
source
}
newSource
.
__$wrappered
=
true
compilation
.
assets
[
runtimeJsPath
].
source
=
newSource
}
...
...
@@ -90,6 +94,7 @@ require('./common/main.js')`
},
{
file
:
'
app
'
+
ext
,
source
:
`
${
importMainCss
}
${
importVendorCss
}
`
${
importVendorCss
}
${
presetStyle
}
`
}]
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录