如上图,我在多个页面都定义了 utils
,所以这个页面显示重复定义,但是我去掉这里的定义又会报错 utils
未定义。要如何解决这里的波浪线报错
utils
文件夹在项目中创建一个 utils
文件夹,并在其中定义所有的工具函数。这样可以将所有的工具函数集中管理,避免重复定义的问题。
project-root/
│
├── utils/
│ ├── dateTimeUtils.js
│ ├── http.js
│ └── utils.js
│ └── index.js
│
├── pages/
│ └── history.js
│
└── ...
在 utils
文件夹中定义各个工具函数模块。
// utils/dateTimeUtils.js
module.exports = {
getCurrentDate: () => {
const date = new Date();
return date.toISOString().split('T')[0];
},
// 其他日期时间工具函数
};
// utils/http.js
const axios = require('axios');
module.exports = {
get: async (url) => {
try {
const response = await axios.get(url);
return response.data;
} catch (error) {
console.error(error);
throw error;
}
},
// 其他 HTTP 请求工具函数
};
// utils/utils.js
module.exports = {
// 其他通用工具函数
randomInt: (min, max) => {
return Math.floor(Math.random() * (max - min + 1)) + min;
},
};
在 utils
文件夹中创建 index.js
文件,并在其中集中导出所有的工具函数。
const dateTimeUtils = require('./dateTimeUtils');
const http = require('./http');
const utils = require('./utils');
module.exports = {
dateTimeUtils,
http,
utils,
};
utils
在需要使用工具函数的页面中引入 utils
模块,并使用其中的函数。
// pages/history.js
const { dateTimeUtils, http, utils } = require('../../utils');
async function fetchData() {
const data = await http.get('https://api.example.com/data');
console.log(data);
}
function showDate() {
console.log(dateTimeUtils.getCurrentDate());
}
function generateRandomNumber() {
console.log(utils.randomInt(1, 100));
}
fetchData();
showDate();
generateRandomNumber();
utils
文件夹中,避免重复定义。2 回答1.4k 阅读
2 回答2.8k 阅读
2 回答2k 阅读
3 回答1.9k 阅读
2 回答1.5k 阅读
1 回答1.6k 阅读
在项目的根目录下创建一个文件夹,并在其中创建
utils.js
文件,集中管理所有的公共方法。在需要使用
utils
的页面中,直接引入这个公共模块,而不是在每个页面中重新定义。可以挂载到Vue.prototype,可以在任何页面中直接使用,而不需要每次都引入。
在
main.js
中挂载:在页面中调用: