收藏
回答

用户不可见数据不建议进行 setData,那怎么定义当前页面的全局变量

问题模块 框架类型 问题类型 终端类型 微信版本 基础库版本
框架 小程序 需求 工具 1.02.1902010 2.00


提问题步骤这么多!?

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

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

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


补充一下:

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

ヽ(ー_ー)ノ




最后一次编辑于  02-15  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

8 个回答

  • 来一间
    来一间
    02-15

    Page({

        data:{

    val:1

        }

        onLoad: function(){

    this.data.val += 1;

            console.log(this.data.val);

        }

    })


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


    02-15
    赞同 8
    回复 2
    • 🌞
      🌞
      02-15

      感谢

      02-15
      回复
    • 文科男
      文科男
      02-19

      这种写法后期维护太坑了吧

      02-19
      回复
  • 卢霄霄
    卢霄霄
    02-15

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

    Page({

        value: 2,

        onLoad: function(){

            this.value = 3

        }

    })

    02-15
    赞同 2
    回复
  • 吴奕群
    吴奕群
    02-15

    额,用let?

    02-15
    赞同 1
    回复
  • 彩云衣内容电商平台
    彩云衣内容电商平台
    02-18

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

    02-18
    赞同 1
    回复
  • ==
    ==
    02-15

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

    02-15
    赞同
    回复
  • 猫5号
    猫5号
    02-18

    直接挂this上

    Component({
        created() {
            this.v = 1
        }
    })


    02-18
    赞同
    回复
  • 清风胤
    清风胤
    02-18

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

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

    举例: 列表分页

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

            上拉加载,pageSize +1  ,

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

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

    02-18
    赞同
    回复
  • 派派大星派
    派派大星派
    02-19
    Page({
      
        data: {},
      
        count = 0,
      
        onLoad() {
      
            this.count += 1;
      
            console.log(this.count);
      
        }
      
    });


    02-19
    赞同
    回复