Mundarijaga o‘tish

SFC Sintaksis Spetsifikatsiyasi

Umumiy ma'lumot

Vue Single-File Component (SFC), odatda *.vue fayl kengaytmasidan foydalanadi, Vue komponentini tasvirlash uchun HTML-ga o'xshash sintaksisdan foydalanadigan maxsus fayl formatidir. Vue SFC sintaktik jihatdan HTML bilan mos keladi.

Har bir *.vue fayli uch turdagi yuqori darajadagi til bloklaridan iborat: <template>, <script> va <style>, va ixtiyoriy ravishda qo'shimcha maxsus bloklar:

vue
<template>
  <div class="example">{{ msg }}</div>
</template>

<script>
export default {
  data() {
    return {
      msg: 'Hello world!'
    }
  }
}
</script>

<style>
.example {
  color: red;
}
</style>

<custom1>
  Bu, masalan, komponent uchun hujjat bo'lishi mumkin.
</custom1>

Til Bloklari

<template>

  • Har bir *.vue fayli ko'pi bilan bitta yuqori darajadagi <template> blokini o'z ichiga olishi mumkin.

  • Mazmun @vue/compiler-domga o'tkaziladi, JavaScript render funksiyalariga oldindan kompilyatsiya qilinadi va eksport qilingan komponentga uning render opsiyasi sifatida biriktiriladi.

<script>

  • Har bir *.vue fayli ko'pi bilan bitta <script> blokini o'z ichiga olishi mumkin (<script setup>dan tashqari).

  • Skript ES Module sifatida bajariladi.

  • Default eksport Vue komponent opsiyalari ob'ekti bo'lishi kerak, oddiy ob'ekt yoki defineComponentning qaytarilgan qiymati sifatida.

<script setup>

  • Har bir *.vue fayli ko'pi bilan bitta <script setup> blokini o'z ichiga olishi mumkin (oddiy <script>dan tashqari).

  • Skript oldindan qayta ishlanadi va komponentning setup() funksiyasi sifatida ishlatiladi, ya'ni u komponentning har bir instansiyasi uchun bajariladi. <script setup>dagi yuqori darajadagi bog'lanishlar avtomatik ravishda shablonga ochiladi. Batafsil ma'lumot uchun <script setup> haqidagi maxsus hujjatga qarang.

<style>

  • Bitta *.vue fayli bir nechta <style> teglarini o'z ichiga olishi mumkin.

  • <style> tegi joriy komponentga stillarni kapsulalash uchun scoped yoki module atributlariga ega bo'lishi mumkin (batafsil ma'lumot uchun SFC Style Featuresga qarang). Turli kapsulalash rejimlariga ega bir nechta <style> teglari bir xil komponentda aralashishi mumkin.

Maxsus Bloklar

Qo'shimcha maxsus bloklar har qanday loyiha-spetsifik ehtiyojlar uchun *.vue faylida kiritilishi mumkin, masalan <docs> bloki. Maxsus bloklarning haqiqiy dunyo misollari:

Maxsus Bloklarni qayta ishlash vositalarga bog'liq bo'ladi - agar o'zingizning maxsus blok integratsiyalaringizni qurmoqchi bo'lsangiz, batafsil ma'lumot uchun SFC custom block integrations tooling sectionga qarang.

Avtomatik Nom Aniqlash

SFC quyidagi holatlarda komponentning nomini uning fayl nomidan avtomatik ravishda aniqlaydi:

  • Dev ogohlantirish formatlash
  • DevTools tekshirish
  • Rekursiv o'z-o'ziga havola, masalan FooBar.vue nomli fayl o'z shablonida <FooBar/> sifatida o'ziga havola qilishi mumkin. Bu aniq ro'yxatdan o'tkazilgan/import qilingan komponentlardan pastroq ustuvorlikka ega.

Oldindan Protsessorlar

Bloklar lang atributidan foydalanib oldindan protsessor tillarini e'lon qilishi mumkin. Eng keng tarqalgan holat - <script> bloki uchun TypeScript ishlatish:

template
<script lang="ts">
  // TypeScript ishlatish
</script>

lang har qanday blokka qo'llanilishi mumkin - masalan biz <style> bilan Sass va <template> bilan Pug ishlatishimiz mumkin:

template
<template lang="pug">
p {{ msg }}
</template>

<style lang="scss">
  $primary-color: #333;
  body {
    color: $primary-color;
  }
</style>

Eslatma: turli oldindan protsessorlar bilan integratsiya vositalar zanjiriga qarab farq qilishi mumkin. Misollar uchun tegishli hujjatlarni tekshiring:

src Importlar

Agar *.vue komponentlaringizni bir nechta fayllarga bo'lishni afzal ko'rsangiz, til bloki uchun tashqi faylni import qilish uchun src atributidan foydalanishingiz mumkin:

vue
<template src="./template.html"></template>
<style src="./style.css"></style>
<script src="./script.js"></script>

Eslatma: src importlar webpack modul so'rovlari bilan bir xil yo'l hal qilish qoidalariga amal qiladi, ya'ni:

  • Nisbiy yo'llar ./ bilan boshlanishi kerak
  • npm bog'liqliklaridan resurslarni import qilishingiz mumkin:
vue
<!-- o'rnatilgan "todomvc-app-css" npm paketidan faylni import qilish -->
<style src="todomvc-app-css/index.css" />

src importlar maxsus bloklar bilan ham ishlaydi, masalan:

vue
<unit-test src="./unit-test.js">
</unit-test>

Eslatma

srcda taxalluslardan foydalanganda, ~ bilan boshlang, undan keyingi har bir narsa modul so'rovi sifatida talqin qilinadi. Bu siz node modullari ichidagi resurslarga havola qilishingiz mumkinligini anglatadi:

vue
<img src="~some-npm-package/foo.png">

Izohlar

Har bir blok ichida siz ishlatilayotgan tilning izoh sintaksisidan foydalanishingiz kerak (HTML, CSS, JavaScript, Pug, va boshqalar). Yuqori darajadagi izohlar uchun HTML izoh sintaksisidan foydalaning: <!-- izoh mazmuni bu yerda -->

SFC Sintaksis Spetsifikatsiyasi allaqachon yuklandi