微信小程序 参数传递详解


Posted in Javascript onOctober 24, 2016

微信小程序的推出,无疑将会在移动互联网行业里再次掀起风浪。

有人会质疑小程序会不会火, 会不会火我不知道, 看微信的用户量即可明白一切。

微信小程序-参数传递

这里我找到两种小程序上的参数传递方式,为了方便,我单独拿出来和大家分享下.

一、通过事件进行参数传递

先来看眼小程序对事件的定义:

#什么是事件?

这里是列表文本事件是视图层到逻辑层的通讯方式。
这里是列表文本事件可以将用户的行为反馈到逻辑层进行处理。
这里是列表文本事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。
这里是列表文本 事件对象可以携带额外信息,如id, dataset, touches。

很明确的指出了是视图层【wxml】到逻辑层【js】的通信方式,时间对象可以携带额外信息,用这个事件来传递参数肯定没错了,接下来我们就来实际看下例子:

视图.wxml

  <view id="tapTest" data-hi="MINA" bindtap="tapName"> Click me! </view>

逻辑.js

Page({
 tapName: function(event) {
      console.log(event.target)
 }
})

log打印

微信小程序 参数传递详解

可以看到 dataset 里面就是我们设置的data-hi="MINA"的值了。现在我们来看下刚刚我们写的, 首先 bindtap,以bind开头的就是要给他绑定个事件,这个事件的名字就是“=”号后面的数值就是绑定的事件名称,需要在 逻辑【js】层定义上。 然后就是传值了,注意到的朋友可以看到 我们这里写了data-hi 和我们平时写js的传值是同一个定义方法。这个data-*就对应事件的属性target里的dataset 值。这里我们需要调用的话就是 event.target.dataset.hi就能取到data-hi所对应的值。

这里需要注意下 data的定义名称: 书写方式: 以data-开头,多个单词由连字符-链接,不能有大写(大写会自动转成小写)如data-element-type,最终在 event.target.dataset 中会将连字符转成驼峰elementType。

官方示例:

<view data-alpha-beta="1" data-alphaBeta="2" bindtap="bindViewTap"> DataSet Test </view>

Page({
 bindViewTap:function(event){
  event.target.dataset.alphaBeta == 1 // - 会转为驼峰写法
  event.target.dataset.alphabeta == 2 // 大写会转为小写
 }
})

二、navigator 跳转url传参

*.wxml

<view class="btn-area">
 <navigator url="navigate?title=navigate" hover-class="navigator-hover">跳转到新页面</navigator>
 <navigator url="redirect?title=redirect" redirect hover-class="other-navigator-hover">在当前页打开</navigator>
</view>

*.js 跳到新页面之后在onload里面直接接收参数,接收方法也就是 options.[参数值]

Page({
 onLoad: function(options) {
  this.setData({
   title: options.title
  })
 }
})

好啦,今天就写到这里,我顺便把文档链接写上,上面写的文档里都有。我只是把它们搬出来了,用我的话说了一遍。 …(⊙_⊙;)…

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
js如何获取兄弟、父类等节点
Jan 06 Javascript
jQuery中delegate和on的用法与区别详细解析
Jan 26 Javascript
让checkbox不选中即将选中的checkbox不选中
Jul 11 Javascript
jquery判断密码强度的验证代码
Apr 22 Javascript
jQuery使用$.each遍历json数组的简单实现方法
Apr 18 Javascript
jQuery UI库中dialog对话框功能使用全解析
Apr 23 Javascript
javascript数字验证的实例代码(推荐)
Aug 20 Javascript
javascript工厂模式和构造函数模式创建对象方法解析
Dec 30 Javascript
angularjs实现过滤并替换关键字小功能
Sep 19 Javascript
使用vue-cli(vue脚手架)快速搭建项目的方法
May 21 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
Aug 09 Javascript
微信小程序实现发微博功能的示例代码
Jun 24 Javascript
10分钟掌握XML、JSON及其解析
Dec 06 #Javascript
JavaScript的new date等日期函数在safari中遇到的坑
Oct 24 #Javascript
JavaScript将base64图片转换成formData并通过AJAX提交的实现方法
Oct 24 #Javascript
JS封装的三级联动菜单(使用时只需要一行js代码)
Oct 24 #Javascript
JavaScript reduce和reduceRight详解
Oct 24 #Javascript
js在ie下打开对话窗口的方法小结
Oct 24 #Javascript
浅谈AngularJs指令之scope属性详解
Oct 24 #Javascript
You might like
php Smarty模板生成html文档的方法
2010/04/12 PHP
利用Ffmpeg获得flv视频缩略图和视频时间的代码
2011/09/15 PHP
50个PHP程序性能优化的方法
2014/06/02 PHP
ThinkPHP查询语句与关联查询用法实例
2014/11/01 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
2016/04/26 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
使用PHP+JQuery+Ajax分页的实现
2013/04/23 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
JS OffsetParent属性深入解析
2014/01/13 Javascript
Nodejs进程管理模块forever详解
2014/06/01 NodeJs
解决js ajax同步请求造成浏览器假死的问题
2018/01/18 Javascript
vue addRoutes实现动态权限路由菜单的示例
2018/05/15 Javascript
swiper 自动图片无限轮播实现代码
2018/05/21 Javascript
vue采用EventBus实现跨组件通信及注意事项小结
2018/06/14 Javascript
Angular CLI 使用教程指南参考小结
2019/04/10 Javascript
JS实现的碰撞检测与周期移动完整示例
2019/09/02 Javascript
Vue 自定义指令功能完整实例
2019/09/17 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
2020/08/07 Javascript
JavaScript实现多文件下载方法解析
2020/08/07 Javascript
Python中字典的基础知识归纳小结
2015/08/19 Python
python去掉行尾的换行符方法
2017/01/04 Python
python 开发的三种运行模式详细介绍
2017/01/18 Python
python http接口自动化脚本详解
2018/01/02 Python
深入flask之异步非堵塞实现代码示例
2018/07/31 Python
python矩阵的转置和逆转实例
2018/12/12 Python
pycharm新建一个python工程步骤
2019/07/16 Python
python 如何设置守护进程
2020/10/29 Python
Python用Jira库来操作Jira
2020/12/28 Python
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
瑞典最大的儿童用品网上商店:pinkorblue.se
2021/03/09 全球购物
视光学毕业生自荐书范文
2014/02/13 职场文书
宣传口号大全
2014/06/16 职场文书
2014年节能工作总结
2014/12/18 职场文书
CSS3中Animation实现简单的手指点击动画的示例
2021/07/15 HTML / CSS
python可视化之颜色映射详解
2021/09/15 Python