'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']
}
这是原型污染,是一种不好的做法。有更好的方法来共享常用功能:
- 将它们放入实用程序文件中(例如,在
utils/helpers.js
下并从那里导入它们
export const capitalize = s => s.replace(/\w\S*/g,
txt => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
)
- 使用 Nuxt 插件
inject
辅助函数,因此它在所有组件中都可用(尽管这在这里可能有点矫枉过正)。参见 here
我强烈建议避免原型污染。
我在哪里可以将 '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']
}
这是原型污染,是一种不好的做法。有更好的方法来共享常用功能:
- 将它们放入实用程序文件中(例如,在
utils/helpers.js
下并从那里导入它们
export const capitalize = s => s.replace(/\w\S*/g,
txt => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
)
- 使用 Nuxt 插件
inject
辅助函数,因此它在所有组件中都可用(尽管这在这里可能有点矫枉过正)。参见 here
我强烈建议避免原型污染。