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


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 相关文章推荐
在网页中控制wmplayer播放器
Jul 01 Javascript
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
Mar 14 Javascript
js修改table中Td的值(定义td的单击事件)
Jan 10 Javascript
js导航栏单击事件背景变换示例代码
Jan 13 Javascript
关于Javascript加载执行优化的研究报告
Dec 16 Javascript
通过node-mysql搭建Windows+Node.js+MySQL环境的教程
Mar 01 Javascript
基于React.js实现原生js拖拽效果引发的思考
Mar 30 Javascript
全面了解javascript三元运算符
Jun 27 Javascript
微信小程序 flex实现导航实例详解
Apr 26 Javascript
angularjs $http调用接口的方式详解
Aug 13 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
Oct 16 Javascript
vue中使用GraphQL的实例代码
Nov 04 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连接Oracle for NT 远程数据库
2006/10/09 PHP
利用PHP制作简单的内容采集器的代码
2007/11/28 PHP
在php和MySql中计算时间差的方法
2011/04/22 PHP
Smarty模板常见的简单应用分析
2016/11/15 PHP
JavaScript基本概念初级讲解论坛贴的学习记录
2009/02/22 Javascript
JQuery小知识
2010/10/15 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
2013/08/02 Javascript
浅谈javascript属性onresize
2015/04/20 Javascript
javascript实现base64 md5 sha1 密码加密
2015/09/09 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
2016/11/29 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
2020/03/28 Javascript
JS数组交集、并集、差集的示例代码
2017/08/23 Javascript
angularjs1.5 组件内用函数向外传值的实例
2018/09/30 Javascript
JS监听滚动和id自动定位滚动
2018/12/18 Javascript
javascript贪吃蛇游戏设计与实现
2020/09/17 Javascript
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
django使用图片延时加载引起后台404错误
2017/04/18 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
2017/08/31 Python
NumPy中的维度Axis详解
2019/11/26 Python
哪种Python框架适合你?简单介绍几种主流Python框架
2020/08/04 Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
2020/09/23 Python
python实现无边框进度条的实例代码
2020/12/30 Python
python opencv实现图像配准与比较
2021/02/09 Python
Lands’ End官网:经典的美国生活方式品牌
2016/08/14 全球购物
EJB的角色和三个对象
2015/12/31 面试题
《小山羊和小灰兔》教学反思
2014/02/19 职场文书
2014年小学植树节活动方案
2014/03/02 职场文书
经营管理策划方案
2014/05/22 职场文书
七年级上册语文教学计划
2015/01/22 职场文书
亮剑观后感
2015/06/05 职场文书
原来实习报告是这样写的呀!
2019/07/03 职场文书
宪法宣传标语100条
2019/10/15 职场文书
golang中的空接口使用详解
2021/03/30 Python