#javascript #vue.js #nuxtjs
#javascript #vue.js #nuxtjs
Вопрос:
Как правильно присвоить классу значение прототип в Vue NuxtJS?
Я создаю плагин
nuxt.config.js
plugins: [
{ src: "~/plugins/global.js" },
],
global.js
import Vue from "vue";
import CustomStore from "devextreme/data/custom_store";
//try set in prototype
Vue.use(CustomStore)
есть ошибка
A class must be instantiated using the 'new'
Я понимаю, что это неверно, но я нигде не могу найти, как его инициализировать
Vue.use(new CustomStore());
ошибки нет, но как вызвать?
Я хочу использовать что-то подобное в своем компоненте
this.dataSource = this.$CustomStore({ ///... settings...// })
Ответ №1:
Я предполагаю, что CustomStore
это функция, поэтому вы можете попробовать использовать Nuxt.js inject()
метод. Этот метод сделает ваши функции или значения доступными в вашем приложении.
~/plugins/global.js
export default ({ app }, inject) => {
// Inject $CustomStore() in Vue, context and store.
inject('CustomStore', CustomStore)
}
затем вы можете использовать его в своих компонентах приложения.
ваш компонент
mounted() {
this.$CustomStore()
},
ссылка https://nuxtjs.org/docs/2.x/directory-structure/plugins#inject-in-root—context
Комментарии:
1. да, я думал об этом, и вызов работает так.dataSourceOrg = new this.$CustomStore({ });