# Développement
# Création d'un Hub Element
# Utilisation d'un composant Vue
N'importe quel composant Vue peut être utilisé pour définir une entrée du Hub Station.
Néanmoins, pour fonctionner correctement il est nécessaire que le composant hérite du composant HubElement
(ou utilise
le mixin HubElementMixin
correspondant).
# Exemple
1) Soit le composant Vue existant :
ListView.vue
<template>
<div>
<ul>
<li v-for="item in listItems">{{ item.label }}</li>
</ul>
</div>
</template>
<script>
export default {
props: {
listItems: {
type: Array,
default: () => []
}
}
};
</script>
2) Création du Hub Element
Voir Hub Element pour une description du composant/mixin Hub Element.
ListViewEntry.vue
<template>
<div>
<div v-if="isDockCollapsed">
<i class="fa fa-ul"></i>
</div>
<div v-else-if="isDockExpanded">
<span>Liste des utilisateurs</span>
</div>
<div v-else-if="isHubContent">
<list-view :listItems="items"></list-view>
</div>
</div>
</template>
<script>
import ListView from "./ListView.vue"; // Le composant existant
import HubElement from "@anakeen/hub-components/components/lib/HubElement";
// ou
// import HubElementMixin from "@anakeen/hub-components/components/lib/HubElementMixin";
export default {
name: "list-view-entry",
extends: HubElement, // ou mixins: [ HubElementMixins ],
components: {
ListView
},
props: {
items: {
// Le composant déclare des propriétés de même type que le composant ListView
type: Array,
default: () => []
}
}
};
</script>
3) Enregistrement du Hub Element
index.js
import ListViewEntry from "./ListViewEntry.vue";
if (window.ank && window.ank.hub && window.ank.hub["list-view-entry"]) {
// Enregistrement du composant
window.ank.hub["list-view-entry"].resolve(ListViewEntry);
}
# Utilisation du Hub Element
Un composant Hub Element peut être directement utilisé et "instancié" via l'interface d'administration du Hub (voir Paramétrage du Hub).
← Paramétrage Avancé →