Ответ 1
Я иду на mixins как с обычным vue.js. Единственная разница - для глобальных миксинов - я включаю их как плагин, но сначала:
Неглобальные миксины
Я бы создал дополнительную папку для своих миксинов. Например, в /mixins/testMixin.js
export default {
methods: {
aCommonMethod () {}
}
}
Затем импортируйте макет, страницу или компонент и добавьте его через объект mixins:
<script>
import commonMixin from '~/mixins/testMixin.js
export default {
mixins: [commonMixin]
}
</script>
Глобальные миксины
Например, в новом файле plugins/mixinCommonMethods.js
:
import Vue from 'vue'
Vue.mixin({
methods: {
aCommonMethod () {}
}
})
Затем включите этот файл в nuxt.config.js
plugins: ['~/plugins/mixinCommonMethods']
После этого вы будете иметь метод везде доступным и вызывать его там с помощью this.commonMethod()
. Но вот совет из документов vue.js:
Используйте глобальные миксины редко и осторожно, поскольку они влияют на каждый созданный экземпляр Vue, включая сторонние компоненты. В большинстве случаев вы должны использовать его только для обработки пользовательских опций, как показано в примере выше. Также рекомендуется отправлять их в виде плагинов, чтобы избежать дублирования приложений.
Внедрить в $ root & контекст
Другой возможностью было бы вставить в $ root & контекст