Nuxt: Создайте плагин, который автоматически добавляет вычисляемый компонент в компонент

#vue.js #vuejs2 #vue-component #nuxt.js

#vue.js #vuejs2 #vue-компонент #nuxt.js

Вопрос:

Я хотел бы создать плагин Nuxt, который автоматически добавляет вычисляемый компонент к компонентам, имеющим определенное свойство (без использования миксина).

Например, любой компонент, обладающий addComputedHere свойством:

 export default {  data() {  return {}  },  computed: {  myComputed: () =gt; 'foo'  },  addComputedHere: true }  

превратился бы в:

 export default {  data() {  return {}  },  computed: {  myComputed: () =gt; 'foo',  injectedComputed: () =gt; 'bar' // Injected  },  addComputedHere: true }  

До сих пор я не уверен, что является лучшим решением среди использования плагина/модуля/промежуточного программного обеспечения Nuxt или просто плагина Vue (если это возможно).

Как бы вы это сделали?

Комментарии:

1. Это было бы возможно только с помощью миксина.

Ответ №1:

Если кто-то находится в таком же положении, я нашел решение, создав плагин Vue, который применяет миксин для настройки компонента в beforeCreate :

 import Vue from 'vue';  const plugin = {  install(Vue, options) {  Vue.mixin({  beforeCreate() {  if (this.$options.addComputedHere) {  this.$options.computed['injectedComputed'] = () =gt; 'bar';  }  }  })  } };  Vue.use(plugin);