当前位置:首页 > uni-app

uniapp 服务文件

2026-02-05 21:22:37uni-app

uniapp 服务文件创建与管理

在uniapp中,服务文件通常用于封装通用的业务逻辑、API请求或工具函数,便于全局调用和维护。以下是创建和管理服务文件的方法。

创建服务文件

在项目的根目录或common文件夹下新建一个service目录,用于存放服务文件。例如创建一个api.service.js文件:

uniapp 服务文件

// common/service/api.service.js
const baseUrl = 'https://example.com/api';

export default {
  getList(params) {
    return uni.request({
      url: `${baseUrl}/list`,
      method: 'GET',
      data: params
    });
  },
  postData(data) {
    return uni.request({
      url: `${baseUrl}/submit`,
      method: 'POST',
      data: data
    });
  }
};

全局引入服务文件

main.js中全局引入服务文件,方便在各页面直接调用:

// main.js
import apiService from '@/common/service/api.service.js';

Vue.prototype.$api = apiService;

页面中使用服务

在页面或组件中直接通过this.$api调用服务方法:

uniapp 服务文件

export default {
  methods: {
    async fetchData() {
      try {
        const res = await this.$api.getList({ page: 1 });
        console.log(res.data);
      } catch (error) {
        console.error(error);
      }
    }
  }
};

服务文件模块化

将不同业务逻辑拆分为多个服务文件,例如user.service.jsorder.service.js,按需引入:

// common/service/user.service.js
export default {
  login(data) {
    return uni.request({
      url: '/user/login',
      method: 'POST',
      data: data
    });
  }
};

请求拦截与响应处理

在服务文件中统一处理请求和响应,例如添加token或错误处理:

// common/service/http.service.js
uni.addInterceptor('request', {
  invoke(args) {
    args.header = {
      ...args.header,
      'Authorization': 'Bearer ' + uni.getStorageSync('token')
    };
  },
  fail(err) {
    console.error('请求失败:', err);
  }
});

注意事项

  • 服务文件应保持单一职责,避免过度耦合。
  • 异步请求使用async/awaitPromise处理。
  • 大型项目可使用axios等库替代uni.request,但需注意跨平台兼容性。

通过以上方法,可以高效管理uniapp中的服务文件,提升代码复用性和可维护性。

标签: 文件uniapp
分享给朋友:

相关文章

uniapp 线程

uniapp 线程

uniapp 线程的概念 在 uniapp 中,线程的概念与原生应用开发有所不同。由于 uniapp 是基于 JavaScript 的运行环境,它并不直接支持多线程操作。JavaScript 本身是单…

uniapp 跟随键盘

uniapp 跟随键盘

uniapp 键盘弹出时调整布局的方法 在 uniapp 中实现页面内容跟随键盘弹出调整布局,可通过以下方式实现: 监听键盘高度变化 使用 uni.onKeyboardHeightChange 监听…

uniapp公共弹窗

uniapp公共弹窗

uniapp公共弹窗的实现方法 在uniapp中实现公共弹窗通常涉及全局组件封装、状态管理以及动态调用。以下是几种常见方案: 封装全局组件 创建一个自定义弹窗组件(如common-popup.vue…

uniapp删除线

uniapp删除线

在UniApp中添加删除线的方法 使用CSS样式实现删除线 通过CSS的text-decoration属性可以轻松实现删除线效果。在UniApp的页面或组件中,直接为文本元素添加样式类即可: .t…

vue预览文件实现

vue预览文件实现

实现文件预览功能 在Vue中实现文件预览功能可以通过多种方式完成,具体取决于文件类型(图片、PDF、文档等)和需求。以下是几种常见实现方法: 图片文件预览 使用HTML5的FileReader AP…

vue如何实现文件下载

vue如何实现文件下载

Vue 实现文件下载的方法 使用 <a> 标签下载 通过动态创建 <a> 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 对象的情况。…