DEV Community

Cover image for Template syntax va direktivalar haqida.
Mukhriddin Khodiev (work)
Mukhriddin Khodiev (work)

Posted on • Edited on

Template syntax va direktivalar haqida.

Assalamu alaykum! Ushbu postda Vue.js loyihamizning umummiy tuzulmasi (strukturasi, fayllari) bilan tanishib chiqidik.

Endi navbat Vue.js loyihamizning asosiy sintaksis haqida gaplashamiz.

Image description

Vue.js template sintaksisi HTML ga o'xshaydi va Vue komponentlari ichida reaktiv ma'lumotlarni ko'rsatish va boshqarish uchun ishlatiladi. Yuqoridagi rasmda asosiy ketmaketlik qizil chiziq bilan belgilab sanab o'tilgan , ko'rib turganingizdek juda ham sodda va quyida Vue.js template sintaksisining asosiy jihatlarini batafsil ko'rishimzi mumkin:

Interpolatsiya

Matn Interpolatsiyasi

Matn interpolatsiyasi orqali komponent ma'lumotlarini HTML ichida ko'rsatish mumkin:


<script setup>
const message="Assalamu alaykum";
</script>

<template>
  <h1 class="title">{{ message }}</h1>
</template>

<style scoped>
  .title{
    color:#32cd32;
    text-align: center;
  }
</style>
Enter fullscreen mode Exit fullscreen mode

Bu yerda {{ message }} orqali message o'zgaruvchisining qiymati HTMLda ko'rsatiladi.

HTML Interpolatsiyasi

Agar siz o'zgaruvchi qiymatini HTML sifatida kiritish kerak bo'lsa, v-html direktivasidan foydalaniladi:

<div v-html="rawHtml"></div>
Enter fullscreen mode Exit fullscreen mode

va ushbu divni parent sifatida qabul qilib ichiga HTML elementlarimizni render qiladi.

Direktivalar

v-bind

Atributlarni dinamik ravishda bog'lash uchun ishlatiladi:

<img v-bind:src="imageSrc">
<!-- qisqacha sintaksis -->
<img :src="imageSrc">
Enter fullscreen mode Exit fullscreen mode

v-if

Elementni shartli ravishda ko'rsatish uchun ishlatiladi:

<p v-if="seen"> Ushbu xabar ko'rinvottimi bro 😎 </p>
Enter fullscreen mode Exit fullscreen mode

v-else va v-else-if

v-if bilan birga qo'llaniladi va shartlarga qarab elementni ko'rsatadi:

<p v-if="type === 'A'">A javob</p>
<p v-else-if="type === 'B'">B javob</p>
<p v-else>C javob</p>
Enter fullscreen mode Exit fullscreen mode

v-for

Ro'yxatlarni iteratsiya (loop) qilish uchun ishlatiladi:

<ul>
  <li v-for="item in items" :key="item.id">{{ item.text }}</li>
</ul>
Enter fullscreen mode Exit fullscreen mode

itmes bu yerda array [] , item esa array elementi hisoblanadi , :key esa iteratsiya qilinayotgan elementni 'unique' qilish uchun ishlatiladi.

v-on

Hodisalarga qo'llaniladi, masalan, tugmalarni bosish:

<button v-on:click="doSomething">Bos</button>
<!-- qisqacha sintaksis 😎 -->
<button @click="doSomething">Bos</button>
Enter fullscreen mode Exit fullscreen mode

Class va Style

v-bind:class

Dinamik ravishda classlarni qo'shish mumkin:

<div :class="{ active: isActive }"></div>
<div :class="[classA, classB]"></div>
Enter fullscreen mode Exit fullscreen mode

v-bind:style

Dinamik stillarni qo'llash mumkin:

<div :style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
Enter fullscreen mode Exit fullscreen mode

Ikki tomonlama bog'lanish

v-model

Form elementlari bilan ikki tomonlama bog'lanishni ta'minlaydi:

<input v-model="message" placeholder="Xabar kiriting">
Enter fullscreen mode Exit fullscreen mode

Qo'shimcha Direktivalar

v-show

Elementni ko'rinishini boshqaradi, ammo DOMdan olib tashlamaydi:
ya'ni display:none; saqlaydi holos.

<p v-show="isShown">Ko'rinadigan xabar</p>
Enter fullscreen mode Exit fullscreen mode

v-pre

Element va uning farzandlari (childlari) uchun remderlanishini to'xtatadi:

<span v-pre>{{ bu mustahkamlanmaydi }}</span>
Enter fullscreen mode Exit fullscreen mode

v-cloak

Elementga Vue.js ilovasi to'liq yuklanmaguncha ko'rinishini to'xtatadi:

<div v-cloak>{{ message }}</div>
Enter fullscreen mode Exit fullscreen mode

v-once

Element va uning farzandlarini (child elementlarini) faqat bir marta renderlaydi:

<span v-once>{{ bu faqat bir marta renderlaydi }}</span>
Enter fullscreen mode Exit fullscreen mode

Qo'shimcha Misollar

Shartli Rendering

Vue.js da shartli rendering orqali elementlarni ko'rsatish yoki yashirish mumkin. v-if, v-else-if, va v-else direktivalari ishlatiladi:

<div v-if="type === 'A'">A javob</div>
<div v-else-if="type === 'B'">B javob</div>
<div v-else>C javob</div>
Enter fullscreen mode Exit fullscreen mode

Ro'yxatni Iteratsiya Qilish

v-for direktivasi orqali ro'yxat elementlarini iteratsiya qilish mumkin:

<ul>
  <li v-for="(item, index) in items" :key="item.id">
    {{ index }} - {{ item.text }}
  </li>
</ul>
Enter fullscreen mode Exit fullscreen mode

items=array;
item=arrayning elementi;
index=array elementining indeksi.

Form Elementlari

v-model direktivasi orqali form elementlari bilan ikki tomonlama bog'lanishni ta'minlash mumkin:

<input v-model="message" placeholder="Xabar kiriting">
<p>Yozilgan xabar: {{ message }}</p>
Enter fullscreen mode Exit fullscreen mode

Template Sintaksisi orqali Ma'lumotlar Bindingi

Template sintaksisi orqali Vue.js komponentlarida ma'lumotlarni dinamik ravishda bog'lash juda sodda va qulay. Bu esa reaktiv ilovalarni yaratishda katta yordam beradi.

Vue.js template sintaksisi HTMLni kengaytirish orqali dinamik va reaktiv veb ilovalarni yaratishda kuchli vositalarni taqdim etadi. Bu direktivalar va interpolatsiyalar orqali ma'lumotlarni boshqarish va hodisalarga javob berish oson va samarali bo'ladi.

inshaaAlloh keyingi maqolalarda reactive data va bir qanncha ma'lumotlarni o'rganib olamiz.

Top comments (0)