Vue SFC архитектура

Vue SFC

Компоненты являются строительными блоками большинства современных фреймворков. В
в целом, разделение вашего кода на фрагменты, специфичные для компонентов, гарантирует, что код
будет читабельным и реализует принцип «Не повторяйся» (DRY).

Шаблон Vue SFC точно следует этому подходу.

Архитектура SFC централизует ответственность как за внешний вид, так и за
поведение в один файл, что упрощает архитектуру вашего проекта.
Теперь вы можете ссылаться на свою логику HTML, CSS и JavaScript без
переключение файлов. Ваша файловая структура .vue по умолчанию будет следующей:

<template>
  <div> <!-- HTML code --> </div>
</template>

<script>
  export default{
    // javascript code
  }
</script>

<style>
  /* css code*/
</style>

Общей хорошей практикой является убедиться, что ваш файл компонента не содержит
более 500 строк кода. Если вы столкнулись с такой ситуацией,
рекомендуется разделить их на более мелкие повторно используемые компоненты. Например,
в заголовке вашего приложения у вас может быть элемент логотипа, который
повторно используется на других страницах. Вы должны создать такой компонент, как logo.vue:

// logo.vue
<template>
  <img src="myLogo.png" />
</template>

В header.vue вы импортируете компонент логотипа в раздел script и
затем включите его как вложенный компонент компонента заголовка. Вы можете
добиться этого, объявив его как свойство поля components:

// header.vue
<script>
  import logo from 'components/logo.vue'
  export default {
    components: {
      logo
    }
  }
</script>

В разделе template вы можете использовать логотип как обычный элемент HTML,
как показано здесь:

<template>
  <header>
    <a href="mywebsite.com">
    <logo />
    </a>
  </header>
</template>

На выходе будет заголовок с отрендеренным изображением логотипа — и вы можете
при необходимости повторно используйте компонент логотипа в любом другом компоненте.

Очень скоро у вас будет много таких семантически структурированных файлов, которые
используют небольшие фрагменты, многократно используемого синтаксиса, который ваша команда может внедрить в
различные области приложения.
В следующем упражнении вы попрактикуетесь в создании своего первого компонента Vue.
и отображение его в другом компоненте.