有你在真好 的个人博客
微信小程序:如何实现页面之间的传递数据和变量?
阅读:2290 添加日期:2021/3/27 23:26:04 原文链接:https://www.toutiao.com/item/6420181215290065409/

本文来自 企业微信 移步到微 官网原文链接
:http://www.easywork365.com/999a967.html

微信小程序:如何实现页面之间的传递数据和变量?

有开发者反映,在开发微信小程序时候,遇到了一个困扰很久的问题:页面之间,如何传递数据和变量?刚开始,大家比较倾向于选择用路径传输参数解决,但是,各浏览器 HTTP Get 请求 URL 最大长度并不相同,大部分浏览器只能接受 7000 个字符的数据。所以,这个方式并不通。

经过研究发现,有两种方式可以比较“委婉”地解决这个问题。

使用全局变量

在项目 app.js 中定义 globalData(全局变量)。

App({

globalData:{

userInfo:'angeladaddy'

}

});

在需要的地方,我们可以随意调用这个全局变量。

getGlobalVar:function(){

var that=this;

that.setData({

globalvar_str:JSON.stringify(getApp().globalData)

})

}

当然,赋值也是没问题的。

onLoad:function(options){

getApp().globalData.userInfo+=' is an awesome man';

},

来试试效果:

微信小程序:如何实现页面之间的传递数据和变量?

使用模板

在官方文档中,模板的使用需要先定义一个模板,要用到 name 属性。

{{index}}: {{msg}}

Time: {{time}}

接着,使用模板和 is 属性,声明需要的使用的模板,然后将模板所需要的 data 传入。比如这样:

给 item 赋值,以显示模板数据。

Page({

data: {

item: {

index: 0,

msg: 'this is a template',

time: '2016-09-15'

}

}

})

这样就duang地一下,解决了页面传值问题。

SO,既然小程序可以使用ES6的所有特性,那么var that=this是什么呢?为什么不可以用箭头函数解决作用域问题?其实大家可以自行have a try。

ICP备案号:苏ICP备14035786号-1 苏公网安备 32050502001014号