Svelte模板:条件逻辑的实例教程

139 阅读2分钟

学习如何在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}