ViteTemplateHTML

Умови та умовні вирази в HTML-компонентах

Цей документ описує використання в компонентах умов та умовних виразів в залежності від переданих параметрів.

Використання умовного виразу:

Використання тернарних операторів

<button type="button" {{isActive != "true" ? "disabled" : ''}}>
   <Content/>
</button>

<header class="{{isActive ? 'active-class' : ''}}">
   <Content/>
</header>

Використання блоку if / elseif / else

// src/html/components/Button/Button.html

<if condition="elementType == 'button'">
   <button type="button">
      <Content/>
   </button>
</if>
<elseif condition="elementType == 'link'">
   <a href="{{url}}" target="_blank">
      <Content/>
   </a>
</elseif>
<else>
   Не обовязковий блок, але можна використовувати
</else>

// src/html/components/Hero/Hero.html

<section class="hero">
   <if condition="titleText">
      <h1 class="hero__title">{{titleText}}</h1>
   </if>
   <Content/>
</section>

Використання блоку switch / case / default

Зручно, коли кілька гілок порівнюються з одним значенням.

<switch key="elementType">
   <case value="button">
      <button type="button">{{children}}</button>
   </case>
   <case value="link">
      <a href="{{url}}">{{children}}</a>
   </case>
   <default>
      <span>{{children}}</span>
   </default>
</switch>

<switch key="..."> виконує JS-вираз. <case value="..."> порівнює з літералом, а для JS-виразу можна використати expression або condition.

Vue-style синтаксис (v-if)

Альтернативний синтаксис, схожий на Vue.js. Працює як атрибут на будь-якому тегу.

<div v-if="isActive">
   Активний контент
</div>

Умовні атрибути

Якщо вираз повертає false, null або undefined, атрибут не буде виведений. Значення true виводить boolean-атрибут без значення.

<button disabled="{{isDisabled}}">Save</button>
<input required="{{isRequired}}" />