VueJS - Отрисовка

Привет, будущая суперзвезда Vue.js! Я рад быть вашим проводником в этом захватывающем путешествии в мир отрисовки Vue.js. Как alguien, кто уже давно teaches программирование, я могу assure вас, что овладение отрисовкой похоже на обучение рисованию - это то, как мы оживляем наши цифровые полотна! Так что натянем рукава и окунемся в это!

VueJS - Rendering

Условная отрисовка

Представьте, что вы маг, и хотите сделать так, чтобы вещи появлялись или исчезали на вашем веб-сайте с взмахом руки. Именно это позволяет вам сделать условная отрисовка в Vue.js! Это все о том, чтобы показывать или скрывать элементы в зависимости от определенных условий.

Директива v-if

Директива v-if - наш первый трюк в рукаве. Это как охранник в俱乐部е, решающий, кто попадает внутрь, а кто нет.

<div id="app">
<h1 v-if="isVisible">Now you see me!</h1>
</div>

<script>
new Vue({
el: '#app',
data: {
isVisible: true
}
})
</script>

В этом примере элемент <h1> будет отображаться только если isVisible равно true. Если это false, пфу! Элемент исчезает из DOM полностью. Он не просто скрыт - он gone, как будто его и не было!

Директивы v-else и v-else-if

Теперь добавим немного больше магии в наше шоу с помощью v-else и v-else-if:

<div id="app">
<div v-if="temperature < 0">It's freezing!</div>
<div v-else-if="temperature < 20">It's cool.</div>
<div v-else>It's warm!</div>
</div>

<script>
new Vue({
el: '#app',
data: {
temperature: 25
}
})
</script>

Здесь мы создаем небольшой отчет о погоде. В зависимости от значения temperature, разные сообщения будут отображаться. Это как если бы у вас было несколько trap doors на сцене - только один может быть открыт в одно время!

Директива v-show

Иногда мы хотим быть немного sneakier. В enters v-show:

<div id="app">
<h1 v-show="isVisible">I'm always here, just sometimes invisible!</h1>
</div>

<script>
new Vue({
el: '#app',
data: {
isVisible: true
}
})
</script>

В отличие от v-if, v-show не удаляет элемент из DOM. Он просто прячет его с помощью CSS. Представьте это как throw an invisibility cloak на ваш элемент, вместо того чтобы сделать его исчезающим полностью.

Отрисовка списков

Теперь, когда мы освоили появление и исчезновение вещей, давайте узнаем, как создавать multiple элементы из одного шаблона. Это где list rendering comes in handy!

Директива v-for

Директива v-for как magical copy machine. Она береет шаблон и дублирует его для каждого элемента в массиве или объекте.

<div id="app">
<ul>
<li v-for="fruit in fruits">{{ fruit }}</li>
</ul>
</div>

<script>
new Vue({
el: '#app',
data: {
fruits: ['Apple', 'Banana', 'Cherry', 'Date']
}
})
</script>

В этом примере мы создаем список покупок фруктов. Директива v-for идет через каждый фрукт в нашем массиве fruits и создает новый элемент <li> для него. Это как если бы у вас была команда крошечных эльфов, каждый из которых писал бы имя фрукта на новой бумаж!

Использование v-for с объектом

v-for не только для массивов - он рабоч с объектами тоже!

<div id="app">
<ul>
<li v-for="(value, key) in person">{{ key }}: {{ value }}</li>
</ul>
</div>

<script>
new Vue({
el: '#app',
data: {
person: {
name: 'Alice',
age: 28,
job: 'Developer'
}
}
})
</script>

Здесь мы отображаем информацию о человеке. Директива v-for идет через каждый property объекта person, создавая новый элемент <li> для каждой пары ключ-значение.

v-for с range

Хотите создать specific number элементов? v-for может сделать и это!

<div id="app">
<span v-for="n in 5">{{ n }} </span>
</div>

Это отобразит числа от 1 до 5. Это как если бы вы просили Vue сосчитать за вас!

Атрибут Key

Когда вы используете v-for, важно дать каждому отрисовленному элементу уникальный key. Это помогает Vue отслеживать, какие элементы были изменены, добавлены или удалены.

<div id="app">
<ul>
<li v-for="fruit in fruits" :key="fruit.id">
{{ fruit.name }}
</li>
</ul>
</div>

<script>
new Vue({
el: '#app',
data: {
fruits: [
{ id: 1, name: 'Apple' },
{ id: 2, name: 'Banana' },
{ id: 3, name: 'Cherry' }
]
}
})
</script>

Представьте key как nametag для каждого элемента. Это помогает Vue identify кто есть кто, когда список изменяется.

Таблица методов

Вот удобная таблица, резюмирующая методы, которые мы learned:

Директива Назначение Пример
v-if Условная отрисовка элемента <div v-if="isVisible">Hello</div>
v-else Альтернатива, когда v-if ложно <div v-else>Goodbye</div>
v-else-if Дополнительные условия <div v-else-if="isSpecial">Special</div>
v-show Переключение видимости элемента <div v-show="isVisible">Always in DOM</div>
v-for Отрисовка списка элементов <li v-for="item in items">{{ item }}</li>

И вот оно, мои eager студенты! Мы covered основы отрисовки в Vue.js. Помните, что практика делает perfect, так что не бойтесь экспериментировать с этими концепциями. Soon, вы будете отрисовывать компоненты Vue.js как профи, создавая динамические и интерактивные веб-страницы, которые поразят ваших пользователей. Keep coding, keep learning, и, что самое главное, keep having fun!

Credits: Image by storyset