学习如何在Svelte中使用模板,特别是如何使用条件语句
任何好的网络模板语言都会为你提供至少两样东西:一个条件结构和一个循环。
Svelte也不例外,在这篇文章中,我将介绍一下条件结构。
你想看一个值/表达式,如果它指向一个真值,就做一些事情,如果它指向一个假值,就做其他事情。
Svelte为我们提供了一套非常强大的控制结构。
首先是if。
{#if isRed}
<p>Red</p>
{/if}
有一个开头{#if} 和一个结尾{/if} 。开头的标记检查一个值或语句是否是真实的。在这种情况下,isRed 可以是一个布尔值,其值为true 。
<script>
let isRed = true
</script>
一个空的字符串是虚假的,但一个有一些内容的字符串是真实的。
0是虚假的,但一个>0的数字是真实的。
当然,布尔值true 是真实的,而false 是虚假的。
如果开头的标记不被满足(提供了一个虚假的值),那么什么也不会发生。
如果不满足,要做其他事情,我们使用适当的称为else 语句。
{#if isRed}
<p>Red</p>
{:else}
<p>Not red</p>
{/if}
要么在模板中渲染第一个块,要么渲染第二个块。没有其他选择。
你可以在if 块条件中使用任何JavaScript表达式,所以你可以用! 操作符来否定一个选项。
{#if !isRed}
<p>Not red</p>
{:else}
<p>Red</p>
{/if}
现在,在else 里面,你可能想检查一个额外的条件。这就是{:else if somethingElse} 语法出现的地方。
{#if isRed}
<p>Red</p>
{:else if isGreen}
<p>Green</p>
{:else}
<p>Not red nor green</p>
{/if}
你可以有很多这样的块,而不是只有一个,而且你可以将它们嵌套起来。这里有一个更复杂的例子。
{#if isRed}
<p>Red</p>
{:else if isGreen}
<p>Green</p>
{:else if isBlue}
<p>It is blue</p>
{:else}
{#if isDog}
<p>It is a dog</p>
{/if}
{/if}