微信小程序-自定义子组件-按钮组

【微信小程序】父组件修改子组件数据或调用子组件方法 父组件修改子组件数据或调用子组件方法 阅读详情

由于项目需要,频繁使用到按钮组,如图所示,

后期优化代码时,提炼出了自定义的子组件。

难度虽不大,但也是自己码出来的,转载请注明,谢谢~


效果如下图:

父组件:

<!--button-group/button-group.wxml-->
<view class="btn-group-wrap">
  <view wx:for="{{dataList}}" wx:for-item="item" wx:for-index="index" :key="index" class="btn-item {{currentId===item.id ? 'select' : ''}} {{dataList.length===1?'only-btn':''}}" data-id="{{item.id}}" bindtap="switchBtn">
    <!-- 如果需要的话也可加icon -->
    <!-- <icon type="success" class="icon-test" size="20"/> -->
    <!-- <text wx:if="{{item.icon}}" class="iconfont icon-{{item.icon}}"></text> -->
    <text wx:if="{{item.text}}" class="btn-text">{{item.text}}</text>
    <text wx:if="{{!item.text}}" class="btn-text">按钮{{index+1}}</text>
  </view>
</view>
// button-group/button-group.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    dataList:{
      type:Array,
      value:[]
    },
    currentId:{
      type:String,
      value:''
    },
  },

  /**
   * 组件的初始数据
   */
  data: {

  },

  /**
   * 组件的方法列表
   */
  methods: {
    switchBtn:function(e){
      console.log(e.currentTarget.dataset.id,'子组件currentId')
      this.setData({
        currentId:e.currentTarget.dataset.id
      })
      var btnEventDetail = {
        currentId:e.currentTarget.dataset.id
      } // detail对象,提供给事件监听函数
      var btnEventOption = {} // 触发事件的选项
      this.triggerEvent('btnEvent', btnEventDetail, btnEventOption)
    }
  }
})
/* button-group/button-group.wxss */
.btn-group-wrap {
  box-sizing:border-box;
  width: 100%;
  height: auto;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: center;
  margin: 20rpx auto;
}
.btn-item {
  flex: 1;
  align-items: center;
  line-height: 50rpx;
  height: 26px;
  font-size: 26rpx;
  text-align: center;
  border: 1px solid #bbb;
  border-right:0;
  background-color: #fff;
}
.btn-item:first-child {
  border-radius: 30rpx 0 0 30rpx;
}
.btn-item:last-child {
  border-radius: 0 30rpx 30rpx 0;
  border-right: 1px solid #bbb;
}
.btn-text {
  display: inline-block;
  padding: 0 20rpx;
  text-align: center;
}
.only-btn {
  border-radius: 30rpx!important;
}
.select{
  background-color: #3287F0;
  color: #ffffff;
  border-color: #3287F0;
}
.icon-test {
  height: 23px;
  vertical-align: middle;
}

父组件:

<view class="page">
  <button-group currentId="0"  dataList="{{btnList}}" bind:btnEvent="btnEvent"></button-group>
</view>
const app = getApp()

Page({
  data: {
    btnList:[
      {
        id:'0',
        text:'',
        icon:''
      },
      {
        id:'1',
        text:'',
        icon:''
      },{
        id:'2',
        text:'',
        icon:''
      }
    ]
  },
  onLoad: function () {
  },
  onReady(){
    this.btnGroup = this.selectComponent("#btn-group")
  },
  btnEvent(e){
    // 按钮点击触发,接收子组件传过来的数据,进行操作
    console.log(e.detail,'e')
  }
})

 

微信小程序组件(车牌号输入,支付键盘,滑块验证) 车牌号输入组件 如图 基于微信小程序组件封装,输出值为当前选择车牌号,可回显车牌号。 支持7位8位车牌号,因为我的项目没有此需求,所以没有测试,具体功能待验证。 话不多说,上代码。 json文件 { "component": true, "usingComponents": { "van-overlay": "@vant/weapp/overlay/index", "van-divider": "@vant/weapp/divider/index" } } 阅读详情

相关推荐

【微信小程序】10个步骤彻底掌握微信小程序button按钮组件,你也能变成按钮大师

通过以上详细的介绍,相信你已经对微信小程序中的button按钮组件有了全面的了解。按钮组件不仅功能强大,而且使用灵活,能够满足各种交互需求。只要你掌握了这些基础知识和技巧,就能轻松应对各种开发场景。希望你能轻松掌握这些技能,成为微信小程序开发的高手!🌟🚀下次见,祝你开发愉快!👋🎉。

java专栏 1803

微信小程序的自学之路一按钮篇

微信小程序,按钮,设置按钮宽度,按钮宽度

qq_55691371的博客 1万+

微信小程序-虚拟车牌输入键盘组件vehicleKeyboard-master.zip

微信小程序-虚拟车牌输入键盘组件vehicleKeyboard-master.zip

微信小程序 单选按钮组

微信小程序 单选按钮组组件

Wangyuan_wo的博客 733

keyboard:小程序模拟键盘组件

