Пользовательские директивы в nuxt в JS
есть ли способ написать пользовательскую директиву в nuxt js, которая будет работать для ssr, а также для frontend (или даже только для ssr)?
Я пробовал как в документации: https://nuxtjs.org/api/configuration-render#bundleRenderer
поэтому я добавил этот код:
module.exports = {
render: {
bundleRenderer: {
directives: {
custom1: function (el, dir) {
// something ...
}
}
}
}
}
в nuxt.конфиг.js
затем я использую его в шаблон:
<component v-custom1></component>
но это не работает, он просто бросает ошибку интерфейса
[Vue warn]: не удалось разрешить директиву: custom1
и он, похоже, не работает даже на стороне сервера.
Спасибо за любой совет.
2 ответов
протестировано в nuxt-edge ( его nuxt 2.0, который выйдет в этом или следующем месяце, но его довольно стабильный).
nuxt.конфиг.js
render: {
bundleRenderer: {
directives: {
cww: function (vnode, dir) {
const style = vnode.data.style || (vnode.data.style = {})
style.backgroundColor = '#ff0016'
}
}
}
}
страница.vue
<div v-cww>X</div>
результирующий html с сервера:
<div style="background-color:#ff0016;">X</div>
Если вы хотите использовать пользовательские директивы в Nuxt вы можете сделать следующее:
- создайте файл внутри папки плагинов, например директивы.js
- в nuxt.конфиг.js добавить что-то вроде
plugins: ['~/plugins/directives.js']
в новом файле добавьте свою пользовательскую директиву следующим образом:
import Vue from 'vue'
Vue.directive('focus', {
inserted: (el) => {
el.focus()
}
})