Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使方法在Vue.js中全局可用_Vue.js - Fatal编程技术网

使方法在Vue.js中全局可用

使方法在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用于有条件地在

在几个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
用于有条件地在浏览器中显示内容

我想重构代码并创建一个全局方法,以某种方式检查对象是否为空,这样所有使用此方法的文件都可以从中心位置获取它


即使在阅读了一些关于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指令,它做的事情与您正在做的事情类似