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 如何在组件内部导出和导入多个函数?vuejs_Vue.js_Vuejs2 - Fatal编程技术网

Vue.js 如何在组件内部导出和导入多个函数?vuejs

Vue.js 如何在组件内部导出和导入多个函数?vuejs,vue.js,vuejs2,Vue.js,Vuejs2,在我的Date.js中,我尝试导出多个函数,但失败并返回了一系列错误 import moment from 'moment'; let today = moment(); const age = function(date) { return today.diff(moment(date), 'years'); } const ageGreaterThan = function(date, age) { return age(date) > age; } //more function

在我的Date.js中,我尝试导出多个函数,但失败并返回了一系列错误

import moment from 'moment';

let today = moment();

const age = function(date) { return today.diff(moment(date), 'years'); }
const ageGreaterThan = function(date, age) { return age(date) > age; }
//more functions here

export default age, ageGreaterThan;
在我的Signup.vue中,我正在尝试导入上面的文件,因为它预期会失败

import Datex from './../util/Date.js';

export default{
    data(){ datex: new Datex },

    methods: {
        sample(val){ return this.datex.age(val); }
    }
}

我真的很困惑,有人能帮我怎么做吗?

你可以像这样直接导出成本:

选项1-使用直接导出
export const func
从“时刻”导入时刻;
让今天=时刻();
export const age=function(date){return today.diff(moment(date),'years');}
export const ageGreaterThan=函数(date,ageVal){返回this.age(date)>ageVal;}
//这里有更多功能
请注意,由于您没有使用
默认值
对象,因此导入将需要使用
*作为
表单

import*作为Datex从'../util/Date.js'导入
选项2-创建函数并在默认对象中换行导出
从“时刻”导入时刻;
让今天=时刻();
const age=function(date){return today.diff(moment(date),'years');}
const ageGreaterThan=函数(date,ageVal){返回this.age(date)>ageVal;}
//这里有更多功能
导出默认值{
年龄
年龄大于,
//其他功能
}
选项3-直接在导出对象中定义函数
从“时刻”导入时刻;
让今天=时刻();
导出默认值{
年龄(日期){
今天返回。diff(时刻(日期),“年”)
},
年龄大于(日期,ageVal){
返回此。年龄(日期)>ageVal;
},
//其他功能
}

组件中的问题是,您将其视为类而不是对象。您应该删除
new Datex()
并直接使用
Datex.*()
(其中*是函数)

如果您正在使用上面的选项2或3,则可以通过这种方式导入。(对于选项1,请参见上文中未提及的使用
*作为
)
在组件中,然后执行

从“../util/Date.js”导入Datex;
导出默认值{
方法:{
样本(val){返回日期x.age(val);}
}
}
或者,您只能直接导入所需的函数

从“./util/Date.js”导入{age,agegreaterther};
导出默认值{
方法:{
样本(val){返回年龄(val);}
}
}

您可以这样直接导出成本:

选项1-使用直接导出
export const func
从“时刻”导入时刻;
让今天=时刻();
export const age=function(date){return today.diff(moment(date),'years');}
export const ageGreaterThan=函数(date,ageVal){返回this.age(date)>ageVal;}
//这里有更多功能
请注意,由于您没有使用
默认值
对象,因此导入将需要使用
*作为
表单

import*作为Datex从'../util/Date.js'导入
选项2-创建函数并在默认对象中换行导出
从“时刻”导入时刻;
让今天=时刻();
const age=function(date){return today.diff(moment(date),'years');}
const ageGreaterThan=函数(date,ageVal){返回this.age(date)>ageVal;}
//这里有更多功能
导出默认值{
年龄
年龄大于,
//其他功能
}
选项3-直接在导出对象中定义函数
从“时刻”导入时刻;
让今天=时刻();
导出默认值{
年龄(日期){
今天返回。diff(时刻(日期),“年”)
},
年龄大于(日期,ageVal){
返回此。年龄(日期)>ageVal;
},
//其他功能
}

组件中的问题是,您将其视为类而不是对象。您应该删除
new Datex()
并直接使用
Datex.*()
(其中*是函数)

如果您正在使用上面的选项2或3,则可以通过这种方式导入。(对于选项1,请参见上文中未提及的使用
*作为
)
在组件中,然后执行

从“../util/Date.js”导入Datex;
导出默认值{
方法:{
样本(val){返回日期x.age(val);}
}
}
或者,您只能直接导入所需的函数

从“./util/Date.js”导入{age,agegreaterther};
导出默认值{
方法:{
样本(val){返回年龄(val);}
}
}
一个快速示例:

// use/loading.js

import { Loading } from "quasar";
import { i18n } from "../../app/src/boot/i18n";

export default {
  show: (message = null) => {
    Loading.show({
      message: `${i18n.t(message || "request_processing")} ...`
    });
  },

  hide: () => Loading.hide()
};
在组件中使用

import loading from "use/loading";

export default {
  ...
  methods: {
    async myFunction() {
      loading.show();

      try {
        await fetchAPI()
      } catch (e) {
        // HANDLE ERROR
      }
      loading.hide();
    }
  },
  ...
};
</script>
从“使用/加载”导入加载;
导出默认值{
...
方法:{
异步myFunction(){
loading.show();
试一试{
等待获取API()
}捕获(e){
//处理错误
}
loading.hide();
}
},
...
};
一个快速示例:

// use/loading.js

import { Loading } from "quasar";
import { i18n } from "../../app/src/boot/i18n";

export default {
  show: (message = null) => {
    Loading.show({
      message: `${i18n.t(message || "request_processing")} ...`
    });
  },

  hide: () => Loading.hide()
};
在组件中使用

import loading from "use/loading";

export default {
  ...
  methods: {
    async myFunction() {
      loading.show();

      try {
        await fetchAPI()
      } catch (e) {
        // HANDLE ERROR
      }
      loading.hide();
    }
  },
  ...
};
</script>
从“使用/加载”导入加载;
导出默认值{
...
方法:{
异步myFunction(){
loading.show();
试一试{
等待获取API()
}捕获(e){
//处理错误
}
loading.hide();
}
},
...
};

Datex
不是一个类,但是您可以执行以下操作:
从“/../util/Date.js”导入*作为Datex并使用
Datex.age()
您读过这个博客吗?我认为这将有助于你
Datex
不是一个类,但是你可以这样做:
import*as-Datex from./../util/Date.js'
并使用
Datex.age()
你读过这个博客吗?我认为这将有助于ustill接收此错误类型错误:util\u Moment\u js\u WEBPACK\u IMPORTED\u MODULE\u 0\uuuu。默认值不是构造函数,先生在“/../util/Date.js”中找不到导出“age”,看起来您正在使用第一个示例。我应该指定您需要以这种方式导入,因为当我调用ageGreaterThan()时,默认值不使用“../util/Date.js”
中的
import*作为Datex,返回的错误是“TypeError:age不是函数”,您需要明确您正在使用的
age
。如果要将
age
作为函数的参数传递,请使用
age()
。如果您依赖于同一文件中定义的age函数,那么应该使用
this.age()<