'monkeypatches' 放在 Nuxt.js 哪里?

Where to put 'monkeypatches' in Nuxt.js?

我在哪里可以将 'monkeypatches' 和 'my extensions' 放入 Nuxt 框架中基本 javascript 对象的原型,以便在所有文件中访问其功能?

例如:

String.prototype.capitalize = function () {

    return this.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
}

您好,您可以使用您的代码示例创建一个 ~/plugins/my-extensions.js 文件。此代码将是 运行 一次(server-side 和 client-side)并将使您的扩展方法随处可用。

不要忘记在 nuxt.config.js:

中注册您的插件
export default {
  plugins: ['~/plugins/my-extensions.js']
}

这是原型污染,是一种不好的做法。有更好的方法来共享常用功能:

  1. 将它们放入实用程序文件中(例如,在 utils/helpers.js 下并从那里导入它们
  export const capitalize = s => s.replace(/\w\S*/g, 
    txt => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
  )
  1. 使用 Nuxt 插件 inject 辅助函数,因此它在所有组件中都可用(尽管这在这里可能有点矫枉过正)。参见 here

我强烈建议避免原型污染。