问题描述
我们有这样的东西:
.child
a.child-2
img(src)
如果我想为此元素添加包装,我会这样做:
if something === true
.parent
.child
a.child-2
img(src)
else
.child
a.child-2
img(src)
如果有很多孩子,我们会遇到加倍和可读性差的问题 我该如何为包装元素单独编写条件,而无需做出else语句并复制其中的每个子元素?
解决方法
这是Pug mixin with a mixin block的绝佳用例:
mixin conditionalWrapper(arg)
if arg
.parent
block
else
block
block
声明将呈现mixin的所有子级。可以这样使用。如果参数为true
,则内容将在.parent
包装器中呈现。如果为假,将在不使用包装的情况下进行渲染。
- let something = true
+conditionalWrapper(something)
.child
a.child-2
img(src)