请求后台前展示loadding,
请求后台后关闭loadding


- App({
-
- //全局监听loadding状态
- watch:function(method){
- var obj = this.globalData;
- //注意,这里的comLoadding对应的是globalData定义的变量
- Object.defineProperty(obj,"comLoadding", {
- configurable: true,
- enumerable: true,
- set: function (value) {
- //_comLoadding 是自己起的名字,只要和get里面的保持统一就行,方法内部使用变量
- this._comLoadding = value;
- method(value);
- },
- get:function(){
- return this._comLoadding
- }
- })
- },
- globalData: {
- comLoadding:false
- }
-
-
- })
- onLoad: function (options) {
- /**
- * @tip:loadding的控制状态与全局的控制字段连接
- * 1、组件初始化
- * 2、绑定组件内部watch
- * @time 2022.9.7
- * @author zwh
- * ---------------------START--------------------------
- * */
- const self = this;
- // 注意:watchBack后面要重新绑定this,否则下边的this找不到
- getApp().watch(self.watchBack.bind(self));
- // ---------------------END--------------------------
- },
- // 监听全局的loadding状态
- watchBack(comLoadding){
-
- // 监听数据会拿到与当前值相同的数据
- if(comLoadding === this.data.loadingFlag) return
- // 关闭loadding增加延时效果,目的是效果展示
- if(!comLoadding){
- setTimeout(()=>{
- this.setData({
- loadingFlag:comLoadding,
- })
- },500)
- }else{
- this.setData({
- loadingFlag:comLoadding,
- })
- }
-
- },
- //修改全局的内容
- getApp().globalData.comLoadding = true
- getApp().globalData.comLoadding = false
- Component({
- pageLifetimes: {
- show() {
-
- /**
- * @tip:loadding的控制状态与全局的控制字段连接
- * 1、组件初始化
- * 2、绑定组件内部watch
- * @time 2022.9.7
- * @author zwh
- * ---------------------START--------------------------
- * */
- const self = this;
- // 注意:watchBack后面要重新绑定this,否则下边的this找不到
- getApp().watch(self.watchBack.bind(self));
- // ---------------------END--------------------------
-
- }
- },
- methods: {
- // 监听全局的loadding状态
- watchBack(comLoadding){
- // 监听数据会拿到与当前值相同的数据
- if(comLoadding === this.data.loadingFlag) return
- // 关闭loadding增加延时效果,目的是效果展示
- if(!comLoadding){
- setTimeout(()=>{
- this.setData({
- loadingFlag:comLoadding,
- })
- },500)
- }else{
- this.setData({
- loadingFlag:comLoadding,
- })
- }
- },
- }
-
-
- })
- //修改全局的内容
- getApp().globalData.comLoadding = true
- getApp().globalData.comLoadding = false
- //打开loadding
- const noNeedLoaddingRouters = ['consumer/live/room-product-list','consumer/loadingImg/find-loading-img']
- let needLodding = noNeedLoaddingRouters.filter(v => v === url.split('api/live/')[1]).length > 0 ? true : false
- if(!needLodding){
- getApp().globalData.comLoadding = true
- }
-
- //请求接口
- wx.request({
- url: url,
- data,
- method,
- header: {},
- success:async (res) => {
- //关闭loadding
- getApp().globalData.comLoadding = false
-
- },
- fail: (error) => {
- //关闭loadding
- getApp().globalData.comLoadding = false
-
- }
- }