Условные операторы¶
Поскольку Lit использует обычные выражения Javascript, вы можете использовать стандартные конструкции потока управления Javascript, такие как условные операторы, вызовы функций и операторы if
или switch
для отображения условного содержимого.
Условные выражения JavaScript также позволяют комбинировать вложенные шаблонные выражения, и вы даже можете сохранять результаты шаблонов в переменных, чтобы использовать их в других местах.
Условные выражения с условным (тернарным) оператором¶
Тернарные выражения с условным оператором ?
— отличный способ добавления встроенных условий:
1 2 3 4 5 |
|
Условные выражения с помощью операторов if¶
Вы можете выразить условную логику с помощью операторов if
вне шаблона, чтобы вычислить значения для использования внутри шаблона:
1 2 3 4 5 6 7 8 9 |
|
В качестве альтернативы можно вынести логику в отдельную функцию, чтобы упростить шаблон:
1 2 3 4 5 6 7 8 9 10 |
|
Кэширование результатов работы шаблона: директива cache
¶
В большинстве случаев JavaScript-условия — это все, что вам нужно для условных шаблонов. Однако если вы переключаетесь между большими и сложными шаблонами, вам, возможно, захочется избежать затрат на воссоздание DOM при каждом переключении.
В этом случае вы можете использовать директиву cache
directive. Директива cache
кэширует DOM для шаблонов, которые не отображаются в данный момент.
1 2 3 4 5 6 |
|
Дополнительную информацию см. в директиве cache.
Условный рендеринг ничего¶
Иногда в одной из ветвей условного оператора нужно вывести ничего. Это обычно требуется для дочерних выражений, а также иногда в выражениях атрибутов.
Для дочерних выражений значения undefined
, null
, пустая строка (''
) и значение посыла Lit nothing не отображают узлы. Дополнительные сведения см. в разделе Удаление дочернего содержимого.
В этом примере значение отображается, если оно существует, а в противном случае ничего не отображается:
1 2 3 |
|
Для выражений с атрибутами значение смыслового блока Lit nothing удаляет атрибут. Дополнительную информацию см. в разделе Удаление атрибута.
В этом примере условно отображается атрибут aria-label
:
1 2 3 |
|