Nuxt:创建一个自动添加计算到组件的插件

Posted

技术标签:

【中文标题】Nuxt:创建一个自动添加计算到组件的插件【英文标题】:Nuxt: Create a plugin that automatically adds a computed to component 【发布时间】:2022-01-06 11:50:00 【问题描述】:

我想创建一个 Nuxt 插件,它会自动将计算结果添加到具有特定属性的组件(不使用 mixin)。

例如,任何具有addComputedHere 属性的组件:

export default 
  data() 
    return 
  ,
  computed: 
    myComputed: () => 'foo'
  ,
  addComputedHere: true

会变成:

export default 
  data() 
    return 
  ,
  computed: 
    myComputed: () => 'foo',
    injectedComputed: () => 'bar' // Injected
  ,
  addComputedHere: true

到目前为止,我不确定使用 Nuxt 插件/模块/中间件或仅使用 Vue 插件(如果可行的话)的最佳解决方案是什么。

你会怎么做?

【问题讨论】:

这只能通过 mixin 来实现。 【参考方案1】:

如果有人遇到同样的情况,我通过创建一个 Vue 插件找到了解决方案,该插件应用了一个 mixin 来自定义 beforeCreate 中的组件:

import Vue from 'vue';

const plugin = 
  install(Vue, options) 
    Vue.mixin(
      beforeCreate() 
        if (this.$options.addComputedHere) 
          this.$options.computed['injectedComputed'] = () => 'bar';
        
      
    )
  
;

Vue.use(plugin);

【讨论】:

以上是关于Nuxt:创建一个自动添加计算到组件的插件的主要内容,如果未能解决你的问题,请参考以下文章

如何从 nuxt 插件发出事件?

一个Unity富文本插件的实现思路

nuxt实现全局状态管理导航切换优化

Nuxt中组件/插件的引入注意事项

如何在另一个站点中使用 NUXT 组件

Nuxt 插件属性在“CombinedVueInstance”类型上不存在