uniapp及微信小程序封装全局网络请求,弹框和hint提示
发布人:shili8
发布时间:2025-01-08 07:07
阅读次数:0
**UniApp 和 微信小程序 封装全局网络请求、弹框和 hint 提示**
在开发 UniApp 或 微信小程序 应用时,我们经常会遇到重复的网络请求逻辑和提示信息展示。为了提高开发效率和代码可维护性,我们可以封装一个全局的网络请求库,并且为弹框和 hint 提示提供统一的接口。
**1. 封装全局网络请求库**
首先,我们需要创建一个全局的网络请求库,负责处理所有的网络请求逻辑。我们使用 Vue.js 的 Axios 库来实现这个功能。
javascript// network/request.jsimport axios from 'axios';
const request = axios.create({
baseURL: ' // API 地址 timeout:10000, // 超时时间(10 秒)
});
export default request;
**2. 封装弹框组件**
接下来,我们需要创建一个弹框组件,负责展示提示信息。我们使用 Vue.js 的 Dialog 组件来实现这个功能。
javascript// components/dialog.vue<template>
<view class="dialog">
<view class="content">{{ message }}</view>
<view class="button-group">
<button @click="confirm">确认</button>
<button @click="cancel">取消</button>
</view>
</view>
</template>
<script>
export default {
props: {
message: String,
},
methods: {
confirm() {
this.$emit('confirm');
},
cancel() {
this.$emit('cancel');
},
},
};
</script>
<style scoped>
.dialog {
position: fixed;
top:50%;
left:50%;
transform: translate(-50%, -50%);
width:80vw;
height:60vh;
background-color: #fff;
border-radius:10px;
padding:20px;
}
.content {
font-size:16px;
color: #333;
text-align: center;
}
.button-group {
display: flex;
justify-content: space-between;
margin-top:20px;
}
button {
width:40%;
height:30px;
background-color: #4cd964;
color: #fff;
border-radius:10px;
}
</style>
**3. 封装 hint 提示组件**
最后,我们需要创建一个 hint 提示组件,负责展示提示信息。我们使用 Vue.js 的 Toast 组件来实现这个功能。
javascript// components/hint.vue<template>
<view class="hint">
{{ message }}
</view>
</template>
<script>
export default {
props: {
message: String,
},
};
</script>
<style scoped>
.hint {
position: fixed;
top:50%;
left:50%;
transform: translate(-50%, -50%);
width:80vw;
height:30vh;
background-color: #fff;
border-radius:10px;
padding:20px;
font-size:16px;
color: #333;
}
</style>
**4. 封装全局网络请求函数**
现在,我们需要封装一个全局的网络请求函数,负责处理所有的网络请求逻辑。我们使用 Axios 库来实现这个功能。
javascript// network/request.jsimport axios from 'axios';
const request = axios.create({
baseURL: ' // API 地址 timeout:10000, // 超时时间(10 秒)
});
export default function requestApi(url, method = 'GET', data = {}) {
return new Promise((resolve, reject) => {
request({
url,
method,
data,
})
.then((response) => {
resolve(response.data);
})
.catch((error) => {
reject(error);
});
});
}
**5. 使用全局网络请求函数**
现在,我们可以使用全局网络请求函数来发送网络请求。
javascript// pages/index.jsimport request from '../network/request';
Page({
data: {},
onLoad() {
requestApi('/api/example', 'GET')
.then((data) => {
console.log(data);
})
.catch((error) => {
console.error(error);
});
},
});
**6. 使用弹框组件**
现在,我们可以使用弹框组件来展示提示信息。
javascript// pages/index.jsimport Dialog from '../components/dialog';
Page({
data: {},
onLoad() {
Dialog({
message: '这是一个提示信息',
confirm() {
console.log('确认');
},
cancel() {
console.log('取消');
},
});
},
});
**7. 使用 hint 提示组件**
现在,我们可以使用 hint 提示组件来展示提示信息。
javascript// pages/index.jsimport Hint from '../components/hint';
Page({
data: {},
onLoad() {
Hint({
message: '这是一个提示信息',
});
},
});
通过以上步骤,我们已经完成了对 UniApp 和 微信小程序 的全局网络请求、弹框和 hint 提示的封装。

