如何在 Vue 中使用全局函数?
How can I use global functions in Vue?
我有日期格式化功能。现在我需要在不同的组件中使用这个方法。这种情况的最佳做法是什么?指示?过滤器?或者有什么不同?我该如何定义它?
dateWithoutTime(date) {
return date ? date.split("T")[0] : ""
}
模块
假设您正在使用 Vue CLI 或等效的捆绑器,最可组合的方式是为实用函数创建一个模块,例如:
utilities.js
export const dateWithoutTime = function(date) {
return date ? date.split("T")[0] : ""
}
然后您可以在任何需要的地方导入该函数:
SomeComponent.vue
import { dateWithoutTime } from '@/modules/utilities.js'
export default {
data: () => ({
someDate: new Date()
}),
methods: {
someMethod() {
return dateWithoutTime(this.someDate);
}
}
}
编辑:您也可以使其成为一种直接从模板中使用它的方法:
methods: {
dateWithoutTime // Same as `dateWithoutTime: dateWithoutTime`
}
Vue.prototype
另一种选择是在 Vue.prototype
上设置函数,然后再实例化您的应用程序:
main.js
Vue.prototype.$dateWithoutTime = function(date) {
return date ? date.split("T")[0] : ""
}
new Vue({
...
})
然后该函数可以在任何组件中使用,例如:
SomeComponent.vue
export default {
data: () => ({
someDate: new Date()
}),
methods: {
someMethod() {
return this.$dateWithoutTime(this.someDate);
}
}
}
我有日期格式化功能。现在我需要在不同的组件中使用这个方法。这种情况的最佳做法是什么?指示?过滤器?或者有什么不同?我该如何定义它?
dateWithoutTime(date) {
return date ? date.split("T")[0] : ""
}
模块
假设您正在使用 Vue CLI 或等效的捆绑器,最可组合的方式是为实用函数创建一个模块,例如:
utilities.js
export const dateWithoutTime = function(date) {
return date ? date.split("T")[0] : ""
}
然后您可以在任何需要的地方导入该函数:
SomeComponent.vue
import { dateWithoutTime } from '@/modules/utilities.js'
export default {
data: () => ({
someDate: new Date()
}),
methods: {
someMethod() {
return dateWithoutTime(this.someDate);
}
}
}
编辑:您也可以使其成为一种直接从模板中使用它的方法:
methods: {
dateWithoutTime // Same as `dateWithoutTime: dateWithoutTime`
}
Vue.prototype
另一种选择是在 Vue.prototype
上设置函数,然后再实例化您的应用程序:
main.js
Vue.prototype.$dateWithoutTime = function(date) {
return date ? date.split("T")[0] : ""
}
new Vue({
...
})
然后该函数可以在任何组件中使用,例如:
SomeComponent.vue
export default {
data: () => ({
someDate: new Date()
}),
methods: {
someMethod() {
return this.$dateWithoutTime(this.someDate);
}
}
}