Узнайте, как Vue помогает вам создать единый файл, который отвечает за все, что касается одного компонента, централизируя ответственность за внешний вид и поведение.
Компонент Vue можно объявить в файле JavaScript (.js
) так:
Vue.component('component-name', {
/* options */
})
или также:
new Vue({
/* options */
})
или его можно указать в.vue
файл.
В.vue
файл довольно крутой, потому что он позволяет вам определять
- Логика JavaScript
- Шаблон кода HTML
- CSS стили
все в одном файле, и поэтому он получил имяОднофайловый компонент.
Вот пример:
<template>
<p>{{ hello }}</p>
</template>
<script>
export default {
data() {
return {
hello: ‘Hello World!’
}
}
}
</script>
<style scoped>
p {
color: blue;
}
</style>
Все это возможно благодаря использованию webpack. Vue CLI делает это очень простым и готовым к поддержке..vue
файлы не могут использоваться без настройки веб-пакета, и поэтому они не очень подходят для приложений, которые просто используют Vue на странице, не являясь полноценным одностраничным приложением (SPA).
Поскольку однофайловые компоненты полагаются на Webpack, мы бесплатно получаем возможность использовать современные веб-функции.
Ваш CSS можно определить с помощью SCSS или Stylus, шаблон можно создать с помощью Pug, и все, что вам нужно сделать, чтобы это произошло, - это объявить Vue, какой препроцессор языка вы собираетесь использовать.
В список поддерживаемых препроцессоров входят
- Машинопись
- SCSS
- Sass
- Меньше
- PostCSS
- Мопс
Мы можем использовать современный JavaScript (ES6-7-8) независимо от целевого браузера, используя интеграцию Babel, а также модули ES, поэтому мы можем использоватьimport/export
заявления.
Мы можем использовать CSS-модули для масштабирования нашего CSS.
Говоря об области видимости CSS, однофайловые компоненты позволяют легко писать CSS, который неутечкак другим компонентам, используя<style scoped>
теги.
Если вы опуститеscoped
, определяемый вами CSS будет глобальным. Но добавляя это, Vue автоматически добавляет к компоненту определенный класс, уникальный для вашего приложения, поэтому CSS гарантированно не попадет в другие компоненты.
Возможно, ваш JavaScript огромен из-за некоторой логики, о которой вам нужно позаботиться. Что, если вы хотите использовать отдельный файл для своего JavaScript?
Вы можете использоватьsrc
атрибут для экстернализации:
<template>
<p>{{ hello }}</p>
</template>
<script src="./hello.js"></script>
Это также работает для вашего CSS:
<template>
<p>{{ hello }}</p>
</template>
<script src="./hello.js"></script>
<style src="./hello.css"></style>
Обратите внимание, как я использовал
export default {
data() {
return {
hello: 'Hello World!'
}
}
}
в JavaScript компонента для настройки данных.
Вы увидите и другие распространенные способы:
export default {
data: function() {
return {
name: 'Flavio'
}
}
}
(приведенное выше эквивалентно тому, что мы делали раньше)
или же:
export default {
data: () => {
return {
name: 'Flavio'
}
}
}
это другое, потому что он использует функцию стрелки. Стрелочные функции работают до тех пор, пока нам не понадобится доступ к компонентному методу, поскольку нам нужно использоватьthis
и такое свойство не привязано к компоненту с помощью стрелочных функций. Поэтому обязательно использоватьобычныйфункции, а не стрелочные функции.
Вы также можете увидеть
module.exports = {
data: () => {
return {
name: 'Flavio'
}
}
}
здесь используется синтаксис CommonJS, и он также работает, хотя рекомендуется использовать синтаксис модулей ES, поскольку это стандарт JavaScript.
Скачать мою бесплатнуюСправочник по Vue
Больше руководств по vue:
- Обзор Vue.js
- Интерфейс командной строки Vue.js: узнайте, как его использовать
- Инструменты разработчика Vue.js
- Настройка VS Code для разработки Vue
- Создайте свое первое приложение с Vue.js
- Однофайловые компоненты Vue.js
- Шаблоны и интерполяции Vue.js
- Директивы Vue.js
- Методы Vue.js
- Вычисляемые свойства Vue.js
- Стилизация компонентов Vue.js с помощью CSS
- Наблюдатели Vue.js
- Методы Vue против наблюдателей против вычисляемых свойств
- Фильтры Vue.js
- Компоненты Vue.js
- Слоты Vue.js
- Свойства компонента Vue.js
- События Vue.js
- Связь компонентов Vue.js
- Vuex, государственный менеджер Vue.js
- Vue, используйте компонент внутри другого компонента
- Vue, как использовать опору в качестве имени класса
- Как использовать SCSS с однофайловыми компонентами Vue.js
- Использование Tailwind с Vue.js
- Маршрутизатор Vue
- Динамически отображать компонент Vue
- Шпаргалка по Vue.js
- Храните данные Vue в localStorage с помощью Vuex
- Как динамически применять класс с помощью Vue
- Vue, как использовать v-модель
- Vue, почему данные должны быть функцией
- Roadmap to become a Vue.js developer in 2020