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


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 相关文章推荐
基于PHP+Jquery制作的可编辑的表格的代码
Apr 10 Javascript
JQuery datepicker 使用方法
May 20 Javascript
仿猪八戒网左下角的文字滚动效果
Oct 28 Javascript
JavaScript回调(callback)函数概念自我理解及示例
Jul 04 Javascript
关于Jquery操作Cookie取值错误的解决方法
Aug 26 Javascript
JavaScript插件化开发教程(六)
Feb 01 Javascript
javascript 对象数组根据对象object key的值排序
Mar 09 Javascript
Vue2.0权限树组件实现代码
Aug 29 Javascript
浅谈Vue组件及组件的注册方法
Aug 24 Javascript
Vue 列表上下过渡效果的实例代码
Jun 25 Javascript
vue 实现 rem 布局或vw 布局的方法
Nov 13 Javascript
JS实现时间校验的代码
May 25 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 文件缓存的性能测试
2010/04/25 PHP
分享一个PHP数据流应用的简单例子
2012/06/01 PHP
微信公众平台开发关注及取消关注事件的方法
2014/12/23 PHP
使用symfony命令创建项目的方法
2016/03/17 PHP
php图片添加水印例子
2016/07/20 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
2016/11/05 PHP
JavaScript获得选中文本内容的方法
2008/12/02 Javascript
日期 时间js控件
2009/05/07 Javascript
js实现addClass,removeClass,hasClass的函数代码
2011/07/13 Javascript
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
2013/03/24 Javascript
javascript结合html5 canvas实现(可调画笔颜色/粗细/橡皮)的涂鸦板
2013/04/27 Javascript
JavaScript的作用域和块级作用域概念理解
2014/09/21 Javascript
jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击
2016/01/22 Javascript
Angularjs中如何使用filterFilter函数过滤
2016/02/06 Javascript
NodeJS使用formidable实现文件上传
2016/10/27 NodeJs
利用jquery获取select下拉框的值
2016/11/23 Javascript
Vue2.0使用过程常见的一些问题总结学习
2017/04/10 Javascript
Bootstrap 模态框(Modal)带参数传值实例
2017/08/20 Javascript
vue组件之Alert的实现代码
2017/10/17 Javascript
vue单文件组件lint error自动fix与styleLint报错自动fix详解
2019/01/08 Javascript
vue循环数组改变点击文字的颜色
2019/10/14 Javascript
vue-router懒加载的3种方式汇总
2021/02/28 Vue.js
Python下的Mysql模块MySQLdb安装详解
2014/04/09 Python
尝试使用Python多线程抓取代理服务器IP地址的示例
2015/11/09 Python
Python实现字典去除重复的方法示例
2017/07/31 Python
Python实现图片转字符画的示例
2017/08/22 Python
python matplotlib 画dataframe的时间序列图实例
2019/11/20 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
Python实现自动装机功能案例分析
2020/10/22 Python
Booking.com西班牙:全球酒店预订
2018/03/30 全球购物
分厂厂长岗位职责
2013/12/29 职场文书
洗发水广告词
2014/03/13 职场文书
小学班主任培训方案
2014/06/04 职场文书
我的中国梦演讲稿600字
2014/08/19 职场文书
会计工作能力自我评价
2015/03/05 职场文书
博士导师推荐信
2015/03/25 职场文书