微信小程序自定义组件

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

一、自定义组件

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文件中写标签,根据选中不同标题显示不同内容



效果:



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

自定义组件文档


相关文章
|
8天前
|
小程序 安全
微信小程序自定义底部导航栏
微信小程序自定义底部导航栏
|
10天前
|
JSON 小程序 搜索推荐
微信小程序如何自定义tabbar
微信小程序如何自定义tabbar
12 3
|
18天前
|
小程序
微信小程序-其他常用组件
该内容是关于微信小程序组件的介绍,主要包括`button`、`image`和`navigator`。`button`组件比HTML的按钮功能更丰富,通过`open-type`可调用微信功能,如客服、转发等。组件属性包括类型(如`primary`、`warn`)和尺寸(`size`)。`image`组件默认宽300px,高240px,支持设置属性来调整显示效果。`navigator`组件用于页面导航,类似HTML的a标签,常用于页面间的跳转。
20 0
|
18天前
|
小程序
微信小程序-常用的基础内容组件
以下是内容的摘要: 本文介绍了微信小程序中几个重要的组件:text、rich-text和progress。text组件类似于HTML的span标签,用于显示文本,通过selectable属性可实现长按选中文本。rich-text组件能够将HTML字符串渲染成WXML结构,展示富文本内容。progress组件则用于展示进度条,支持不同状态(如成功、警告、等待等)以及自定义颜色和宽度。icon组件则提供了一组预定义的图标,可用于表示各种操作状态或提示信息。
14 0
|
18天前
|
小程序 前端开发 定位技术
微信小程序-常用的视图容器类组件
该内容是关于微信小程序组件的分类和部分具体组件的介绍。主要分为9大类:视图容器、基础内容、表单组件、导航组件、媒体组件、地图组件、画布组件、开放能力和无障碍访问。其中详细讲解了`view`、`scroll-view`、`swiper`及`swiper-item`等组件的用途和示例。`view`用于构建页面布局,`scroll-view`支持滚动效果,`swiper`则用于创建轮播图。此外,还提到了`root-portal`、`page-container`等其他特殊用途的组件。
16 0
|
20天前
|
JSON 小程序 前端开发
小程序中使用npm安装vant组件实现按需引入减少代码包大小,避免触发用户隐私协议
微信小程序按需引入 vant 组件,自动清除项目中未使用的 vant 组件,减少代码包大小,避免因未使用到的 vant 组件触发隐私协议提交审核时被拒
31 1
小程序中使用npm安装vant组件实现按需引入减少代码包大小,避免触发用户隐私协议
|
30天前
|
小程序 程序员
【uniapp微信小程序】自定义导航栏:非首页展示的实现方式(极为快捷方式)
【uniapp微信小程序】自定义导航栏:非首页展示的实现方式(极为快捷方式)
58 0
|
30天前
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的异常处理和日志记录,强调其对确保应用稳定性和用户体验的重要性。异常处理涵盖前端(网络、页面跳转、用户输入、逻辑异常)和后端(数据库、API、业务逻辑)方面;日志记录则关注关键操作和异常情况的追踪。实践中,前端可利用try-catch处理异常,后端借助日志框架记录异常,同时采用集中式日志管理工具提升分析效率。开发者应注意安全性、性能和团队协作,以优化异常处理与日志记录流程。
|
20天前
|
小程序 API 数据安全/隐私保护
微信小程序开发中的一些常用标签
这些标签是微信小程序开发中的基础,开发者可以根据需要组合使用这些标签来构建小程序的界面。每个标签都有其属性和事件,可以通过属性来调整组件的样式和行为,通过事件来响应用户的操作。
42 5
|
7天前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的外卖小程序的研究与开发的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的外卖小程序的研究与开发的详细设计和实现
11 0