denx-b/bitrix-vue-component
Composer 安装命令:
composer require denx-b/bitrix-vue-component
包简介
Connecting vue components in the bitrix
README 文档
README
Для использования Vue.js в 1С-Битрикс с данной библиотекой вам не потребуется установленный node.js
и никаких зависимостей для сборки, потому что вся "магия" происходит полностью на php.
Пишите vue-компоненты на JavaScript и подключайте их одной строкой Vue::includeComponent(['comp1', 'comp2', ...])
и используйте компоненты в приложении <comp1></comp1> как обычно.
<?php Dbogdanoff\Bitrix\Vue::includeComponent(['todo-list']); ?> <div id="app"> <todo-list></todo-list> </div> <script> var mainVueApp = new Vue({ el: '#app' }) </script>
# /local/components-vue/todo-list/template.vue: <template id="todo-list"> <ol> <li v-for="todo in todos"> {{ todo.text }} </li> </ol> </template> <script> Vue.component('todo-list', { template: '#todo-list', data: function () { return { todos: [ {text: 'Изучить JavaScript'}, {text: 'Изучить Vue'}, {text: 'Создать что-нибудь классное'} ] } } }) </script>
Структура компонентов
/* 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 файле.
С реализацией того или иного способа разработчики Vue.js хорошо знакомы.
Примеры с демо сайта:
При наличии минифицированных стилей или скриптов, в папке компонента, и установленной соответствующей опции в главном модуле, будут подключены минифицированные файлы.
В .settings.php могут быть указаны дополнительные зависимости, которые будут автоматически подключены при подключении компонента:
<? return [ 'require' => [ 'https://unpkg.com/flickity@2.1.2/dist/flickity.pkgd.min.js', 'https://unpkg.com/flickity@2.1.2/dist/flickity.min.css' ] ];
Путь к компонентам
По умолчанию поиск компонентов производится в папке /local/components-vue
Данное поведение можно изменить, объявив константу DBOGDANOFF_VUE_PATH
Это может быть актуально для многосайтовости.
// Компоненты в корне сайта в директории '/components-vue' define('DBOGDANOFF_VUE_PATH', '/components-vue');
Минификация html-кода всего сайта
Данное решение может минифицировать html-код всего сайта, это плюс к оценке производительности google pagespeed. И имеет удачное применение в сочетании с технологией композитного сайта, так как код кешируется и не производятся строковые операции на каждом хите.
// Активация минификации, возможно регулировать степень soft или hard define('DBOGDANOFF_VUE_MINIFY', 'hard');
В каких случаях следует избегать применения степени сжатия ‘hard’? В тех случаях, когда на странице имеются скрипты, чьи строки не оканчиваются на знак точки с запятой ‘;’ и это может приводить к ошибке SyntaxError. Предварительно следует проанализировать код страницы и выбрать подходящий режим.
Подключение vue.js
На данный момент, идеология использования подразумевает, что вы самостоятельно подключаете с нужного источника и нужной вам версии Vue.js в header.php шаблона битрикс. Также для разработчика будет уместным подключать не минифицированную версию, для работы с Vue Devtools, следующим образом:
if ($USER->IsAdmin()) { Asset::getInstance()->addJs('https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js'); } else { Asset::getInstance()->addJs('https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.min.js'); }
Requirements
Bitrix Vue Component requires the following:
- PHP 7.0.0+
- 1C-Bitrix 14.0.0+
Installation
Bitrix Vue Component is installed via Composer. To add a dependency to bitrix-vue-component in your project, either
Run the following to use the latest stable version
composer require denx-b/bitrix-vue-component
You can of course also manually edit your composer.json file
{
"require": {
"denx-b/bitrix-vue-component": "1.1.*"
}
}
Но лучше один раз увидеть, чем 100500 раз прочитать.
Демо сайт: https://bitrix-vue-demo.dbogdanoff.ru/
Репозиторий сайта: https://github.com/denx-b/bitrix-vue-component-demo
denx-b/bitrix-vue-component 适用场景与选型建议
denx-b/bitrix-vue-component 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 541 次下载、GitHub Stars 达 50, 最近一次更新时间为 2018 年 12 月 09 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 denx-b/bitrix-vue-component 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 denx-b/bitrix-vue-component 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 541
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 51
- 点击次数: 10
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-12-09