在小程序页面之间,传递数据和变量

最近组里开发小程序,遇到了一个困扰前端很长时间的话题:页面之间,如何传递数据和变量?

刚开始,我们选择使用路径传参解决。但是众所周知,各浏览器 HTTP Get 请求 URL 最大长度并不相同,大部分浏览器只能接受 7000 个字符的数据。

所以,我们觉得这个方式并不靠谱。

研究了一下官网,发现有两种方式可以「比较优雅」地完成这个任务。

使用全局变量

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

在小程序页面之间,传递数据和变量

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

在小程序页面之间,传递数据和变量

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

在小程序页面之间,传递数据和变量

来试试效果:

在小程序页面之间,传递数据和变量

使用模板

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

在小程序页面之间,传递数据和变量

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

在小程序页面之间,传递数据和变量

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

在小程序页面之间,传递数据和变量

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

另外,既然小程序可以使用 ES6 的所有特性,那么那个 var that=this又是什么鬼?为何不能用箭头函数解决作用域问题?大家可以自行尝试一下。