J'ai une application vue que j'ai créée en utilisant la vue-cli
Je crée des composants et je veux les utiliser comme ceci:
<template>
<oi-list>
<oi-list-header>Task ID</oi-list-header>
<oi-list-header>Tasks Title</oi-list-header>
<oi-list-header>Task Status</oi-list-header>
<div v-for="task in tasks">
<oi-list-item>{{ task.id }}</oi-list-item>
<oi-list-item>{{ task.title }}</oi-list-item>
<oi-list-item>{{ task.status }}</oi-list-item>
</div>
</oi-list>
</tempalte>
Le problème que j'ai est où que j'utilise le composant liste, je dois écrire ce qui suit:
<script>
import List from '@/components/List'
import ListHeader from '@/components/ListHeader'
import ListItem from '@/components/ListItem'
export default {
name: "Tasks",
components: {
'oi-list': List,
'oi-list-header': ListHeader,
'oi-list-item': ListItem
}
<script>
Ce que je voudrais, c'est que les composants réutilisables soient enregistrés globalement, donc je n'ai pas à les importer et leurs sous-composants chaque fois que je veux les utiliser, ou certains comment les charger dynamiquement lorsque je les utilise. Est-ce possible?
J'ai utilisé Vuetify dans le passé et cela ne vous oblige pas à importer chaque composant pour l'utiliser.
S'il vous plaît quelqu'un peut-il m'orienter dans la bonne direction? Merci.
Une autre option, en plus de la réponse de @ Ilyas, si vous voulez éviter les globaux, est de créer un fichier, dites globalComponents.js
avec le contenu suivant:
import List from '@/components/List.vue'
import ListHeader from '@/components/ListHeader.vue'
import ListItem from '@/components/ListItem.vue'
export default {
'oi-list': List,
'oi-list-header': ListHeader,
'oi-list-item': ListItem
}
Et vous pouvez l'utiliser comme suit:
<script>
import GlobalComponents from '@/globalComponents.js'
export default {
name: "Tasks",
components: {
...GlobalComponents
}
<script>
C'est facile à réaliser. Vous pouvez enregistrer des composants globalement dans le fichier main.js.
import MyComponent from '@/components/MyComponent'
Vue.component('my-component-name', MyComponent)
Vous pouvez maintenant utiliser <my-component-name />
partout.
Une manière plus propre, sans gonfler votre main.js
, consiste à importer votre composant dans un fichier index.js dans votre dossier de composants comme celui-ci.
import Vue from 'vue'
import MyComponent from '@/components/MyComponent'
Vue.component('my-component-name', MyComponent)
Plus tard, vous pourrez ajouter cette ligne à votre main.js
pour charger les composants enregistrés.
import '@/components'
les documents: https://vuejs.org/v2/guide/components-registration.html