Автор оригинала: FreeCodeCamp Community Member.
Сарха Дайн
Я помню, когда я подобрал CakePhp в день. Я любил, насколько легко начать с ним. Не только были хорошо структурированы и исчерпывающими документы, но они также были удобными для пользователя. Годы спустя это именно то, что я нашел с Vue.js. Тем не менее, есть одно, что Vue Docs все еще не хватает по сравнению с торт: Учебное пособие на реальный проект Отказ
Независимо от того, насколько хорошо документировано рамки, это недостаточно для всех. Чтение о концепциях не всегда помогает вам увидеть большую картину или понять, как вы можете использовать их на самом деле сделать что-то Отказ Если вы подобны мне, вы узнаете лучше, и вы обратитесь к документам, пока вы код, как вам нужен.
В этом руководстве мы построим Система звезды рейтинга составная часть. Мы посетим несколько концепций Vue.js Когда мы нуждаются в них, и мы будем покрывать Почему Мы используем их.
TL; DR : Этот пост идет глубоко в том, как и почему. Он предназначен для того, чтобы помочь вам понять некоторые основные концепции Vue.js и научите вас принимать проектные решения для ваших будущих проектов. Если вы хотите понять весь процесс мысли, читайте дальше. В противном случае вы можете посмотреть последний код на CodeSandbox Отказ
Начиная
Vue.js (по праву) гордится, будучи проводимой, как простой скрипт, но вещи немного отличаются, когда вы хотите использовать Одно файловые компоненты Отказ Теперь ты не есть построить компоненты таким образом. Вы можете легко уйти с определением глобального компонента с Vue.component Отказ
Проблема в том, что это поставляется с компромиссами, такими как необходимость использования строковых шаблонов, не содержащих Scoped CSS, а не этап сборки (так, нет препроцессоров). Тем не менее, мы хотим пойти глубже и узнать, как построить фактический компонент, который вы могли бы использовать в реальном проекте. По этим причинам мы пойдем с реальной настроек реальной жизни, работающей на WebPack.
Чтобы сохранить вещи простыми и уменьшить время конфигурации, мы будем использовать Vue-Cli и WebPack-Simple Vue.js шаблон.
Во-первых, вам нужно установить Vue-Cli во всем мире. Выпусти свой терминал и введите следующее:
npm install -g vue-cli
Теперь вы можете генерировать готовые к использованию BoaterPlates Vue.js в нескольких нажатия клавиш. Идти вперед и введите:
vue init webpack-simple path/to/my-project
Вы будете задавать несколько вопросов. Выберите по умолчанию для всех, кроме «Использовать SASS», к которому вы должны ответить «Да» ( y ). Тогда Vue-CLI инициализирует проект и создать Package.json файл. Когда это сделано, вы можете перейти к каталогу проекта, устанавливать зависимости и запускать проект:
cd path/to/my-projectnpm installnpm run dev
Вот и все! WebPack начнет обслуживать ваш проект на порту 8080 (если доступно) и уволить его в вашем браузере. Если все прошло хорошо, вы должны увидеть страницу приветствия, как этот.
Мы уже на месте?
Почти! Чтобы правильно отладить свой компонент Vue.js, вам нужны правильные инструменты. Продолжайте и установите расширение браузера Vue.js devtools ( Firefox / Хром / Сафари ).
Ваш первый компонент
Один из лучших функций Vue.js – Одно файловые компоненты (SFC). Они позволяют вам определить структуру, стиль и поведение компонента в одном файле, без обычных недостатков смешивания HTML, CSS и JavaScript.
SFCS конец с .vue.vue. Расширение и иметь следующую структуру:
Your HTML goes here
Хорошо хорошо, Давайте на мгновение замедлиться И объяснить все это?
Vue.js использует нативные модули ES6 для обработки зависимостей и компонентов экспорта. Первые две строки в S-й E значок компонента от Vue-A Wesome, чтобы вы могли использовать его в вашем.
Значок Это Vue.js SFC, как тот, который мы строим. Если вы откроете файл, вы увидите, что он имеет той же структуру, что и наше.
Экспорт по умолчанию Блок экспортирует объектный литерал как модель просмотра нашего компонента. Мы зарегистрировали Значок Компонент в Компоненты Свойство, поэтому мы можем использовать его на нашем месте.
Наконец, мы используем Значок В вашем HTML <Шаблон> и прошел Это Имя свойство, чтобы определить, какой значок мы хотим. Компоненты могут быть использованы в качестве пользовательских тегов HTML, преобразовав их в кебаб-корпус (например.: Mycom Ponent Be приходит
Sidenote : Вы заметили, что мы добавили упаковку в оформлении На корневом уровне и шаблоны компонентов в Vue.js принимают только один корневой элемент. Если вы не уважаете это, вы получите ошибку компиляции.
Стиль
Если вы работаете с CSS в течение некоторого времени, вы знаете, что одна из главных проблем имеет дело с его глобальным природом. Гнездо давно считается решением этой проблемы. Теперь мы знаем, что это может быстро привести к вопросам специфики, изготовление стилей трудно переопределить, невозможно повторно использовать и на кошмар на масштабирование.
Методологии, как Бемический Были изобретены, чтобы обойти эту проблему и сохранить низкую специфику, наменяющие классы пространства. Некоторое время это был идеальный способ написать чистые и масштабируемые CSS. Затем, каркасы и библиотеки, такие как Vue.js или реагируют и принесли Рабочее стилизация к столу.
React имеет созданные компоненты, Vue.js имеет Компонентные CSS CSS Отказ Он позволяет вам писать компонентные CSS без необходимости придумывать его, чтобы сохранить его. Вы пишете обычные CSS с «нормальными» именами классов, а Vue.js обрабатывает Scoping, присваивая атрибуты данных в HTML-элементы и добавления его к скомпилированным стилям.
Давайте добавим несколько простых классов на компонент:
А также Стиль это:
Увидеть это Навыся атрибут там? Это то, что говорит Vue.js, чтобы обладать стилями, поэтому они не будут утечка в дальнейшем. Если вы копируете/вставьте HTML-код прямо в index.html , Вы заметите, что ваши стили не будут применяться: это потому, что они, потому что они считают компонентом! ?
Как насчет препроцессоров?
Vue.js делает его ветером для переключения от обычных CSS в ваш любимый препроцессор. Все, что вам нужно, это правильный погрузчик WebPack и простой атрибут на s добавить lang = «SCSS» к открытию и lt; Стиль> Тег.
Теперь мы можем использовать SASS для записи стилей уровня компонента, импортировать частичные части, такие как переменные, определения цвета или смешины и т. Д. Если вы предпочитаете синтаксис с отступом (или «Sass» обозначения), просто переключите SCSS к Sass В Лэнг атрибут.
Поведение
Теперь, когда наш компонент выглядит хорошо, пришло время заставить его работать. В настоящее время у нас есть хардкодированный шаблон. Давайте настроим некоторое начальное состояние издевательства и отрегулируйте шаблон, чтобы он отражал его:
Оригинал: "https://www.freecodecamp.org/news/build-your-first-vue-js-component-2dc204bca514/"