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


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动态调整iframe高度的代码
Apr 10 Javascript
来自qq的javascript面试题
Jul 24 Javascript
jQuery 一个图片切换的插件
Oct 09 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
Aug 30 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
Jan 21 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
Aug 25 Javascript
javascript性能优化之DOM交互操作实例分析
Dec 12 Javascript
jquery二级目录选中当前页的css样式
Dec 08 Javascript
javascript中replace使用方法总结
Mar 01 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
Apr 20 jQuery
vue项目移动端实现ip输入框问题
Mar 19 Javascript
JavaScript仿京东秒杀倒计时
Mar 17 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基础学习笔记
2007/03/18 PHP
php自动获取字符串编码函数mb_detect_encoding
2011/05/31 PHP
DOM XPATH获取img src值的query
2013/09/23 PHP
php微信公众号开发之答题连闯三关
2018/10/20 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
在jquery中处理带有命名空间的XML数据
2011/06/13 Javascript
jquery ajax return没有返回值的解决方法
2011/10/20 Javascript
jQuery中 noConflict() 方法使用
2013/04/25 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
jquery插件开发之实现jquery手风琴功能分享
2014/03/10 Javascript
jQuery.lazyload+masonry改良图片瀑布流代码
2014/06/20 Javascript
被遗忘的javascript的slice() 方法
2015/04/20 Javascript
jquery根据td给相同tr下其他td赋值的实现方法
2016/10/05 Javascript
jQuery无缝轮播图代码
2016/12/22 Javascript
js使用i18n实现页面国际化的方法
2017/05/09 Javascript
Angularjs中的$apply及优化使用详解
2018/07/02 Javascript
深入理解NodeJS 多进程和集群
2018/10/17 NodeJs
JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例
2019/01/29 Javascript
细说webpack6 Babel的使用详解
2019/09/26 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
vue 数据双向绑定的实现方法
2021/03/04 Vue.js
Python过滤函数filter()使用自定义函数过滤序列实例
2014/08/26 Python
Python 编码处理-str与Unicode的区别
2016/09/06 Python
python图像和办公文档处理总结
2019/05/28 Python
分享一个pycharm专业版安装的永久使用方法
2019/09/24 Python
多视角3D逼真HTML5水波动画
2016/03/03 HTML / CSS
逻辑链路控制协议
2016/10/01 面试题
新媒传信软件测试面试题
2013/02/24 面试题
自行车租赁公司创业计划书
2014/01/28 职场文书
《日月潭》教学反思
2014/02/28 职场文书
2014离婚协议书范文两篇
2014/09/15 职场文书
网站出售协议书范文
2014/10/10 职场文书
Redis 哨兵机制及配置实现
2022/03/25 Redis
python神经网络学习 使用Keras进行简单分类
2022/05/04 Python
vue实现input输入模糊查询的三种方式
2022/08/14 Vue.js