Где хранить общие методы компонентов в # NUXT.JS

На самом деле я хочу знать, где хранить общие методы компонентов в # NUXT.JS.

вещи, которые я пробовал. → Сохранение общего кода в промежуточном программном обеспечении (без использования), поскольку, согласно моим знаниям, промежуточное программное обеспечение способно обрабатывать запрос и отвечать на сервер.

methods: {

  // states methods.
  SwitchManager: function (__dataContainer, __key, __value) {
    // stand alone debugger for this module.
    let debug = __debug('computed:_3levelSwitch')
    // debug showing function loaded.
    debug('(h1:sizeCheck) creating switch..')
    // switch.
    switch (__key) {
      // fake allow set value to true of given key
      default:
        this[__dataContainer][__key][__value] = true
        break
    }
    return this[__dataContainer][__key][__value]
  },
  SizeCheck: function (__size) {
    // stand alone debugger for this module.
    let debug = __debug('tags:p')
    // debug showing function loaded.
    debug('(p:sizeCheck) checking..')
    // init switch.
    this.SwitchManager('pill', 'size', __size)
  },
  StateCheck: function (__state) {
    // stand alone debugger for this module.
    let debug = __debug('tags:h1')
    // debug showing function loaded.
    debug('(h1:sizeCheck) checking..')
    // init switch.
    this.SwitchManager('pill', 'state', __state)
  }
},
created () {
  // h1 tag size check
  this.SizeCheck(this.size)
  this.StateCheck(this.state)
}

Ответы

Ответ 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 & контекст