Небольшое, но удобное
Но если вам нужно что-то более специфическое и гибкое, то конечно vue-cli, webpack или bitrix/cli подходит больше, я сам периодически употребляю. Эта статья совсем про другое.
- Компоненты в template.vue файлах, как уже привык с vue-cli;
- Простота подключения компонентов;
- Автоматическое подключение зависимостей;
- Переиспользуемость компонентов между проектами;
- Привычное для bitrix-разработчика поведение.
<?php Dbogdanoff\Bitrix\Vue::includeComponent(['todo-list']); ?> <div id="app"> <todo-list></todo-list> </div> <sc ript> var mainVueApp = new Vue({ el: '#app' }) </sc ript> |
# /local/components-vue/todo-list/template.vue: <template id="todo-list"> <ol> <li v-for="todo in todos"> {{ todo.text }} </li> </ol> </template> <sc ript> Vue.component('todo-list', { template: '#todo-list', data: function () { return { todos: [ {text: 'Изучить JavaScript'}, {text: 'Изучить Vue'}, {text: 'Создать что-нибудь классное'} ] } } }) </sc ript> |
Общая структура компонентов:
local/ └─ components-vue/ ├─ component-one/ | ├─ .settings.php | ├─ template.vue | ├─ script.js | └─ style.css ├─ component-two/ | └─ template.vue └─ component-three/ └─ script.js |
Ни одни из файлов не является обязательным, таким образом весь компонент может быть описан в одном script.js файле или в одном template.vue файле, но в них обязательно должна присутствовать регистрация компонента
По умолчанию поиск компонентов производится в папке /local/components-vue. Данное поведение можно изменить, объявив константу:
define('DBOGDANOFF_VUE_PATH', '/components-vue'); // поменяли на корень сайта в /components-vue |
GitHub:
Пример использования:
Страница примера: