Найти тему

Методы‌ ‌управления‌ ‌отображением‌ ‌компонентов‌ ‌Vue‌

Оглавление
Статья подготовлена для студентов курса «Fullstack разработчик JavaScript» в образовательном проекте OTUS.

Управление тем, какую HTML-разметку и/или компоненты отображать на странице зависимости от значений в модели данных в приложении — задача, решаемая разными способами. Сегодня мы посмотрим, какие из них доступны в фронтенд-приложениях, написанных на VueJS.

Подобная функциональность одна из базовых в любом приложении — начиная с простой замены текста на кнопке, заканчивая заменой целых фрагментов HTML-разметки и страницы целиком.

Использование Virtual DOM позволяет сделать процесс максимально эффективным с точки зрения скорости рендеринга HTML. Возможно, многие из вас подумают о роутере, как об одном из подходов. Но к нему мы подойдём чуть позже, начнём с более простых вариантов.

1. Встроенная директива v-if/v-else-if

https://ru.vuejs.org/v2/guide/conditional.html

Директива v-if используется для рендеринга блока по условию. Блок будет отображаться только в том случае, если выражение директивы возвращает значение, приводимое к true. Как следует из названия, v-else-if служит в качестве блока «else if» для директивы v-if. Можно объединять эти директивы в длинные цепочки:

-2

Обратите внимание, что при использовании директивы v-if компоненты будут полностью врезаться из DOM. Если вы хотите, чтобы они сохранялись в DOM-дереве, можно использовать v-show, правда, в этом случае нет удобства при использовании нескольких значений.

2. Динамические компоненты

В примере currentTabComponent может содержать:

— имя зарегистрированного компонента,

— объект с настройками компонента.

-3

Полезно обратить внимание, что для использования этого синтаксиса есть определённые ограничения. Например, некоторые HTML-элементы (<ul>, <ol>, <table> и <select>) имеют ограничения на то, какие элементы могут отображаться внутри них, или, например, элементы <li>, <tr> и <option> могут появляться только внутри других определенных элементов.

3. Vue-router

Роутер, безусловно, является решением для замены страницы целиком или отдельных её частей. Роутер для wi-fi является частью экосистемы, отлично поддерживается и хорошо задокументирован. Однако мы не будем уделять ему много времени в этой заметке, так как всегда можно посмотреть на официальную документацию.

Мы же лучше давайте взглянем на альтернативы стандартному роутеру — это проекты, разработанные энтузиастами, которым чего-то не хватало в стандартной поставке роутера.

4. React style router

Декларативный роутер, который позволяет описывать структуру роутов и компонентов в стиле React.

-4

5. Децентрализованное описание роутов — tidyroutes

Этот подход позволяет не писать одно огромное дерево всех роутов. Этот конфиг действительно может разрастись в сложном приложении, а описывать каждый роут по месту декларации новой страницы или нового компонента.

-5

И далее подключаем всё в месте инициализации приложения.

-6

Надеюсь, вам понравился этот обзор! Напишите, какими способами управления отображением компонентов в Vue пользуетесь вы.

«Fullstack разработчик JavaScript» — это полный курс по JavaScript для web-разработчиков, которые хотят вывести свои навыки программирования на новый профессиональный уровень.
ПОСТУПИТЬ НА ВЫГОДНЫХ УСЛОВИЯХ