Comment créer des fonctions personnalisées pour Vue JS telles que le hook créé() ?
P粉512729862
P粉512729862 2023-09-04 09:39:05
0
1
468
<p>Comment dois-je créer un plugin qui ajoute une fonction nommée <code>struct</code> (comme un hook <code>created()</code>) à tous les composants ? </p> <p>De plus, je souhaite que mon plugin ait accès à la valeur de retour <code>structure</code> </p> <pre class="brush:js;toolbar:false;">export par défaut { structure() { // Accès au contexte } } ≪/pré> <p>Je dois mentionner que j'utilise Inertia JS. </p>
P粉512729862
P粉512729862

répondre à tous(1)
P粉848442185

Vous pouvez utiliser Vue Mixins ou Composables.

Les deux peuvent vous fournir des fonctions et des variables partagées. Mais je ne sais pas comment définir de nouveaux hooks dans Vue, comme create() . Je dois moi-même démarrer votre fonction danscreated(). Bien sûr, vous pouvez utiliser des mixins pour remplacer les hooks Vue existants.

Mixin est très pratique, mais n'est plus recommandé

Il n'y a pas de created() dans l'API Composition created() ,所以你必须使用onBeforeMount()onMounted(), vous devez donc utiliser onBeforeMount() ou onMounted()

Voici un exemple très basique utilisant les deux techniques

const { createApp, ref, onBeforeMount } = Vue;

const myMixin = {
  created() {
    console.log('myMixin: created()')
  }
}

const myComposable = () => {
    onBeforeMount(() => {
       console.log('myComposable: onBeforeMount()')    
    })
    const myFunction = () => console.log('myFunction()')    
    return { myFunction }
}

const App = {
  setup() {
    const { myFunction } = myComposable()
    return  { myFunction }
  },
  mixins: [myMixin]
}

const app = createApp(App)
app.mount('#app')
<div id="app">
  <button @click="myFunction()">myFunction()</button>
</div>
<script src="https://unpkg.com/vue@3/dist/vue.global.prod.js"></script>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal