微信小程序自定义组件

简介: 微信小程序自定义组件

一、自定义组件

1、创建自定义组件    

类似页面,一个自定义组件由json ,wxml,wxss,js 4个文件组成




2、声明组件

在需要引入组件的页面的json文件中,在usingComponents里面写键值对,写组件名和路径



3、使用组件

在需要引入组件的页面的wxml文件中,添加组件标签



效果:




二、Tabs样式优化

wxml:


wxss:


js:


效果:


三、标签激活选中

1.页面.js文件中 存放事件回调函数的时候 存放在data同层级下

2.组件.js文件中 存放事件回调函数的时候 ,必须要存放在methods中!!!

  • 绑定点击事件 需要在methods中绑定



  • 获取被点击的索引




  • 获取原数组

解构对复杂类型进行解构的时候复制了一份 变量的引用

最严谨的做法 重新拷贝一份 数组,再对这个数组的备份进行处理,不要直接修改this.data.数据


let tabs = JSON.parse(JSON.stringify(this.data.tabs));


  • 对数组循环

(1)给每一个循环项 选中属性 改为false

(2) 给 当前的索引的项 添加激活选中效果就可以了


四、父向子组件传递数据

父组件(页面)向子组件传递数据,通过标签属性的方式来传递

(1)在子组件上进行接收

(2)把这个数据当成是data中的数据直接用即可

1.在父组件的wxml文件中,在Tabs标签中添加属性,表示页面向子组件传递了属性aaa,值是a123a


2.在子组件的js文件中,在properties中接收父组件传递的数据,properties里面要填接收的数据的名称,这里的名称是aaa,aaa是个对象,里面写数据的类型和数据的值,数据的值不填就默认是上面的值“a123a",填了数据值,值就是我们写的那个值


3.在子组件的wxml中,使用数据的名称


效果:


父向子传递的过程


传递tabs数据

1.将子组件的.js文件中data的tabs数组剪切,粘贴到父组件的.js文件 中



2.父组件的wxml中传递tabs数据


3.子组件.js文件中接收tabs数据


4.使用数据的名称



效果:


优化:

问题:切换不同标题时,父组件的数据没有发送改变。原因是切换不同标题时会触发handleItemTap事件,然后this.setData的tabs会在子组件的data中拷贝了一份tabs,再次切换标题时,父组件中有tabs,子组件中也有tabs,两个tabs当然是不行的,发生改变的是子组件中的tabs,我们需要让父组件中的tabs发生改变





五、自定义组件——slot

slot 标签 ,其实就是一个占位符 , 插槽

等到父组件调用子组件的时候 ,再传递标签过来, 最终这些被传递的标签就会替换slot 插槽的位置

1.在子组件的wxml中使用slot标签



2.在父组件的wxml文件中写标签,根据选中不同标题显示不同内容



效果:



六、自定义组件的其他属性

自定义组件文档


相关文章
|
1月前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十三、自定义一个运动分析器,实现计时计数02
本文介绍如何利用“云智AI运动识别小程序插件”开发AI运动小程序,详细解析了俯卧撑动作的检测规则构建与执行流程,涵盖卧撑和撑卧两个姿态的识别规则,以及如何通过继承`sports.SportBase`类实现运动分析器,适用于小程序开发者。
|
1月前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十二、自定义一个运动分析器,实现计时计数01
随着AI技术的发展,AI运动APP如雨后春笋般涌现,如“乐动力”、“天天跳绳”等,推动了云上运动会、线上健身等热潮。本文将指导你从零开始开发一个AI运动小程序,利用“云智AI运动识别小程序插件”,介绍运动识别原理、计量方式及运动分析器基类的使用,帮助你在小程序中实现运动计时和计数功能。下篇将继续探讨运动姿态检测规则的编写。
|
21天前
|
小程序 前端开发 数据挖掘
圈子论坛社区交友系统开源版小程序源码,自定义小程序管理社区圈子软件开发,打造受欢迎社交圈
通过获取开源版小程序源码、进行自定义小程序管理社区圈子软件开发以及注重用户体验和功能模块的设计,可以打造一个受欢迎的社交圈。同时,需要不断优化和完善系统,以满足用户不断变化的需求和期望。
69 0
|
2月前
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
53 0
在线课堂+工具组件小程序uniapp移动端源码
|
3月前
|
小程序 数据可视化 JavaScript
微信小程序:轻松实现时间轴组件
本文介绍了如何在微信小程序中实现一个可视化时间轴组件。该组件适用于展示用户资金流动、投资结算等时间节点,帮助用户直观了解资金去向。时间轴支持自定义节点形状、显示序号、倒序排列等功能,并通过插槽灵活定义动态内容。文中详细介绍了组件的设计与使用方法,以及如何结合动态 slot 实现自定义操作。该组件为展示用户资金信息提供了美观、易用的解决方案。
91 1
微信小程序:轻松实现时间轴组件
|
3月前
|
小程序
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
753 1
|
3月前
|
小程序 搜索推荐 API
微信小程序:自定义关注公众号组件样式
尽管关注公众号组件的样式固定且不可修改,但产品经理的需求却需要个性化的定制。在这种情况下,我们需要寻找解决方案,以满足这些特殊需求,尽管这可能有点棘手。
96 0
微信小程序:自定义关注公众号组件样式
|
3月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
833 7
|
3月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
855 1
|
3月前
|
小程序 前端开发 测试技术
微信小程序的开发完整流程是什么?
微信小程序的开发完整流程是什么?
209 7