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


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 闭包疑问
Dec 30 Javascript
js综合应用实例简单的表格统计
Sep 03 Javascript
JQuery实现绚丽的横向下拉菜单
Dec 19 Javascript
利用javascript实现全部删或清空所选的操作
May 27 Javascript
js实现的类似于asp数据字典的数据类型代码实例
Sep 03 Javascript
js支持键盘控制的左右切换立体式图片轮播效果代码分享
Aug 26 Javascript
js简单倒计时实现代码
Apr 30 Javascript
Bootstrap导航简单实现代码
Mar 06 Javascript
javascript  删除select中的所有option的实例
Sep 17 Javascript
解决vue移动端适配问题
Dec 12 Javascript
vue单页应用的内存泄露定位和修复问题小结
Aug 02 Javascript
vue-video-player视频播放器使用配置详解
Oct 23 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实现像JSP,ASP里Application那样的全局变量
2007/01/12 PHP
php验证码生成代码
2015/11/11 PHP
PHP基于回溯算法解决n皇后问题的方法示例
2017/11/07 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
javascript取消文本选定的实现代码
2010/11/14 Javascript
从面试题学习Javascript 面向对象(创建对象)
2012/03/30 Javascript
js实现运动logo图片效果及运动元素对象sportBox使用方法
2012/12/25 Javascript
js setTimeout opener的用法示例详解
2013/10/23 Javascript
在JS中解析HTML字符串示例代码
2014/04/16 Javascript
javascript中的return和闭包函数浅析
2014/06/06 Javascript
javascript创建函数的20种方式汇总
2015/06/23 Javascript
JS自动倒计时30秒后按钮才可用(两种场景)
2015/08/31 Javascript
JS模拟按钮点击功能的方法
2015/12/22 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
JavaScript数组操作详解
2017/02/04 Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
2017/03/04 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
2017/03/21 jQuery
react native与webview通信的示例代码
2017/09/25 Javascript
javascript 构建模块化开发过程解析
2019/09/11 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
2020/04/26 Javascript
js根据后缀判断文件文件类型的代码
2020/05/09 Javascript
[02:44]DOTA2英雄基础教程 钢背兽
2013/12/19 DOTA
[02:40]DOTA2英雄基础教程 先知
2013/11/29 DOTA
python使用chardet判断字符串编码的方法
2015/03/13 Python
Python如何为图片添加水印
2016/11/25 Python
scrapy爬虫实例分享
2017/12/28 Python
Python3.0中普通方法、类方法和静态方法的比较
2019/05/03 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
selenium+headless chrome爬虫的实现示例
2021/01/08 Python
南非领先的在线旅行社:Travelstart南非
2016/09/04 全球购物
用JAVA实现一种排序,JAVA类实现序列化的方法(二种)
2014/04/23 面试题
核心价值观演讲稿
2014/05/13 职场文书
环保倡议书格式范文
2014/05/14 职场文书
好人好事演讲稿
2014/09/01 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
雷锋之歌观后感
2015/06/10 职场文书