使方法在Vue.js中全局可用
在几个Vue文件中,此计算属性检查使方法在Vue.js中全局可用,vue.js,Vue.js,在几个Vue文件中,此计算属性检查此.data是否为空对象: computed: { isLoaded() { return !(this.data && Object.keys(this.data).length === 0 && this.data.constructor === Object); // checks if this.data is not empty } } 然后,isLoaded用于有条件地在
此.data
是否为空对象:
computed: {
isLoaded() {
return !(this.data && Object.keys(this.data).length === 0 && this.data.constructor === Object); // checks if this.data is not empty
}
}
然后,isLoaded
用于有条件地在浏览器中显示内容
我想重构代码并创建一个全局方法,以某种方式检查对象是否为空,这样所有使用此方法的文件都可以从中心位置获取它
即使在阅读了一些关于Vue混合和插件的文章之后,我也不清楚哪一个最适合这个用例。这个应该用哪一个?还是有一种完全不同的方法更适合创建一个全局方法?有几种方法可以做到这一点,它和方法取决于具体情况。对于您的情况,我建议您为utils函数创建一个单独的文件夹,在那里您可以使用smth,比如
common.js
。在那里,您可以只导出您的函数,例如
export const emptyObj = (obj: any): any => Object.keys(obj).length === 0;
并将其导入组件中:
import { emptyObj } from "src/utils/common";
在这种情况下,您可以更轻松地组织共享函数,更轻松地测试它们,并获得typescript支持。有几种方法可以做到这一点,具体方法取决于具体情况。对于您的情况,我建议您为utils函数创建一个单独的文件夹,在那里您可以使用smth,比如
common.js
。在那里,您可以只导出您的函数,例如
export const emptyObj = (obj: any): any => Object.keys(obj).length === 0;
并将其导入组件中:
import { emptyObj } from "src/utils/common";
在这种情况下,您可以更轻松地组织共享功能,更轻松地测试它们并获得typescript支持。是否有一种全局方法可以避免将
import
行添加到每个需要它的组件中?是的,您可以创建将在每个vue组件上运行的全局混合(可能是一种开销)也可以将此函数添加到Vue.prototype。顺便说一句,看看dock,看看v-Dope,它是内置的Vue指令,与您正在做的事情类似。是否有一种全局方法可以避免将import
行添加到每个需要它的组件中?是的,您可以创建在每个Vue组件上运行的全局Mixin(可能是开销)也可以将此函数添加到Vue.prototype。顺便说一句,看看dock,看看v-Dope,它是内置的Vue指令,它做的事情与您正在做的事情类似