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

苏州网站建立公司深圳 网站设计公司

苏州网站建立公司,深圳 网站设计公司,网站建设总体规划包括,做婚纱网站的图片大全1.封装消息提示模块 为了减少代码冗余。 // 在使用toast方法时,可以传入参数,也可以不传入参数 // 如果要传入参数,要传入对象作为参数 // const toast (options {}) > {}// 如果用户传入了对象作为参数 // 在形参位置通过解构的方法获取…
1.封装消息提示模块

为了减少代码冗余。

// 在使用toast方法时,可以传入参数,也可以不传入参数
// 如果要传入参数,要传入对象作为参数
// const toast = (options = {}) => {}// 如果用户传入了对象作为参数
// 在形参位置通过解构的方法获取用户传入的参数,同时设置默认值
const toast = ({ title = '数据加载中...', icon = 'none', duration = 2000, mark = true } = {}) => {wx.showToast({title,icon,duration,mask})
}
// 如果有很多.js文件,都需要调用toast方法
// 可以将toast方法挂载到wx全局对象身上
// 如果这种方法生效,要让当前文件执行一次
wx.toast = toast// 如果.js文件,需要使用toast方法
// 需要先导入 toast,调用才行
export { toast }第一种方法在.js中调用
toast()
第二种方法在toast中调用
wx.toast()
2.模块对话框封装
// 在使用modal方法时,可以传入参数,也可以不传入参数
// 如果要传入参数,要传入对象作为参数,对象中的属性要和wx.showModal 的参数保持一致
const modal = (options = {}) => {// 在方法内需要通过Promise返回用户的操作// 如果用户点击了确定,需要通过resolve 返回 true// 如果用户点击了取消,需要通过resolve 返回 falsereturn new Promise((resolve) => {// 默认的参数const defaultOpt = {title: '提示',content: '您确定执行该操作吗?',confirmColor: '#f3514f'}// 通过Object.assign 方法将参数进行合并// 将传入的参数覆盖默认的参数// 为了不影响默认的参数,需要将合并后的参数赋值给一个空对象const opts = Object.assign({}, defaultOpt, options)wx.showModal({// 将合并后的参数通过展开运算符赋值给wx.showModal 对象...opts,// 回调函数,不管用户点击取消或确定都会执行complete({ confirm, cancel }) {confirm && resolve(true)cancel && resolve(false)}})})
}// 如果有很多.js文件,都需要调用modal 方法
// 可以将modal 方法挂载到wx全局对象身上
// 如果这种方法生效,要让当前文件执行一次
wx.modal = modal// 如果.js文件,需要使用modal 方法
// 需要先导入 modal ,调用才行
export { toast, modal }

在这里插入图片描述

3. 本地存储API

将数据存储到本地,方便多个页面的读取使用。如:用户的登录状态,用户的个人信息存储到本地。
有同步、异步两类api来实现本地存储操作。

1.存储
const setStorage = (key, value) => {try {wx.setStorageSync('key', value)} catch (error) {console.log(`存储指定 ${key} 数据发生了异常`, error)}
}
2.读取
const getStorage = (key) => {try {const value = wx.setStorageSync(key)if (value) {return value}} catch (error) {console.log(`读取指定 ${key} 数据发生了异常`, error)}
}
3.移除
const removeStorage = (key) => {try {wx.removeStorageSync(key)} catch (error) {console.log(`移除指定 ${key} 数据发生了异常`, error)}
}
4.清空
const clearStorage = (key) => {try {wx.clearStorageSync()} catch (error) {console.log(`清除、清空数据发生了异常`, error)}
}
5.异步存储
export const asyncSetStorage = (key, data) => {return new Promise((resolve) => {wx.setStorage({key,data,complete(res) {resolve(res)}})})
}
6.异步获取
export const asyncGetStorage = (key) => {return new Promise((resolve) => {wx.getStorage({key,complete(res) {resolve(res)}})})
}
7.异步移除
export const asyncRmoveStorage = (key) => {return new Promise((resolve) => {wx.removeStorage({key,complete(res) {resolve(res)}})})
}
8. 异步清空
export const asyncClearStorage = () => {return new Promise((resolve) => {wx.clearStorage({complete(res) {resolve(res)}})})
}asyncClearStorage().then((res) => {console.log(res)
}) 
4.网络请求模块的封装-request

创建wxRequest类,通过类的方式进行封装,会让代码更具有复用性,也可以方便添加新的属性和方法。
需要使用promise封装wx.request处理异步请求。

