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


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 相关文章推荐
jquery struts 验证唯一标识(公用方法)
Mar 27 Javascript
你必须知道的Javascript知识点之&quot;单线程事件驱动&quot;的使用
Apr 23 Javascript
JS下拉缓冲菜单示例代码
Aug 30 Javascript
javascript实现仿IE顶部的可关闭警告条
May 05 Javascript
javascript用函数实现对象的方法
May 14 Javascript
ECMAScript6中Map/WeakMap详解
Jun 12 Javascript
jQuery使用$.ajax进行即时验证实例详解
Dec 11 Javascript
JavaScript时间操作之年月日星期级联操作
Jan 15 Javascript
教你用javascript实现随机标签云效果_附代码
Mar 16 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
Jan 18 Javascript
vue 集成jTopo 处理方法
Aug 07 Javascript
Element Steps步骤条的使用方法
Jul 26 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 for 循环语句使用方法详细说明
2010/05/09 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
2020/02/10 PHP
封装html的select标签的js操作实例
2013/07/02 Javascript
js确认删除对话框效果的示例代码
2014/02/20 Javascript
使用jquery+CSS3实现仿windows10开始菜单的下拉导航菜单特效
2015/09/24 Javascript
jquery对dom节点的操作【推荐】
2016/04/15 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
AngularJS实现使用路由切换视图的方法
2017/01/24 Javascript
JS验证不重复验证码
2017/02/10 Javascript
JS实现颜色的10进制转化成rgba格式的方法
2017/09/04 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
ES6关于Promise的用法详解
2018/05/07 Javascript
vue动态路由配置及路由传参的方式
2018/05/23 Javascript
vue中的自定义分页插件组件的示例
2018/08/18 Javascript
jQuery中常用动画效果函数知识点整理
2018/08/19 jQuery
Python中让MySQL查询结果返回字典类型的方法
2014/08/22 Python
python提示No module named images的解决方法
2014/09/29 Python
以一段代码为实例快速入门Python2.7
2015/03/31 Python
在Django的通用视图中处理Context的方法
2015/07/21 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
python 返回列表中某个值的索引方法
2018/11/07 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
Python3.5实现的三级菜单功能示例
2019/03/25 Python
python 线程的五个状态
2020/09/22 Python
安德玛菲律宾官网:Under Armour菲律宾
2020/07/28 全球购物
大学生实习证明范本
2014/01/15 职场文书
大学生学习2014全国两会心得体会
2014/03/13 职场文书
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
《花瓣飘香》教学反思
2014/04/15 职场文书
团队精神的演讲稿
2014/05/14 职场文书
公安个人四风问题对照检查及整改措施
2014/10/28 职场文书
个人借款协议书范本
2014/11/17 职场文书
解决hive中导入text文件遇到的坑
2021/04/07 Python
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript
python用tkinter开发的扫雷游戏
2021/06/01 Python
node.js使用express-fileupload中间件实现文件上传
2021/07/16 Javascript