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

上海部道网站 建设山西网站建设 哪家好

上海部道网站 建设,山西网站建设 哪家好,app大全,四川华鸿建设有限公司网站前言 小程序自带的网络请求使用起来比较麻烦,不便于管理,就需要封装网络请求,减少繁琐步骤,封装最终效果,根据类别将网络请求封装在文件中,使用得时候调用文件名名称加文件中得自定义名称,就可…

前言

小程序自带的网络请求使用起来比较麻烦,不便于管理,就需要封装网络请求,减少繁琐步骤,封装最终效果,根据类别将网络请求封装在文件中,使用得时候调用文件名名称加文件中得自定义名称,就可以了

需要vue2+Axios封装网络请求的点这里
需要vue3+ts+Axios封装网络请求的点这里

安装Axios

 npm install axios或者yarn add axios

新建network网络请求文件

在这里插入图片描述
index.js:网络请求文件
config.js:自动导入apis文件夹下的所有js文件,需要把apis文件下的文件名写进去
home.js:自定义文件名称,根据自己请求类别进行分类,比home,购物车,等等

index.js 文件

import config from "./config";
// 定义函数完成网络请求
function startNetwork(params) {return new Promise((resolve, reject) => {uni.request({...params,success(res) {resolve(res);if (res.code != 0) {reject(res.msg);}else {resolve(res);}},fail: () => {reject('网络请求失败!');}})});
}
const files = config.files;
//完成文件名称的提取并且将对应文件中的模块数据进行导入
const modules = files.reduce((target, filePath) => {const fileName = filePath.replace(/^(\w+)\.(js)$/i, "$1");const module = require("./apis/" + filePath);for (let key in module) {target[fileName + "/" + key] = module[key];}return target;
}, {});//设置代理数据完成对modules对象的数据拦截
const proxy = new Proxy(modules, {async get(target, key) {const params = target[key](target.meta ? target.meta : null);const res = await startNetwork(params);target.meta = null;return res;}
});//定义函数完成网络数据的获取
async function getDatas(keyName, meta = null) {if (meta) {proxy.meta = meta;}return await proxy[keyName];
}export default getDatas;

config.js文件

把apis文件夹下的名称导入,就不用一个一个导入index.js页面了

export default {files:["home.js",]
}

home.js文件

Header部分这里是我的Header,用的时候替换自己的就可以了

var md5 = require("../../utils/md5.js");
function getHeader() {var timestamp = Date.parse(new Date());timestamp = parseInt(timestamp / 1000);let herder_info = {"content-type": "application/json", // 默认值"access-token": getToken(),"access-sign": md5.hexMD5(timestamp + "c-q-z-n") + "." + timestamp,};return herder_info;
}
const getToken = function () {var token = uni.getStorageSync("token");return token;
};module.exports = {xuqiuInfo(mate) {  //网络请求名称,一个文件中名称不可重复return {method: "GET",url: "",//放入你自己的真实的请求地址header: getHeader(),data: mate,};},xuqiuSave(mate) { //网络请求名称,一个文件中名称不可重复return {method: "POST",url:  "",//放入你自己的真实的请求地址header: getHeader(),data: mate,};},
};

main.js文件中全局导入

import getDatas from './static/network/index.js'
//完成网络请求的全局挂载 
Vue.prototype.$axios = getDatas

使用方式

home:apis文件下的文件名称
xuqiuSave:home.js文件中的网络请求名称,
然后将网络请求写成对应得函数即可,使用时候调用对应得函数,就可以调用网络请求,使用得时候只需要调用该文件下的对应得请求即可进行网络请求

携带参数

      async xuqiuSave() {const res = await this.$axios("home/xuqiuSave", {title: this.search,status: '',//状态(留空查询全部,0禁用1正常)types: '',// 客户分类id (留空查询全部)page: this.currentPage,//页码limit: '',//每页数量});console.log("xuqiuSave", JSON.parse(JSON.stringify(res.data)));},

不携带参数

      async xuqiuInfo() {const res = await this.$axios("home/xuqiuInfo");console.log("xuqiuInfo", JSON.parse(JSON.stringify(res.data)));},
http://www.dtcms.com/wzjs/780928.html

相关文章:

  • 横店网站开发网站程序基础
  • 单位门户网站建设免费制作详情页的网站
  • 网站内容营销中小企业信息服务平台
  • 石家庄网站建设求职简历360安全导航网址
  • 去哪个网站有客户找做标书的约软件免费的有哪些
  • 杭州专业制作网站搜索引擎营销的流程
  • php mysql网站开发全程实例 下载西安网站建设比较好的公司
  • 做基因功能注释的网站网站线框图怎么做
  • 成品网站速成网站wordpress响应式主板
  • 苏州网站建设方式什么网络公司比较好
  • 如何用图片文字做网站成套小说网站模板
  • 个人优秀网站欣赏电子版个人简历模板
  • seo网站内容优化有哪些即将新款手机上市
  • 网站规划与建设ppt模板下载做国际贸易的有哪有个网站
  • 专门做美食的视频网站酒店网站免费建设
  • 广东深圳网站建设服务福建泉州做网站公司哪家好
  • 网站开发公司广告word工信局网站备案查询
  • 重庆建站公司哪个好浙江省网站建设公司排名
  • 专业单位网站开发网站怎么做才有收录
  • 手机可以制作网站吗竞价排名
  • 在淘宝做网站可以改域名吗长沙网络营销首选智投未来
  • 金华义乌网站建设WordPress批量修改用户
  • 企业资质证书查询官方网站代理记账公司注册条件
  • 做任务领取礼品的网站苏州城乡建设网站查询
  • dw制作简单网站模板下载地址网站开发工资一般多少钱
  • 襄阳网站定制网站内容建设
  • 在服务器上搭建网站网站运营改进的点
  • 重庆网站设计公司排名网站建设 微信公众号
  • 五金网站方案沈阳关键字优化
  • 北京矿建建设集团有限公司 网站投资公司取名字大全