用户不可见数据不建议进行 setData,那怎么定义当前页面的全局变量
发布于 7 年前 作者 yutao 14690 次浏览 来自 问答

提问题步骤这么多!?

其实我就想知道当前页面的全局变量写在哪里?

  1. 不要提globalData,这个是整个app的全局变量

  2. 不要用setData ,因为我说的全局变量是不需要显示在页面上的

补充一下:

我说的是当前页面的全局变量,就是我在index.js里面定义的,在整个index.js里面都能使用。其他的js都不能使用的那种

ヽ(ー_ー)ノ

8 回复

直接在page外面进行设置, 直接var或者let。

但你要注意,你的这个全局数据若不是固定值 那么记得在页面隐藏和卸载的时候把这个值还原到原始值。

举例: 列表分页

        初始全局 pageSize 为 0 ,显示10条。

        上拉加载,pageSize +1  ,

        若你在页面隐藏或者卸载时不把pageSize 还原为0的话,

        再次访问的时候,这个pageSize 就是你上次访问后的值

直接挂this上

Component({
    created() {
        this.v = 1
    }
})
Page({
  
    data: {},
  
    count = 0,
  
    onLoad() {
  
        this.count += 1;
  
        console.log(this.count);
  
    }
  
});

let value = 1;// 这里的变量不会随着页面销毁而销毁

Page({

    value: 2,

    onLoad: function(){

        this.value = 3

    }

})

额,用let?

Page({

    data:{

val:1

    }

    onLoad: function(){

this.data.val += 1;

        console.log(this.data.val);

    }

})

变量声明周期是跟页面同步的, 不通过setData赋值不会渲染页面数据

page外var const let    PS:页面注销后就重置了

额!这些都不行啊! 要不 var???

回到顶部