微信小程序页面传值实例分析


Posted in Javascript onApril 19, 2017

微信小程序页面传值实例分析

最近组里开发小程序,遇到了一个前端亘古不变的话题:页面传值

刚开始使用路径传参解决,但是众所周知:

各浏览器HTTP Get请求URL最大长度并不相同,几类常用浏览器最大长度及超过最大长度后提交情况如下:
IE6.0 :url最大长度2083个字符,超过最大长度后无法提交。
IE7.0 :url最大长度2083个字符,超过最大长度后仍然能提交,但是只能传过去2083个字符。
firefox 3.0.3 :url最大长度7764个字符,超过最大长度后无法提交。
Opera 9.52 :url最大长度7648个字符,超过最大长度后无法提交。
Google Chrome 2.0.168 :url最大长度7713个字符,超过最大长度后无法提交。

所以觉得不靠谱。

研究了一下官网,发现有两种方式可以“比较优雅”地干这件事,当然不能和vuex/flux比。

1.使用全局变量

在项目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';
},

效果:

微信小程序页面传值实例分析

2.使用模板

根据官方介绍如下:

首先定义模板,使用name属性

<template name="msgItem">
 <view>
  <text> {{index}}: {{msg}} </text>
  <text> Time: {{time}} </text>
 </view>
</template>

接着,使用模板

使用 is 属性,声明需要的使用的模板,然后将模板所需要的 data 传入,如:

<template is="msgItem" data="{{...item}}"/>

给item赋值以显示模板数据

Page({
data: {
 item: {
  index: 0,
  msg: 'this is a template',
  time: '2016-09-15'
 }
}
})

这样就一下解决了页面传值问题

后记:既然小程序可以使用ES6的所有特性,那么那个var that=this又是什么鬼?为何不能用箭头函数解决作用域问题?回头再试试。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
获取JavaScript用户自定义类的类名称的代码
Mar 08 Javascript
javascript打印html内容功能的方法示例
Nov 28 Javascript
JQuery1.8 判断元素是否绑定事件的方法
Jul 10 Javascript
jQuery晃动层特效实现方法
Mar 09 Javascript
JS简单实现DIV相对于浏览器固定位置不变的方法
Jun 17 Javascript
JS引用传递与值传递的区别与用法分析
Jun 01 Javascript
详解JSON Web Token 入门教程
Jul 30 Javascript
Angular CLI 使用教程指南参考小结
Apr 10 Javascript
通过js给网页加上水印背景实例
Jun 17 Javascript
pageGroup.js实现分页功能
Jul 27 Javascript
基于VUE的v-charts的曲线显示功能
Oct 01 Javascript
JavaScript Event Loop相关原理解析
Jun 10 Javascript
Vuejs入门教程之Vue生命周期,数据,手动挂载,指令,过滤器
Apr 19 #Javascript
bootstrap日期控件问题(双日期、清空等问题解决)
Apr 19 #Javascript
angular-cli修改端口号【angular2】
Apr 19 #Javascript
Angular2自定义分页组件
Apr 19 #Javascript
详解vue表单验证组件 v-verify-plugin
Apr 19 #Javascript
纯JS实现图片验证码功能并兼容IE6-8(推荐)
Apr 19 #Javascript
Vue.js仿Metronic高级表格(二)数据渲染
Apr 19 #Javascript
You might like
php代码书写习惯优化小结
2013/06/20 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
codeigniter发送邮件并打印调试信息的方法
2015/03/21 PHP
PHP实现抓取迅雷VIP账号的方法
2015/07/30 PHP
PHP创建PowerPoint2007文档的方法
2015/12/10 PHP
Yii2 rbac权限控制操作步骤实例教程
2016/04/29 PHP
浅析php如何实现App常用的秒发功能
2016/08/03 PHP
thinkPHP5.0框架简单配置作用域的方法
2017/03/17 PHP
用js统计用户下载网页所需时间的脚本
2008/10/15 Javascript
JavaScript中Boolean对象的属性解析
2015/10/21 Javascript
关于jQuery中fade(),show()起始位置的一点小发现
2017/04/25 jQuery
利用js给datalist或select动态添加option选项的方法
2018/01/25 Javascript
select标签设置默认选中的选项方法
2018/03/02 Javascript
Vue头像处理方案小结
2018/07/26 Javascript
详解小程序云开发数据库
2019/05/20 Javascript
jquery ajax 请求小技巧实例分析
2019/11/11 jQuery
Vue路由守卫及页面登录权限控制的设置方法(两种)
2020/03/31 Javascript
深入解读VUE中的异步渲染的实现
2020/06/19 Javascript
解决Vue-cli无法编译es6的问题
2020/10/30 Javascript
[01:10:24]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第一场 2月28日
2021/03/11 DOTA
Python实现端口复用实例代码
2014/07/03 Python
在ironpython中利用装饰器执行SQL操作的例子
2015/05/02 Python
python中异常捕获方法详解
2017/03/03 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
2019/04/29 Python
Python如何存储数据到json文件
2020/03/09 Python
利用Python实现自动扫雷小脚本
2020/12/17 Python
金属材料工程个人求职的自我评价
2013/12/04 职场文书
大学生学期自我鉴定
2014/03/19 职场文书
环境卫生工作汇报材料
2014/10/28 职场文书
先进基层党组织材料
2014/12/25 职场文书
初中作文评语
2014/12/25 职场文书
英文导游词
2015/02/13 职场文书
朋友聚会开场白
2015/06/01 职场文书
2015中学学校工作总结
2015/07/20 职场文书
初中班主任教育随笔
2015/08/15 职场文书
MySQL中order by的执行过程
2022/06/05 MySQL