class wxRequest {constructor() {}request(options) {return new Promise((resolve, reject) => {wx.request({...options,success: (res) => {resolve(res)},fail: (err) => {reject(err)}})})}
}// 实例化
const inxtance = new WxRequest()export default instanceimport instance from '../../utils/request'
Page({handler() {// 第一种调用方法instance.request({url: '',methods: 'GET'}).then((res) => {console.log(res)})// 第二种const res = await instance.request({url: '',methods: 'GET'})console.log(res)}})
5.请求封装-设置请求参数
  1. 默认参数:在WxRequest类中添加defaults实例属性来设置默认值
  2. 实例化时参数:在对WxRequest类进行实例化时传入相关的参数,需要在constructor构造函数形参进行接收
  3. 调用实例方法时传入请求参数
class wxRequest {defaults = {baseURL: '', // 请求基准地址url: '', // 接口的请求路径data: null, // 请求参数methods: 'GET', // 默认的请求方法// 请求头header: {'Content-type': 'application/json' // 设置数据的交互格式},timeout: 60000 // 默认的超时时长,默认为一分钟}// 实例化时传入的参数会被constructor形参进行接收constructor(params = {}) {this.default = Object.assign({}, this.defaults, params)}request(options) {options.url = this.defaults.baseURL + options.urloptions = { ...this.defaults, ...options }return new Promise((resolve, reject) => {wx.request({...options,success: (res) => {resolve(res)},fail: (err) => {reject(err)}})})}
}// 实例化
const inxtance = new WxRequest({baseURL: '',timeout: 15000
})export default instance
6.封装请求快捷方法

// get方法get(url, data = {}, config = {}) {return this.request(Object.assign({ url, data, methods: 'GET' }, config))}// delete方法delete(url, data = {}, config = {}) {return this.request(Object.assign({ url, data, methods: 'DELETE' }, config))}
//post方法post(url, data = {}, config = {}) {return this.request(Object.assign({ url, data, methods: 'POST' }, config))}
// put方法put(url, data = {}, config = {}) {return this.request(Object.assign({ url, data, methods: 'PUT' }, config))}// 接收带参数数据
const res = await instance.get('/index/findBanner', { test: 111 }, { timeout: 20000 })
7.wx.request注意事项
  1. 只要成功接收到服务器返回的结果,无论statusCode、状态码是多少都会执行success
  2. 一般在网络出现异常时(网络超时),就会执行fail
8.定义请求-响应拦截器

为了方便统一请求参数以及服务器响应结果,为WxRequest添加拦截器功能。

  1. 请求拦截器:是请求之前调用的函数,用来对请求函数进行新增和删改
  2. 响应拦截器:响应之后调用的数据,用来对响应数据做点什么

注意:不管响应成功还是失败,都会执行响应拦截器

  interceptors = {// 请求拦截器request: (config) => config,//响应拦截器response: (response) => response}//配置请求拦截器
instance.interceptors.request = (config) => {return config
}
//配置响应拦截器
instance.interceptors.response = (response) => {return response
}

文章转载自:

http://XJgbnGEJ.wjhqd.cn
http://rSuVq9Up.wjhqd.cn
http://jTovnxl1.wjhqd.cn
http://eKdL7RpX.wjhqd.cn
http://jh7v30t4.wjhqd.cn
http://LjcoBkeR.wjhqd.cn
http://Nd0xu9ho.wjhqd.cn
http://g5fgop88.wjhqd.cn
http://G46DDgJL.wjhqd.cn
http://YBQCZPfi.wjhqd.cn
http://mt8Sjy09.wjhqd.cn
http://lAN1q4V1.wjhqd.cn
http://Et0Wbwhk.wjhqd.cn
http://9Id1r2xs.wjhqd.cn
http://9YvsofLy.wjhqd.cn
http://RjMnlbZL.wjhqd.cn
http://CkHV4XUd.wjhqd.cn
http://8J3qbkEh.wjhqd.cn
http://TJXCIvy3.wjhqd.cn
http://D1WtcnFb.wjhqd.cn
http://tTuC9C9M.wjhqd.cn
http://jOcpdLnp.wjhqd.cn
http://xkNtk6iB.wjhqd.cn
http://DtvWURmh.wjhqd.cn
http://r94T5wCn.wjhqd.cn
http://YKfor5Hg.wjhqd.cn
http://VeuNdNbR.wjhqd.cn
http://nTpU5IMv.wjhqd.cn
http://4X8SaPLK.wjhqd.cn
http://4j2nyMfM.wjhqd.cn
http://www.dtcms.com/wzjs/673393.html

相关文章:

  • 武进区城乡建设局网站天堂网在线观看
  • 2003怎么建设网站空间wordpress文章中图片并排
  • 西安做网站微信公司哪家好企业网站模块种类
  • 建筑智库免费网站天津美容网站建设
  • 最近一周热点新闻广东网站营销seo方案
  • 新版网站上线前端网站开发项目经验
  • 做临时工有哪些网站wordpress 4 漏洞
  • 06627网页制作和网站建设试卷广告软文案例
  • 摄影网站上的照片做后期嘛成都网站原创
  • 物流公司官方网站物流专线wordpress添加发布视频教程
  • 只用网站开发VS就安装那些就够了公众号怎么弄好看的模板
  • 景安一个空间怎么做多个网站用什么程序做视频网站
  • 自己建网站流程网站建设与维护参考文献
  • 建设银行湖南省分行官方网站网站设置关于我们怎么做
  • 网络建站如何建成阿里巴巴外贸圈app
  • 微信小程序开发大赛谷歌seo优化推广
  • 网站备份网络营销推广三板斧
  • html婚纱网站源码网络营销的基本特征有哪些
  • 做婚庆网站有哪些wordpress 下雪插件
  • 做效果图展板网站阿里巴巴国际站工作怎么样
  • 示范专业网站建设中建豪城建设有限公司网站
  • 2018如何做网站外链广西网站建设推广服务
  • 给公司建立网站不可以做到的是武昌区建设局网站
  • 新建网站seo优化怎么做茌平网站制作
  • 网站 昆明wordpress删除自豪的
  • 石油大学网页设计与网站建设长沙网站排名优化
  • 建设部网站官网施工合同文本wordpress调节字体大小
  • html5网站开发参考文献烟台好的网站设计公司
  • 昭阳区住房和城乡建设管理局网站南京市溧水区建设局网站
  • 英文在线购物网站建设如何制作自己的视频网站