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


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 相关文章推荐
JS中动态添加事件(绑定事件)的代码
Jan 09 Javascript
JS实现字体选色板实例代码
Nov 20 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
May 08 Javascript
运行Node.js的IIS扩展iisnode安装配置笔记
Mar 02 Javascript
JavaScript获取表单enctype属性的方法
Apr 02 Javascript
详解JavaScript中的表单验证
Jun 16 Javascript
js模拟支付宝密码输入框
Apr 11 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
Dec 05 Javascript
vue实现局部刷新的实现示例
Apr 16 Javascript
使用jQuery实现购物车
Oct 29 jQuery
vue+elementUI中表格高亮或字体颜色改变操作
Nov 02 Javascript
vue 表单输入框不支持focus及blur事件的解决方案
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中3种方法删除字符串中间的空格
2014/03/10 PHP
PHP实现AES256加密算法实例
2014/09/22 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
javascript页面加载完执行事件代码
2014/02/11 Javascript
jquery动态添加删除一行数据示例
2014/06/12 Javascript
常用的JavaScript WEB操作方法分享
2015/02/28 Javascript
jquery实现华丽的可折角广告代码
2015/09/02 Javascript
微信小程序 生命周期详解
2016/10/12 Javascript
JS中检测数据类型的几种方式及优缺点小结
2016/12/12 Javascript
vue.js与后台数据交互的实例讲解
2018/08/08 Javascript
JavaScript数组方法的错误使用例子
2018/09/13 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
vue通过video.js解决m3u8视频播放格式的方法
2019/07/30 Javascript
vue项目中使用vue-layer弹框插件的方法
2020/03/11 Javascript
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
caffe binaryproto 与 npy相互转换的实例讲解
2018/07/09 Python
tensorflow实现加载mnist数据集
2018/09/08 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
python实时获取外部程序输出结果的方法
2019/01/12 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
2020/01/25 Python
Pycharm和Idea支持的vim插件的方法
2020/02/21 Python
Python 没有main函数的原因
2020/07/10 Python
使用CSS3实现SVG路径描边动画效果入门教程
2019/10/21 HTML / CSS
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
美国排名第一的泳池用品直接来源:In The Swim
2019/09/23 全球购物
枚举与#define宏的区别
2014/04/30 面试题
印刷工程专业应届生求职信
2013/09/29 职场文书
秋季运动会演讲稿
2014/09/16 职场文书
整改落实自查报告
2014/11/05 职场文书
专业技术职务聘任证明
2015/03/02 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
物业保安辞职信
2015/05/12 职场文书
分析并发编程之LongAdder原理
2021/06/29 Java/Android
python神经网络 使用Keras构建RNN训练
2022/05/04 Python