| name | bitrix-vue |
| description | 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. |
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.Vue pollution.
- Not suitable for SSR or SFC
.vue files 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
BitrixVue from ui.vue3.bitrixvue (not bare ui.vue3).
- Import Vue primitives (
ref, computed, h, โฆ) from ui.vue3 when needed.
- Put
ui.vue3 / ui.vue3.bitrixvue in config.php rel.
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';
Loc.getMessage('VENDOR_MODULE_ITEM_TITLE');
BitrixVue.getFilteredPhrases(vueInstance, phrasePrefix, phrases);
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.create with BitrixVue.createApp.
- Update lifecycle hooks (
destroyed โ unmounted).
- Remove Vue 2-specific filters and
$on/$off on instances.
- See official migration guide on dev.1c-bitrix.ru.
Checklist