有时候我们会决定页面中的节点是否渲染,因此,需要用到条件渲染
。条件渲染分为 if...elif/else,和 show 。
show
允许节点渲染到页面上,只是让该节点的样式设为 display: none;
if
不会把节点渲染到页面上,根据条件来选择哪个节点被渲染。
用 if 来条件渲染节点:
<div class="container">
<text if="{{ flag == 'foo' }}">foo</text>
<text elif="{{ flag == 'bar' }}">bar</text>
<text else>foobar</text>
</div>
export default {
data: {
flag: 'bar'
},
}
很显然,只会渲染第二个 text 节点。
现在用 show 来条件渲染节点:
<div class="container">
<text show="{{ flag == 'foo' }}">foo</text>
<text show="{{ flag == 'bar' }}">bar</text>
<text show="{{ flag == 'foobar' }}">foobar</text>
</div>
如下图,会把所有的节点全部渲染到页面中,没有显示的节点只是设置 display 样式为 none 。
!注意:禁止在同一个元素上同时设置 for 和 if 属性。