ES2015
Когда vue-loader обнаруживает наличие babel-loader или buble-loader в том же проекте, он будет использовать их для обработки секций <script> всех *.vue файлов, позволяя использовать возможности ES2015 в компонентах Vue. Если вы ещё не использовали новые возможности языка, вам определённо стоит начать. Несколько хороших учебных ресурсов:
Например типичный шаблон, который вы видите при импорте других компонентов Vue:
<script>
import ComponentA from './ComponentA.vue'
import ComponentB from './ComponentB.vue'
export default {
components: {
ComponentA,
ComponentB
}
}
</script>
В нём была использована краткая запись свойства объекта, доступная в ES2015 для определения дочерних компонентов. { ComponentA } это попросту сокращение от { ComponentA: ComponentA }. Vue автоматически преобразует ключ в component-a, так что вы можете использовать импортированный компонент в шаблоне как <component-a>.
ES2015 в шаблонах
Секция <template> в *.vue файлах компилируется в render-функцию на JavaScript и потом обрабатывается собственной сборкой Buble для поддержки ES2015. Это позволяет вам использовать такие возможности как краткую запись свойства объекта и вычисляемые свойства:
<div :class="[{ active: active }, isButton ? prefix + '-button' : null]">
можно упростить до:
<div :class="{ active, [`${prefix}-button`]: isButton }">
только для версий vue@^2.1.0: Вы можете использовать деструктуризацию параметров в v-for или слотах с ограниченной областью видимости:
<li v-for="{ id, text } in items">
{{ id }} {{ text }}
</li>
<my-component>
<template slot-scope="{ id, text }">
<span>{{ id }} {{ text }}</span>
</template>
</my-component>
Вы также можете настроить доступные возможности в шаблонах с помощью опции buble.
Транспиляция обычных .js файлов
Так как vue-loader обрабатывает только *.vue файлы, вам нужно настроить в файле конфигурации webpack чтобы обычные *.js файлы обрабатывались с помощью babel-loader или buble-loader. Проект созданный с помощью vue-cli уже настроен таким образом.
Настройка Babel с помощью .babelrc
babel-loader предпочитает .babelrc, поэтому рекомендуем использовать именно его для настройки пресетов и плагинов Babel.