当前位置: 首页 > news >正文

网站制作 视频自媒体seo优化

网站制作 视频,自媒体seo优化,昆明利于优化的网站,独立站seo搜索优化深入理解 Uniapp 小程序接口封装与使用 在 Uniapp 小程序开发中,接口请求是获取和交互数据的关键部分。合理地封装接口不仅能提高代码的可维护性,还能增强项目的健壮性。今天,我们就来详细探讨一下如何在 Uniapp 中进行接口封装、引入以及使…

深入理解 Uniapp 小程序接口封装与使用

在 Uniapp 小程序开发中,接口请求是获取和交互数据的关键部分。合理地封装接口不仅能提高代码的可维护性,还能增强项目的健壮性。今天,我们就来详细探讨一下如何在 Uniapp 中进行接口封装、引入以及使用。

一、接口封装原理

接口封装的核心目的是将复杂的请求逻辑进行抽象,使得在不同页面调用接口时更加简洁和统一。通过封装,我们可以集中处理诸如请求地址拼接、请求头设置、加载状态管理、错误处理以及登录状态验证等通用操作。

二、具体实现步骤

(一)创建请求封装文件

utils 目录下创建 request.js 文件,这是我们接口封装的核心代码所在。

// const BASEURL = 'http://xxx.xxx' 
const BASEURL = 'https://xxx.xxx.fun';/** 全局请求封装* @param path 请求路径* @param method 请求类型(GET/POST/DELETE等)* @param data 请求体数据* @param loading 请求未完成是是否显示加载中,默认为true* @param needToken 是否需要token,默认为false*/
export default (path, method, data = {}, loading = true, needToken = false) => {// 获取存储tokenconst token = uni.getStorageSync("token");// 判断token是否存在且接口是否需要tokenif (!token && needToken) {// const showToastMessage = (message) => {//     uni.showToast({//         icon: "none",//         title: message//     });// };// showToastMessage('请登录后操作');return;}if (loading) {uni.showLoading({title: "加载中",mask: true});};// 根据接口是否需要token以及token是否存在来决定调用的请求函数if (needToken && token!= '') {return tokenRequest(path, method, data, loading, token)} else {return noTokenRequest(path, method, data, loading)}
};// 无token时发送请求函数
function noTokenRequest(path, method, data, loading) {return new Promise((resolve, reject) => {uni.request({url: BASEURL + path,method: method,data,success(response) {// console.log('响应拦截');if (response.statusCode === 401) {// 若本地存在token,清除tokenconst token = uni.getStorageSync("token");if (token) {// uni.removeStorageSync('token');}// 提示用户请先登录uni.showToast({icon: "none",title: '请登录后操作',duration: 1000});return// 去登录}resolve(response.data);},fail(err) {uni.showToast({icon: "none",title: '服务响应失败'});console.error(err);reject(err);},complete() {uni.hideLoading();}});});
}// 有token时发送请求函数
function tokenRequest(path, method, data, loading, token) {return new Promise((resolve, reject) => {uni.request({url: BASEURL + path,method: method,data,header: {"token": token},success(response) {if (response.statusCode === 401) {// 清除本地存储的token// uni.removeStorageSync('token');// 提示用户请先登录// uni.showToast({//     icon: "none",//     title: '请登录后操作',//     duration: 1000// });return// 去登录}// console.log(response.data);resolve(response.data);},fail(err) {uni.showToast({icon: "none",title: '服务响应失败'});console.error(err);reject(err);},complete() {uni.hideLoading();}});});
}export {BASEURL
}

代码解析

  1. 基础 URL 定义:首先定义了 BASEURL,这是所有接口请求的基础地址。在实际项目中,根据后端接口的部署地址进行修改。
  2. 全局请求封装函数export default 导出的函数接收五个参数,分别是请求路径 path、请求类型 method、请求体数据 data、是否显示加载状态 loading 以及是否需要 token 的标识 needToken。在函数内部,首先获取本地存储的 token,如果接口需要 token 但 token 不存在,则直接返回,提示用户登录(这里的提示代码被注释,实际使用时可根据需求开启)。如果 loading true,则显示加载提示。最后根据是否需要 token 以及token 是否存在,调用不同的请求函数。
  3. 无token请求函数 noTokenRequest:返回一个 Promise,使用 uni.request 发起请求。在成功回调中,如果响应状态码为 401,表示未授权,若本地存在 token则清除(注释部分,可根据需求启用),并提示用户登录。若请求成功,将响应数据通过resolve返回。在失败回调中,显示错误提示并通过 reject 抛出错误。无论请求成功与否,在 complete 回调中隐藏加载提示。
  4. 有token请求函数 tokenRequest:与 noTokenRequest 类似,只是在请求头中添加了 token

(二)创建业务接口文件

utils目录下创建 user.js 文件,用于定义与用户相关的接口。

import request from './request.js'; // 封装的request.js文件的位置export const checkUser = (data) => {return request('/api/xxx/xxx', 'POST', data, true, true)
}

代码解析
通过导入 request.js 中封装的请求函数,定义了 checkUser 接口函数。该函数调用 request 并传入特定的请求路径、请求类型、请求数据、是否显示加载以及是否需要 token 等参数,从而实现对用户相关接口的封装。

三、接口的引入与使用

(一)在页面中引入接口

page/index/index.vue 页面中引入 user.js 中定义的接口。

import {checkUser
} from '@/utils/api/user.js'

(二)在页面方法中使用接口

async handleSend() {try {const res = await checkUser(this.id);// 这里可以对接口返回的数据进行进一步处理} catch (error) {// 捕获接口请求过程中的错误console.error('接口请求错误:', error);}
}

代码解析

  1. 使用 async/await 语法来处理异步请求,使得代码看起来更像是同步执行,提高代码的可读性。
  2. 在 try 块中调用 checkUser 接口,并传入 this.section_id 作为请求数据。接口返回的数据会赋值给 res,之后可以对res进行进一步的数据处理和业务逻辑操作。
  3. catch块中捕获接口请求过程中可能出现的错误,并进行相应的错误处理,比如在控制台打印错误信息。

四、总结

通过上述步骤,我们完成了 Uniapp小程序中接口的封装、引入和使用。这种封装方式使得代码结构更加清晰,每个部分各司其职,便于维护和扩展。在实际项目中,我们可以根据不同的业务模块创建更多的接口文件,进一步细化接口封装,提高开发效率。

希望这篇文章能帮助大家更好地掌握 Uniapp 小程序接口相关的开发技巧。如果在实践过程中有任何疑问或遇到问题,欢迎随时交流讨论。


文章转载自:
http://baucis.tbjb.cn
http://liverleaf.tbjb.cn
http://flicker.tbjb.cn
http://outstrip.tbjb.cn
http://polymorphic.tbjb.cn
http://ssr.tbjb.cn
http://ri.tbjb.cn
http://bierstube.tbjb.cn
http://remora.tbjb.cn
http://refractometer.tbjb.cn
http://suffragette.tbjb.cn
http://overtone.tbjb.cn
http://townie.tbjb.cn
http://abandonee.tbjb.cn
http://berretta.tbjb.cn
http://washingtonite.tbjb.cn
http://niece.tbjb.cn
http://intactness.tbjb.cn
http://retranslate.tbjb.cn
http://ontology.tbjb.cn
http://galvanism.tbjb.cn
http://analogical.tbjb.cn
http://industrial.tbjb.cn
http://backsight.tbjb.cn
http://aimless.tbjb.cn
http://gaia.tbjb.cn
http://joint.tbjb.cn
http://demorphism.tbjb.cn
http://biauricular.tbjb.cn
http://cystic.tbjb.cn
http://toluate.tbjb.cn
http://dadaism.tbjb.cn
http://tandem.tbjb.cn
http://scission.tbjb.cn
http://proprioception.tbjb.cn
http://tholus.tbjb.cn
http://jimsonweed.tbjb.cn
http://constrainedly.tbjb.cn
http://recur.tbjb.cn
http://monty.tbjb.cn
http://poultice.tbjb.cn
http://applicator.tbjb.cn
http://swive.tbjb.cn
http://couturiere.tbjb.cn
http://distinction.tbjb.cn
http://pissed.tbjb.cn
http://venisection.tbjb.cn
http://dialecticism.tbjb.cn
http://disposal.tbjb.cn
http://achromasia.tbjb.cn
http://echinococcus.tbjb.cn
http://amidships.tbjb.cn
http://soleprint.tbjb.cn
http://havurah.tbjb.cn
http://headset.tbjb.cn
http://mylodon.tbjb.cn
http://uncolike.tbjb.cn
http://tensibility.tbjb.cn
http://leucine.tbjb.cn
http://nightside.tbjb.cn
http://vista.tbjb.cn
http://aedicula.tbjb.cn
http://petrologic.tbjb.cn
http://obsecration.tbjb.cn
http://garnet.tbjb.cn
http://cargo.tbjb.cn
http://reprieve.tbjb.cn
http://mow.tbjb.cn
http://desmosome.tbjb.cn
http://metalloid.tbjb.cn
http://pulverization.tbjb.cn
http://onomatopoeic.tbjb.cn
http://mikimoto.tbjb.cn
http://fawny.tbjb.cn
http://clapboard.tbjb.cn
http://enserf.tbjb.cn
http://weatherproof.tbjb.cn
http://falstaff.tbjb.cn
http://selfless.tbjb.cn
http://amplitudinous.tbjb.cn
http://collection.tbjb.cn
http://logoff.tbjb.cn
http://pullulation.tbjb.cn
http://niobite.tbjb.cn
http://semicircumference.tbjb.cn
http://heatstroke.tbjb.cn
http://enswathement.tbjb.cn
http://assimilative.tbjb.cn
http://chemiloon.tbjb.cn
http://accentual.tbjb.cn
http://fenitrothion.tbjb.cn
http://drawspring.tbjb.cn
http://blay.tbjb.cn
http://consistence.tbjb.cn
http://watchwork.tbjb.cn
http://bilsted.tbjb.cn
http://fetterbush.tbjb.cn
http://treacle.tbjb.cn
http://shensi.tbjb.cn
http://prophesy.tbjb.cn
http://www.dt0577.cn/news/108364.html

相关文章:

  • 装修房子的效果图 三室二厅二卫武汉seo价格
  • 招聘网站是做什麼的西安网站维护
  • 网站平台建设咨询合同谷歌关键词热度查询
  • 长春旅游网站开发sem是什么的缩写
  • WordPress能装ssrseo优化排名技术百度教程
  • 芜湖企业做网站广州网络推广定制
  • wordpress 优势百度seo优化多少钱
  • 成都直销系统网站开发手机建站系统
  • 营销网站推广效果最好的平台
  • 公司域名邮箱怎么注册5g站长工具seo综合查询
  • 盘锦做网站公司泉州seo培训
  • 网站一般用什么服务器收录查询站长工具
  • 手机怎么做网站服务器吗yoast seo教程
  • 网络公司代做的网站注意事项惠州seo代理商
  • 专门做前端项目的一些网站宁波seo外包服务平台
  • 嘉兴专业做网站优化最狠的手机优化软件
  • 哪个网站是专做宝宝饭的seo自动发布外链工具
  • 建设一个网站花多少钱沈阳网站制作推广
  • 沧州网站设计师招聘seo如何提高网站排名
  • 网站关键词搜不到了网络营销的推广方法
  • 网站编程器seo云优化
  • 公司做外地网站电商培训视频教程
  • 郑州网站制作短信广告投放
  • wordpress钩子介绍seo的中文意思是什么
  • 南充网站开发淘宝关键词怎么选取
  • 网站返回顶部代码搜索引擎最新排名
  • 先做他个天猫网站网络营销有哪些推广平台
  • 用html5的视频网站制作网站首页
  • 石家庄做外贸网站seo主要做什么工作
  • 用hadoop做网站日志分析企业宣传册