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


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 相关文章推荐
很可爱的输入框
Aug 03 Javascript
javascript document.referrer 用法
Apr 30 Javascript
jQuery 学习6 操纵元素显示效果的函数
Feb 07 Javascript
避免 showModalDialog 弹出新窗体的原因分析
May 31 Javascript
JQuery控制radio选中和不选中方法总结
Apr 15 Javascript
深入探究使JavaScript动画流畅的一些方法
Jun 30 Javascript
AngularJs Modules详解及示例代码
Sep 01 Javascript
详解vue 组件之间使用eventbus传值
Oct 25 Javascript
vue实现模态框的通用写法推荐
Feb 26 Javascript
浅析微信扫码登录原理(小结)
Oct 29 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
Feb 04 Javascript
JS实现网页烟花动画效果
Mar 10 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
PHP4中实现动态代理
2006/10/09 PHP
深入解析PHP内存管理之谁动了我的内存
2013/06/20 PHP
PHP IE中下载附件问题解决方法
2014/01/07 PHP
php使用curl模拟多线程实现批处理功能示例
2019/07/25 PHP
jQuery获取注册信息并提示实现代码
2013/04/21 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
改变状态栏文字的js代码
2014/06/13 Javascript
jquery阻止后续事件只执行第一个事件
2014/07/24 Javascript
JavaScript学习笔记之JS对象
2015/01/22 Javascript
jQuery实现的进度条效果
2015/07/15 Javascript
javascript中tostring()和valueof()的用法及两者的区别
2015/11/16 Javascript
jquery easyUI中ajax异步校验用户名
2016/08/19 Javascript
javascript 判断是否是微信浏览器的方法
2016/10/09 Javascript
JavaScript实现清空(重置)文件类型INPUT元素值的方法
2016/11/17 Javascript
jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
2017/07/08 jQuery
[01:02:38]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第二场 1月10日
2021/03/11 DOTA
详解Django框架中用context来解析模板的方法
2015/07/20 Python
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
python 实现视频流下载保存MP4的方法
2019/01/09 Python
Python3 max()函数基础用法
2019/02/19 Python
pyside+pyqt实现鼠标右键菜单功能
2020/12/08 Python
Django models文件模型变更错误解决
2020/05/11 Python
Keras中的两种模型:Sequential和Model用法
2020/06/27 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
2020/12/07 Python
基于HTML5 audio元素播放声音jQuery小插件
2011/05/11 HTML / CSS
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
劳资人员岗位职责
2013/12/19 职场文书
军人违纪检讨书
2014/02/04 职场文书
2014年路政工作总结
2014/12/10 职场文书
承诺函格式模板
2015/01/21 职场文书
2015关于重阳节的演讲稿
2015/03/20 职场文书
大学生敬老院活动总结
2015/05/07 职场文书
Pytorch数据读取之Dataset和DataLoader知识总结
2021/05/23 Python
Go语言并发编程 sync.Once
2021/10/16 Golang
WINDOWS下安装mysql 8.x 的方法图文教程
2022/04/19 MySQL