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


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 each()小议
Mar 18 Javascript
jQuery 核心函数以及jQuery对象
Mar 23 Javascript
jquery的$getjson调用并获取远程的JSON字符串问题
Dec 10 Javascript
关闭浏览器时提示onbeforeunload事件
Dec 25 Javascript
AngularJS入门教程(零):引导程序
Dec 06 Javascript
JS给Textarea文本框添加行号的方法
Aug 20 Javascript
js实现网页多级级联菜单代码
Aug 20 Javascript
JavaScript 不支持 indexof 该如何解决
Mar 30 Javascript
基于javascript bootstrap实现生日日期联动选择
Apr 07 Javascript
微信小程序上传文件到阿里OSS教程
May 20 Javascript
在vue项目中使用codemirror插件实现代码编辑器功能
Aug 27 Javascript
如何用vue实现网页截图你知道吗
Nov 17 Vue.js
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 执行系统外部命令 system() exec() passthru()
2009/08/11 PHP
.htaccess文件保护实例讲解
2011/02/06 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
2014/04/24 PHP
示例详解Laravel的注册重构
2016/08/14 PHP
php workerman定时任务的实现代码
2018/12/23 PHP
详解Laravel服务容器的绑定与解析
2019/11/05 PHP
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
javascript Xml增删改查(IE下)操作实现代码
2009/01/30 Javascript
js 获取Listbox选择的值的代码
2010/04/15 Javascript
基于JQuery的访问WebService的代码(可访问Java[Xfire])
2010/11/19 Javascript
用jQuery实现一些导航条切换,显示隐藏的实例代码
2013/06/08 Javascript
Jquery简单实现GridView行高亮的方法
2015/06/15 Javascript
jQuery实现可展开合拢的手风琴面板菜单
2015/09/15 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
2015/12/25 Javascript
TinyMCE汉化及本地上传图片功能实例详解
2016/05/31 Javascript
基于JS实现数字+字母+中文的混合排序方法
2016/06/06 Javascript
JS生成和下载二维码的代码
2016/12/07 Javascript
AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例
2018/04/21 Javascript
详解webpack的proxyTable无效的解决方案
2018/06/15 Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
2019/11/09 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
pyqt5 实现工具栏文字图片同时显示
2019/06/13 Python
Python笔记之facade模式
2019/11/20 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
升职自荐信范文
2013/10/05 职场文书
《我要的是葫芦》教学反思
2014/02/23 职场文书
机械系毕业生求职信
2014/05/28 职场文书
低碳环保标语
2014/06/12 职场文书
关于成绩下滑的自我检讨书
2014/09/20 职场文书
离婚财产分配协议书
2014/10/21 职场文书
2015年工会工作总结范文
2015/07/23 职场文书
2015年社区国庆节活动总结
2015/07/30 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
Mysql基础知识点汇总
2021/05/26 MySQL
SQL实现LeetCode(180.连续的数字)
2021/08/04 MySQL
Go微服务项目配置文件的定义和读取示例详解
2022/06/21 Golang