В Gilt мы любим Коа. (Черт, Я люблю Koa.) Приступая к новому проекту, я хотел попробовать что-то, что не было React или Angular. Покопавшись в альтернативах, я попал на Vue.js. Я взял самые острые ножницы, какие смог найти, и побежал.

Избранная технология

Если вы не слышали о Коа:

Koa - это новый веб-фреймворк, разработанный командой Express, целью которой является создание более компактной, более выразительной и надежной основы для веб-приложений и API.

Коа Экспресс без наворотов с завода. Koa - это серийный автомобиль, на который вы устанавливаете запасные части в соответствии с вашими потребностями. Это чертовски быстро. Он маленький. Работать с ним чертовски приятно. Koa2 повышает производительность и использует шаблоны ожидания / асинхронности.

Если вы еще не слышали о Vue.js;

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

По сути, Vue.js берет хорошие части из React, Angular и Aurelia и объединяет их в одну библиотеку. Кто хочет работать быстро?.
Ребятам из React это не понравится, потому что здесь нет JSX и есть двусторонняя привязка. Я копаю это прямо, потому что лично считаю JSX мерзостью, но более
в частности, что Vue.js использует ‹templates›, которые очень близки к веб-компонентам и облегчат этот переход. в будущем, если и когда их широкая поддержка когда-либо прекратится. Я отвлекся.

Настройка

Стоит отметить, что мы используем Node v7, который поддерживает большую часть ES5 и большую часть синтаксиса
ES6, с добавлением BabelJS, чтобы заполнить пробелы.

Коа

Я всегда начинаю свои проекты Koa с нескольких базовых модулей: koa (duh),
koa-router и koa-static. `koa-static` позволяет вам указать и обслуживать один или несколько каталогов в качестве статических ресурсов - необходимость. koa-router обычно обрабатывает маршруты приложений; то есть разные конечные точки для вашего приложения. Код довольно прост, вот базовый файл `app.js`:

‘use strict’;
import ‘colors’;
import Koa from ‘koa’;
import serve from ‘koa-static’;
const app = new Koa(),
 port = 3000;
app
 .use(serve(`${__dirname}/public`))
 .listen(port, () => {
 console.log(‘Server Started ∹’.green, ‘http://localhost:'.grey + port.toString().blue);
 });
export default app;

Vue.js

Чтобы начать проект с Vue, мы использовали vue-cli. Это позволяет нам создавать стандартные приложения. Поскольку здесь мы бежим с ножницами, мы сразу же взялись за дело и выбрали самый простой шаблон.

$ vue init webpack-simple .

Это дает нам базовое (как в латте со специями из тыквы) приложение Vue, которое отображает одну страницу в index.html `с логотипом и некоторыми ссылками. При этом также создается файл App.vue, который является основным «файлом Vue» для приложения. Все это теперь находится в `src`. Это все хорошо, но что насчет созданного файла Webpack?

Войдите в Webpack

Чтобы приложение Vue работало правильно, необходимо правильно связать его. Мы используем Webpack, но есть много примеров с Browserify, если вам это нравится.
Webpack - замечательный инструмент для связывания и может выполнять множество функций. Настолько, что его можно считать полноценным инструментом для сборки. Для начала вам понадобится файл webpack.config.js:

И тогда вам понадобится сам Webpack:

$ npm install webpack -g

Вы заметите, что мы сделали несколько отличных от `webpack.config.js` вещей, помимо того, что `vue-cli` сгенерировал для нас; переместил ресурсы в assets и представил подключаемый модуль Webpack для объединения CSS в файлах Vue в один файл CSS, который будет обслуживать Koa.

Связывая это вместе

Если вы следуете нашему примеру и также используете Babel, вам понадобится файл точки входа
Node, чтобы настроить Babel для разработки. Мы назвали этот файл index.js:

require(‘babel-core/register’);
require(‘babel-polyfill’);
require(‘./app’);

Предполагая, что у вас есть надежный файл .babelrc и ваши зависимости настроены правильно,
вы готовы попробовать запустить этого зверя. Сначала запустите Webpack и создайте свои
пакеты:

$ webpack

Если все прошло успешно, можно запустить сервер:

$ node index

И в консоли вы должны увидеть что-то вроде этого:

→ node index
Server Started ∹ http://localhost:3000

Нажмите на этот адрес в своем браузере, и вы должны увидеть демонстрационное приложение Vue. Как вам эти яблоки? Я люблю их.

Бег с мачете

Мы победили ножницы, давайте будем глупыми и побегаем с чем-то большим и острым - в следующем посте я расскажу об использовании промежуточного программного обеспечения с Koa2, чтобы обеспечить живую разработку и горячую перезагрузку модулей. Это означает, что вам не нужно перезапускать сервер, чтобы восстановить пакеты, и вы увидите изменения почти мгновенно.

Круто, правда?

Ваше здоровье!

Первоначально опубликовано на shellscape.org 3 ноября 2016 г.