Bitrix vue
Covers BitrixVue 3 — ui.vue3 / ui.vue3.bitrixvue, createApp, integration with Bitrix localization and REST, migration from Vue 2. Applied when building reactive admin/public UI with Vue inside Bitrix. Key terms — BitrixVue, ui.vue3.bitrixvue, Vue 3, createApp, Loc.From its SKILL.md
npx -y skills add bxmaximum/bitrix-framework-skills --skill bitrix-vueAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 19 stars19 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.1 KB, 773 tokens by cl100k_base, as published. Nobody here has run it
BitrixVue 3
BitrixVue 3 wraps Vue 3 for use inside Bitrix (ui module 22.100+). Vue 2 is deprecated.
Features:
- Same Vue 3 API with Bitrix integrations (loc, events, REST).
- Single shared Vue version across product — no
window.Vuepollution. - Not suitable for SSR or SFC
.vuefiles requiring server compilation.
Loading
In extension (preferred)
import { BitrixVue } from 'ui.vue3.bitrixvue';
import { Loc } from 'main.core';
BitrixVue.createApp({
data() {
return { items: [] };
},
mounted() {
this.loadItems();
},
methods: {
loadItems() {
BX.ajax.runAction('vendor:module.item.list').then((r) => {
this.items = r.data.items;
});
},
},
template: '<div><div v-for="item in items" :key="item.id">{{ item.name }}</div></div>',
}).mount('#app');
- Import
BitrixVuefromui.vue3.bitrixvue(not bareui.vue3). - Import Vue primitives (
ref,computed,h, …) fromui.vue3when needed. - Put
ui.vue3/ui.vue3.bitrixvueinconfig.phprel.
On PHP page (legacy)
\Bitrix\Main\UI\Extension::load('ui.vue3');
<div id="app"></div>
<script>
BX.BitrixVue.createApp({ /* ... */ }).mount('#app');
</script>
Localization
import { Loc } from 'main.core';
import { BitrixVue } from 'ui.vue3.bitrixvue';
// Messages from lang files loaded via Extension
Loc.getMessage('VENDOR_MODULE_ITEM_TITLE');
// Filter phrases by prefix (BitrixVue helper):
BitrixVue.getFilteredPhrases(vueInstance, phrasePrefix, phrases);
// signature: (vueInstance, phrasePrefix, phrases?) — phrases optional (defaults to instance messages)
Register messages in extension lang/ and load via Extension::load. Do not import Loc from ui.vue3.
REST Integration
BX.rest.callMethod('vendor.module.item.get', { id: 1 }).then((result) => {
this.item = result.data();
});
TypeScript
IDE definitions: bitrix/modules/ui/install/js/ui/vue3/ui.vue3.d.ts — add as external library if not auto-detected.
Migration from BitrixVue 2
- Replace
Vue.create/BitrixVue.createwithBitrixVue.createApp. - Update lifecycle hooks (
destroyed→unmounted). - Remove Vue 2-specific filters and
$on/$offon instances. - See official migration guide on dev.1c-bitrix.ru.
Checklist
- BitrixVue 3 only — no Vue 2.
-
BitrixVuefromui.vue3.bitrixvue; Vue APIs fromui.vue3;Locfrommain.core. - Code in
/local/js/extension, not inline in templates when possible. -
ui.vue3/ui.vue3.bitrixvueinconfig.phpreldependencies. - AJAX via
BX.ajax.runActionor REST, not raw fetch without CSRF. - Localization via
Loc, not hardcoded strings.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.