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


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 相关文章推荐
一段多浏览器的&quot;复制到剪贴板&quot;javascript代码
Mar 27 Javascript
JavaScript splice()方法详解
Sep 22 Javascript
Node.js异步I/O学习笔记
Nov 04 Javascript
深入分析Javascript跨域问题
Apr 17 Javascript
JavaScript数组去重的五种方法
Nov 05 Javascript
Bootstrap CSS组件之按钮下拉菜单
Dec 17 Javascript
JS动画定时器知识总结
Mar 23 Javascript
vue权限路由实现的方法示例总结
Jul 29 Javascript
jquery中为什么能用$操作
Jun 18 jQuery
vue.js实现备忘录demo
Jun 26 Javascript
vue el-tree 默认展开第一个节点的实现代码
May 15 Javascript
详解JSON.parse和JSON.stringify用法
Feb 18 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下一个非常全面获取图象信息的函数
2008/11/20 PHP
一步一步学习PHP(3) php 函数
2010/02/15 PHP
yii框架源码分析之创建controller代码
2011/06/28 PHP
PHP5常用函数列表(分享)
2013/06/07 PHP
在win7中搭建Linux+PHP 开发环境
2014/10/08 PHP
popdiv
2006/07/14 Javascript
JavaScript下申明对象的几种方法小结
2008/10/02 Javascript
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
jquery+json实现的搜索加分页效果
2010/03/31 Javascript
关于hashchangebroker和statehashable的补充文档
2011/08/08 Javascript
使用js在页面中绘制表格核心代码
2013/09/16 Javascript
javascript 函数声明与函数表达式的区别介绍
2013/10/05 Javascript
js预加载图片方法汇总
2015/06/15 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
Bootstrap与KnockoutJs相结合实现分页效果实例详解
2016/05/03 Javascript
快速解决Canvas.toDataURL 图片跨域的问题
2016/05/10 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
微信小程序 天气预报开发实例代码源码
2017/01/20 Javascript
vue axios同步请求解决方案
2017/09/29 Javascript
浅谈angular表单提交中ng-submit的默认使用方法
2018/09/30 Javascript
nuxt 自定义 auth 中间件实现令牌的持久化操作
2020/11/05 Javascript
[01:18:43]2014 DOTA2华西杯精英邀请赛5 24 iG VS DK
2014/05/25 DOTA
python 异常处理总结
2016/10/18 Python
解决phantomjs截图失败,phantom.exit位置的问题
2018/05/17 Python
pandas.DataFrame选取/排除特定行的方法
2018/07/03 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
Python关于拓扑排序知识点讲解
2021/01/04 Python
北京泡泡网网络有限公司.net面试题
2012/07/17 面试题
新媒传信软件测试面试题
2013/02/24 面试题
会计与审计专业大专生求职信
2013/10/03 职场文书
业务主管岗位职责范本
2013/12/25 职场文书
新年主持词
2014/03/27 职场文书
开学典礼演讲稿
2014/05/23 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
2015年大学生村官工作总结
2015/04/21 职场文书
国庆节新闻稿
2015/07/17 职场文书