Vue.js 如何在组件内部导出和导入多个函数?vuejs
在我的Date.js中,我尝试导出多个函数,但失败并返回了一系列错误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
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()<