Присвоить классу значение прототип в NuxtJS Vue

#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({ });