nuxt jsでカスタムディレクティブを作成する方法はありますか?
私は次のドキュメントのようにそれを試しました: https://nuxtjs.org/api/configuration-render#bundleRenderer
だから私はこのコードを追加しました:
module.exports = {
render: {
bundleRenderer: {
directives: {
custom1: function (el, dir) {
// something ...
}
}
}
}
}
nuxt.config.jsに
それから私はそれをテンプレートで使用します:
<component v-custom1></component>
しかし、それは機能しません、それはフロントエンドエラーを投げるだけです
[Vue warn]:ディレクティブの解決に失敗しました:custom1
また、サーバー側でも機能していないようです。
アドバイスありがとうございます。
Nuxt-Edgeでテストされています(そのnuxt 2.0は今月または来月にリリースされますが、現状ではかなり安定しています)。
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>
サーバーからの結果のhtml:
<div style="background-color:#ff0016;">X</div>
Nuxtでカスタムディレクティブを使用する場合は、次の操作を実行できます。
plugins: ['~/plugins/directives.js']
のようなものを追加します新しいファイルに次のようなカスタムディレクティブを追加します。
import Vue from 'vue'
Vue.directive('focus', {
inserted: (el) => {
el.focus()
}
})