y at-il un moyen d'écrire une directive personnalisée dans nuxt js, qui fonctionnera pour ssr et également pour frontend (ou même pour ssr uniquement)?
Je l'ai essayé comme dans la documentation suivante: https://nuxtjs.org/api/configuration-render#bundleRenderer
alors j'ai ajouté ce code:
module.exports = {
render: {
bundleRenderer: {
directives: {
custom1: function (el, dir) {
// something ...
}
}
}
}
}
à nuxt.config.js
alors je l'utilise dans le template comme:
<component v-custom1></component>
mais cela ne fonctionne pas, il suffit de jeter l'erreur frontale
[Vue warn]: Echec de la résolution de la directive: custom1
Et cela ne semble pas fonctionner même côté serveur.
Merci pour tout conseil.
Testé dans nuxt-Edge (son nuxt 2.0 sera disponible dans ce mois ou le mois prochain, mais il est plutôt stable tel quel).
nuxt.config.js
render: {
bundleRenderer: {
directives: {
cww: function (vnode, dir) {
const style = vnode.data.style || (vnode.data.style = {})
style.backgroundColor = '#ff0016'
}
}
}
}
page.vue
<div v-cww>X</div>
Résultat HTML du serveur:
<div style="background-color:#ff0016;">X</div>
Si vous souhaitez utiliser des directives personnalisées dans Nuxt, vous pouvez effectuer les opérations suivantes:
plugins: ['~/plugins/directives.js']
Dans votre nouveau fichier, ajoutez votre directive personnalisée comme ceci:
import Vue from 'vue'
Vue.directive('focus', {
inserted: (el) => {
el.focus()
}
})