keyboard 小程序模拟键盘组件 模拟键盘操作 优点: 推荐金额快捷选择 可自助选择充值 遇到的问题: 组件看起来不难,但是要注意的小细节好多。 输入小数点后,不能在输入第二个小数点。 小数点后两位朝外,再输入无效。 推荐金额和自助充值切换时要相互重置。 为何要写此组件? 小程序原生的<input type="digit" placeholder="带小数点的数字键盘"/>不够灵活,不能自由的操纵数字面板!!用的不爽!! 下面是效果gif:

某讯天御滑块验证码逆向实战:从参数解析到环境对抗

本文详细解析了某讯天御滑块验证码的逆向工程实战技巧,从关键参数解析到浏览器环境模拟对抗。重点介绍了collect、eks等参数的逆向思路,以及如何通过puppeteer等工具补全环境检测,帮助开发者有效突破验证码防护。文章还提供了常见错误解决方案和性能优化建议,是验证码逆向领域的实用指南。

weixin_29325007的博客 437

小程序的按钮组功能

按钮组代码: <view style="z-index: 10;border: 1rpx solid #157DFE;border-radius: 55rpx;" class=" uni-flex-between-center"> <view class="supervise-container" v-for="(list,index) in superviseconfigEntities" :style="(index==0?'border-top-left-radius:.

SSophia的博客 477

在VS2019里把JSBSim飞行模型集成到你的C++项目里(附完整配置流程和常见错误解决)

本文详细介绍了如何在Visual Studio 2019中将JSBSim飞行模型集成到C++项目中,包括环境准备、源码编译、项目配置和常见错误解决方案。通过实战技巧和优化建议,帮助开发者高效实现高精度飞行仿真功能,提升开发效率。

weixin_42620202的博客 413

微信小程序-并排放置

1.wxml <view class='mowei'> <view class='wodedingdan'> <image src='images/wifi.png'></image> <view class='ziti'>WIFI连接</view> </view> <view class='wodedingdan'> <image src='images/peisong.png'></im

weixin_39507384的博客 7632

『ISOBUS 入门』第 00 节 导言:ISOBUS 的宏观图景与入门路径

ISOBUS 是由三部分构成的集成系统:两段CAN网络(拖拉机与农具侧)、标准化通信约定及认证流程。其核心在于通过统一协议实现跨品牌设备即插即用。标准体系以ISO 11783为基础,分层涵盖物理层、传输层至应用层,关键功能如虚拟终端(VT)、任务控制器(TC)和文件服务器依赖严格的会话管理与角色分工。实际部署中,总线上传输多种协议报文,故障排查需结合地址声明、多包传输与角色权限分析。学习应从真实报文入手,建立“角色—数据流—功能块”认知链,避免仅学标准或仿真替代实测,方能有效应对复杂现场问题。

linx295的博客 282

LangGraph的容错机制:从节点失败到图级回滚

核心概念铺垫:讲解LLM应用容错与事务性的核心概念(幂等性、重试策略、降级策略、快照、回滚、原子性、一致性、隔离性、持久性、最终一致性),对比LangGraph容错机制与传统数据库ACID事务、Apache Airflow/Kubernetes Workflow/Kubeflow Pipelines容错机制的异同;LangGraph容错机制的演进历史:用markdown表格梳理LangGraph从0.0.1到1.5.0(截止202X年X月)的容错机制发展历程;节点级别的容错:重试与降级。

AI Python 编程之道的博客 172

微信小程序如何让多个按钮横向排列

使用了Felx布局,要调整按键位置主要操控margin、width这几个属性。

qq_43279097的博客 4332

强化学习:在智能交通系统中的应用

作者:禅与计算机程序设计艺术 这篇文章将探索如何利用强化学习(RL)这一强大的机器学习方法,在智能交通系统中实现自动驾驶、优化路线规划和提高道路安全等方面的突破。RL通过让智能体与环境互动并从这些互动中学习,从而解决复杂的决策过程问题,这正是现代智能交通系统所需要的。 背景介绍 随着城市化进程的加速,交通拥堵、能源消耗和交通事

AI天才研究院 1120

微信小程序多插槽组件开发:从原理到实战的灵活配置方案

