微信小程序引用模板的函数(微信小程序页面与组件之间信息传递与函数调用)
微信小程序引用模板的函数
微信小程序页面与组件之间信息传递与函数调用这篇文章我会以我自己开发经验从如下几个角度来讲解相关的内容
- 页面如何向组件传数据
- 组件如何向页面传数据
- 页面如何调用组件内的函数
- 组件如何调用页面内的函数
1.页面如何向组件传数据
最常用,最规范的方式,设置数据监听器observer。
假设在页面内引入了组件sc
"usingComponents": { "sc":"" }
想要配置一个监听器用来监听页面中数据list的变化,组件在页面中的写法如下:
<sc list="{{list}}" > </sc>
组件中的监听器写法如下,当页面中的`list`值每次发生变化,都会触发`observer`监听器,打印出变化值。
properties: { list:{ type:Array, observer: function (newVal, oldVal){ console.log(newVal) } } }
同理,除了动态传值以外,这种方式也可以直接传入静态值,即不需要调用obeserver监听器。在组件中可以直接使用this.properties.*来获取properties中的各个值(*代表各个属性值的名称)。
2.组件如何向页面传数据
既然组件可以设置监听器用来监听页面数据变化,用来达到数据传递的效果,页面同样可以使用监听器,来监听组件触发的信息传送。
仍然以上面的组件为例,如何向页面中传送信息?
在页面中配置组件监听器
ComponentListener(e){ let info = e.detail; }
组件选择事件并绑定该监听器
<sc bind:listener="ComponentListener" > </sc>
从组件中往页面传入输入只需要在组件中触发对应事件,e.detail就是传过去的数据
this.triggerEvent('listener',{func,tid});
3.页面如何调用组件内的函数
假设我们引入并使用了一个组件comment-bottom,组件内有函数handleCloseInput,需要在某个逻辑中触发。
想要使用组件内的函数,必须为组件配置一个唯一id,这样就可以在页面中通过dom操作选中组件并调用组件中的函数。
<comment-bottom id="commentBottom"></comment-bottom>
组件中的函数在页面中的调用逻辑如下:
this.commentBottom = this.selectComponent("#commentBottom"); this.commentBottom.handleCloseInput();
4.组件如何调用页面内的函数
上面向页面传数据的方式,实际上就是调用了页面中的函数。我们可以这样理解该逻辑,将该用法理解为一个函数映射。
<component bind:componentfunc="pagefun"></component>
当使用trigger触发componentfunc时,通过bind:这个函数映射关系,就会触发页面中的pagefunc。
其次,调用页面内的函数,还可以通过页面栈的方式,组件并不占用页面的栈空间,因此在组件中使用getCurrentPages就可以获得对应页面的数据和方法。
var allpages = getCurrentPages();//获取全部页面数据 var nowpage = allpages[allpages.length - 1].data;//获取当前页面的数据。 var nowpage = allpages[allpages.length - 1];//获取页面,包括数据和方法
这部分内容出自我的一篇文章,我会把地址放在参考文件中。
结语:
组件和组件之间的数据传递和组件与页面之间并没有太大区别,组件中也可以嵌套组件。
参考文件
微信小程序开发技巧总结 (一)-- 数据传递和存储
到此这篇关于微信小程序页面与组件之间信息传递与函数调用的文章就介绍到这了,更多相关微信小程序页面与组件内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
- 微信小程序转盘动画效果(微信小程序实现摇筛子效果)
- 微信小程序的交通码(微信小程序中实现车牌输入功能)
- pythondjango后台管理(基于腾讯云服务器部署微信小程序后台服务Python+Django)
- 微信小程序左右翻页效果(微信小程序实现九宫格效果)
- 微信小程序日期选择器有星期天(微信小程序 滚动选择器时间日期详解及实例代码)
- 微信小程序图片加特效(微信小程序实现可实时改变转速的css3旋转动画实例代码)
- 微信小程序计算器怎么用(用微信小程序实现计算器功能)
- 微信小程序通知验证签名方法(微信小程序实现电子签名)
- 微信小程序即时聊天功能怎么实现(微信小程序实现聊天室功能)
- 微信小程序计算器怎么用(微信小程序实现计算器功能)
- 微信小程序scrollview 截图(微信小程序scroll-view不能左右滑动问题的解决方法)
- 微信小程序中的代码怎么编辑(微信小程序新手入门之自定义组件的使用)
- 微信小程序实现自动定位(微信小程序实现锚点定位功能的方法实例)
- 微信小程序静态页面详情(微信小程序基础教程之echart的使用)
- 微信小程序贪吃蛇大作战(微信小程序实现贪吃蛇游戏)
- 宝塔小程序制作(宝塔面板微信小程序使用图文教程)
- 文明6金币太少怎么办 文明6无限刷钱教程(文明6金币太少怎么办)
- 开国中将,王牌军63军首任政委,两个连襟一个上将一个少将传为佳话(王牌军63军首任政委)
- 臭名昭著的731部队最高负责人 石井四郎(臭名昭著的731部队最高负责人)
- 王牌部队,你看的剧情我看的时尚(你看的剧情我看的时尚)
- 被鉴定的古董价值300万 当心,你可能遇到诈骗了(被鉴定的古董价值300万)
- 英语难学吗(初中英语难学吗)
热门推荐
- 如何查看mysql执行计划(到底什么是Mysql执行计划?)
- centos7宝塔面板离线安装(linux centos 宝塔面板和安全狗安装过程记录)
- python 提取微信消息(python实现文件助手中查看微信撤回消息)
- react代码质量检查(react如何实现一个密码强度检测器详解)
- javascript作用域实例(JavaScript defineProperty如何实现属性劫持)
- 多个web.config文件的加载顺序
- 如何安装phpmysql环境(phpnow重新安装mysql数据库的方法)
- laravel自定义使用方法(laravel 获取当前url的别名方法)
- 如何查找MySQL中查询慢的SQL语句
- mysql各种备份方式(MySQL 逻辑备份与恢复测试的相关总结)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9