当前位置:实例文章 » HTML/CSS实例» [文章]uniapp及微信小程序封装全局网络请求,弹框和hint提示

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 提示的封装。

其他信息

其他资源

Top