在组件化开发中,实现内容与容器的解耦是提升代码复用性和维护性的关键。其核心原理在于通过插槽(Slot)机制,将内容结构的控制权从组件内部转移到使用者手中,从而实现高度的灵活性和定制化。这项技术的核心价值在于,它允许开发者构建出稳定、通用的UI框架,同时又能满足业务层千变万化的内容需求,极大地提升了开发效率。在微信小程序开发中,这一理念通过多插槽(Multiple Slots)功能得到了强化应用,特别适用于弹窗、卡片、导航栏等需要多个独立内容区域的复合型UI组件。要启用此功能,必须在组件配置中显式设置 `mu

weixin_27028523的博客 316

Ardupilot chibios主函数学习(1)

目录 文章目录目录摘要第一部分chibios主函数**(1)主回调函数入口****(2)主回调函数入口****(3)主回调函数入口****(4)主回调函数入口**1.函数hal.scheduler-&amp;amp;amp;amp;amp;amp;amp;gt;init()分析 摘要 本节主要记录自己学习Ardupilot的 chibios代码过程,欢迎批评指正。 第一部分chibios主函数 (1)主回调函数入口 AP_HAL_MAIN_...

陌城烟雨 4243

【maven】idea左侧External Libraries里,没有Maven的依赖包 代码飘红

文章目录1.概述M.参考 1.概述 因为内网开发,然后这几天我被隔离了,然后公司搞了一个外网的vpn能连接的云桌面,云桌面也是网络隔离的,因此只能自己拷贝相关的文件到里面。 然后我就拷贝了代码和maven仓库中的一部分,因为本地的20G一次拷贝不完,需要多次拷贝,但是我拷贝了kafka,仍然飘红。具体如下 idea左侧External Libraries里,没有Maven的依赖包 然后整了很久都没搞定,后来我自己新建了一个项目,然后引入发现是不可以的,而且框框里面的飘红。 然后我就想是不是因为缺少依赖

九师兄 4411

微信小程序 iOS支付

微信小程序运营支付规范 微信官方针对有虚拟支付功能的小程序下发了整改通知.截至5月8号,平台将对账号屏蔽iOS系统的支付接口调用.我去查了&amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;微信小横须运营规则&amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;gt

亦可wang 1万+

uniapp:安卓苹果APP判断是否授权开启手机位置服务+弹框引导跳转到用户手机设置位置服务开启页面,uniApp app判断是否授权位置信息权限如果位置是关闭状态则提示用户(跳转各机型位置设置页面)

uniapp APP判断是否开启位置信息服务&&判断是否授权位置信息权限,uniappapp定位权限被拒绝后,询问是否开启授权并跳转到手机设置页面,uniapp APP端 定位未授权 去手机设置里开启定位,uniapp提示用户开启定位,跳转到开启定位页面,uniapp获取当前位置及检测授权状态,uniapp中获取位置信息处理,uni-app实现定位功能_uniapp获取定位位置信息,uniapp中app是否开启定位,app获取地理位置,uniapp打开位置权限设置页面IOS,用户并没有开启微信信息服务或者没

✅ 精选推荐文章 4343

【微信小程序】父子组件的创建、通信与事件触发;组件生命周期

父组件传值给子组件:子组件properties接收子组件传值给父组件:子组件this.triggerEvent()激发传给父组件父组件调用子组件的方法:父组件使用this.selectComponent 获取子组件的实例对象子组件调用父组件的方法:子组件this.triggerEvent()激发传给父组件可以看出来如果是子组件要想与父组件通信,无论是传参还是调用方法,都可以通过this.triggerEvent()实现。传参也只是调用方法的一种特殊情况而已。

记录 1904

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

微信小程序 button 组件的使用

在小程序中,我们可以使用。

qq_46099629的博客 1958

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

微信小程序--单选复选按钮组的实现

本文主要介绍微信小程序单选按钮很多选按钮的实现方式。众所周知,小程序目前无法绑定DOM截点,实现的原理就是通过bindtap点击的事件方法获取data-id进行循环遍历取反而实现该效果。 (一)单选按钮组模型图如下: index.jsPage({ data: { parameter: [{ id: 1, name: '银色' }, { id: 2, name: '白色' },{ i

拥抱AI Design 2万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

微信小程序的自定义组件、常见组件通信、组件父子、子父、兄弟等传参、组件的属性、slot、自定义组件样式、样式隔离、数据监听 objservers、生命周期、复用机制 behaviors、外部样式等

微信小程序的自定义组件、常见组件通信:父子传参、兄弟传参、子父传参等、组件的属性、slot、自定义组件样式、样式隔离、数据监听 objservers、生命周期、复用机制 behaviors、外部样式

weixin_44166849的博客 1373

微信小程序调用子组件的方法

以上两种方式都可以实现调用组件方法的目的,选择哪一种取决于具体情况,常规情况下建议使用第一种方式。触发一个自定义事件,父组件监听该自定义事件并执行相应的操作。2. 直接在子组件中使用。

qq_53478650的博客 7538

微信小程序中Button组件的属性值和用法详解

简要介绍Button组件在小程序中的作用和重要性,以及为什么开发者需要深入了解其属性值和用法。size:设置按钮尺寸大小。type:设置按钮样式类型。plain:设置按钮是否镂空。disabled:设置按钮是否禁用。open-type:设置按钮的开放能力。hover-class:设置按钮按下后的样式类。form-type:设置按钮在表单中的功能类型。lang:设置开放能力的语言类型。hover-stop-propagation:设置是否阻止事件冒泡。

suqi_123123的博客 3831

微信小程序button组件怎么使用?

其实学过前端的小伙伴们都知道button标签是什么。

贼厉害 4101

微信小程序自定义组件:获取子组件实例对象,直接访问组件的任意数据和方法

略

sayyy的专栏 2122
上一篇: 微信小程序-时间轴/抽屉展开收起特效
下一篇: 微信小程序-实现安卓系统只预览不下载pdf文件
驚鴻入梦
博客等级 码龄10年 23粉丝 21原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值