基于Vue和uni-app的增强型单选ccRadioView组件开发
标题:基于Vue和uni-app的增强单选组件ccRadioView的设计与实现
摘要:本文将详细介绍如何使用Vue和uni-app构建一个简单、好用且通用的单选框组件ccRadioView。该组件提供了单选列表的功能,并支持反向传值,方便开发者快速实现单选事件的处理。
一、引言
在前端开发中,单选组件是一种常见的需求。单选框(Radio)允许用户从一组选项中选择一个。然而,原生的单选框样式和交互方式可能无法满足所有需求,因此,我们需要自定义单选框组件,以提供更丰富的样式和交互体验。
二、组件设计
ccRadioView组件的设计基于Vue和uni-app,具有以下几个特点:
-
简单易用:组件的使用方式简单,只需传入相关数据即可实现单选功能。
-
高度通用:组件适用于多种场景,如表单、弹窗等。
-
反向传值:当用户选择某个选项时,组件会自动触发change事件,并将选中的值传递给父组件。
效果图如下:



三、组件实现
-
数据绑定
ccRadioView组件通过props接收父组件传入的数据,包括单选数据(radioData)、当前选择序列(curIndex)等。组件内部使用Vue的数据绑定功能,将这些数据与组件的状态进行关联。
-
渲染列表
组件使用v-for指令遍历radioData,为每个选项生成一个单选框。同时,使用v-bind指令将curIndex与当前选中的选项进行绑定,以实现单选功能。
-
事件处理
组件内部监听change事件,当用户选择某个选项时,触发该事件并将选中的值传递给父组件。通过@change="radioChange"的方式,实现反向传值的功能。
四、示例代码
使用方法
<!-- radioData:单选数据 curIndex:当前选择序列 @change:单选事件 -->
<cc-radioView :radioData="items" :curIndex="current" @change="radioChange"></cc-radioView>
HTML代码实现部分
<template><view><!-- radioData:单选数据 curIndex:当前选择序列 @change:单选事件 --><cc-radioView :radioData="items" :curIndex="current" @change="radioChange"></cc-radioView><button class="botBtn" type="primary" @click="submitBtnClick">完成</button><!-- 设置按钮下面仍然可以滑动 --><view style="height: 30px;"></view></view>
</template><script>export default {data() {return {items: [{value: '1',name: '事项一'},{value: '2',name: '事项二',checked: ''},{value: '3',name: '事项三'},{value: '4',name: '事项四'},{value: '5',name: '事项五'},{value: '6',name: '事项六'},{value: '7',name: '事项七'},{value: '8',name: '事项八'},],current: 0,};},onLoad(e) {let tmpObj = {};if (typeof(e.obj) === 'string') {tmpObj = JSON.parse(e.obj);// 查找元素位置this.current = this.items.findIndex((el) => {return el.name === tmpObj.name});}console.log("序列 = " + this.current);console.log("正向传值 = " + JSON.stringify(tmpObj));},methods: {radioChange: function(evt) {for (let i = 0; i < this.items.length; i++) {if (this.items[i].value === evt.target.value) {this.current = i;break;}}},submitBtnClick: function(e) {console.log("选中的条目 = " + JSON.stringify(this.items[this.current]));this.$eventHub.$emit('fire', this.items[this.current]);uni.navigateBack({delta: 1})}}};
</script><style>/*每个页面公共css */.botBtn {width: 90%;margin-left: 5%;margin-top: 80rpx;height: 92rpx;/* background-color: #F36526 !important; */}
</style>
五、总结
本文介绍了基于Vue和uni-app的单选组件ccRadioView的设计与实现。通过简单的使用方式和高度通用的设计,ccRadioView组件为开发者提供了便捷的单选功能。同时,反向传值的功能使得组件更加灵活,可以满足各种场景下的需求。希望本文能对大家在前端开发中的单选组件设计与实现提供一定的参考和帮助。
项目下载地址:
https://ext.dcloud.net.cn/plugin?id=12977
相关文章:
基于Vue和uni-app的增强型单选ccRadioView组件开发
标题:基于Vue和uni-app的增强单选组件ccRadioView的设计与实现 摘要:本文将详细介绍如何使用Vue和uni-app构建一个简单、好用且通用的单选框组件ccRadioView。该组件提供了单选列表的功能,并支持反向传值,方便开发者快速实现单选…...
信息系统项目管理师0602:项目立项管理 — 历年考题(详细分析与讲解)
点击查看专栏目录 1、2017年11月第31题 题干: 项目经理小李依据当前技术发展趋势和所掌握的技术能否支撑该项目的开发,进行可行性研究。小李进行的可行性研究属于( )。 选项: A. 经济可行性分析 B. 技术可行性分析 C. 运行环境可行性分析 D. 其他方面的可行性分析 答案…...
vue2 中使用audio播放音频
<audio controls ref"audioPlayer" style"width:800px;"><source :src"obj.audioUrl" /></audio> data() {return {obj: {audioUrl: require(../../../../public/audio/video.wav)}}}, 有个地方一定要注意一下. 如果不写req…...
一键追爆款,GPT一键改文 ,绘唐3,绘唐工具
ai画影满足你的制作要求 一键追爆款,GPT一键改文 入口工具 AI推文小说&漫画解说&解压混剪 人物定义,角色定义,lora转换,模型转换,可视化参考满足 一键追爆款 一键挂机生成,效果更精彩ÿ…...
在C#中编写递归函数时,为了避免无限递归
在C#中编写递归函数时,为了避免无限递归(也称为栈溢出),你需要确保递归调用有一个明确的终止条件。这个终止条件通常基于一个或多个参数,当这些参数满足某个特定条件时,递归就会停止并返回结果。 以下是一…...
css层叠样式表——基础css面试题
1、css样式来源有哪些? 內联样式-<a style"color:red"></a>内部样式-<style></style>外部样式-写在独立.css文件中的浏览器用户自定义样式浏览器默认样式 2、样式优先级问题 不同级别下: !important作为style属性…...
数据库-索引结构(B-Tree,B+Tree,Hash,二叉树)
文章目录 索引结构有哪些?二叉树详解?B-Tree详解?BTree详解?Hash详解?本篇小结 更多相关内容可查看 索引结构有哪些? MySQL的索引是在存储引擎层实现的,不同的存储引擎有不同的索引结构,主要包…...
Microsoft Azure AI语音服务
一:文字转语音SDK安装 安装语音 SDK - Azure AI services | Microsoft Learn 二:基于文本转语音Rest API 文本转语音 API 参考 (REST) - 语音服务 - Azure AI services | Microsoft Learn 三:基于文本合成语音 如何基于文本合成语音 - 语…...
【Linux】常用指令、热键与权限管理
一、常用指令 (1)ls 功能:列出指定目录下的所有子目录与文件 用法:ls (选项) (目录或文件名) 常用选项: -a:列出目录下的所有文件,包括隐藏…...
深度学习知识点全面总结
目录 1.深度学习的一些重要知识点 神经网络: 深度学习模型: 深度学习技术: 深度学习应用: 2.深度学习、机器学习、人工智能 3.用python实现简单神经网络模型 4.用于深度学习显卡推荐排序 5.深度学习如何入门? 掌握基础知识: 选择学习资源&…...
【编写控制手机压测的脚本】
编写一个控制手机压测的脚本可以使用Python语言来实现。以下是一个简单的示例脚本: import subprocess import time# 打开app subprocess.call(["adb", "shell", "am", "start", "-n", "com.example.app/.…...
计算机网络-路由策略与路由控制一
到目前为止我们学习了路由与交换基础,路由协议有静态、RIP、OSPF、IS-IS等,但是根据实际组网需求,往往需要实施一些路由策略对路由信息进行过滤、属性设置等操作,通过对路由的控制,可以影响数据流量转发。 因此我们开始…...
在线3D展示软件三维展示软件推荐哪家?
博维数孪、动动三维和sketchfab的在线网页3D展示软件工具选择哪一比较好? 选择在线3D展示软件时,需要考虑几个关键因素,包括软件的功能、用户界面、价格、社区支持和兼容性等。以上几款软件工具都有各自的优势,具体取决于需求和偏…...
VS Code中PlatformIO IDE的安装并开发Arduino
VS Code中PlatformIO IDE的安装并开发Arduino VS Code的安装 略 PlatformIO IDE的安装 PlatformIO IDE是是什么 PlatformIO IDE 是一个基于开源的跨平台集成开发环境(IDE),专门用于嵌入式系统和物联网(IoT)开发。…...
Java入门——异常
异常的背景 初识异常 我们曾经的代码中已经接触了一些 "异常" 了. 例如: //除以 0 System.out.println(10 / 0); // 执行结果 Exception in thread "main" java.lang.ArithmeticException: / by zero //数组下标越界 int[] arr {1, 2, 3}; System.out.…...
智慧园区:视频系统建设的核心要素与实践路径
一、背景分析 园区作为城市的基本单元,是最重要的人口和产业聚集区。根据行业市场调研,90%以上城市居民工作与生活在园区进行,80%以上的GDP和90%以上的创新在园区内产生,可以说“城市,除了马路都是园区”。 园区形态…...
基于ChatGLM+Langchain离线搭建本地知识库(免费)
目录 简介 服务部署 实现本地知识库 测试 番外 简介 ChatGLM-6B是清华大学发布的一个开源的中英双语对话机器人。基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT…...
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】
前言 做数仓开发离不开 SQL ,写了很多 HQL 回头再看 MySQL 才发现,很多东西并不是 HQL 所独创的,而是几乎都来自于关系型数据库通用的 SQL;想到以后需要每天和数仓打交道,那么不管是 MySQL 还是 Oracle ,都…...
SCSS详解
SCSS(Sassy CSS)是Sass 3引入的新语法,完全兼容CSS3,并且继承了Sass的强大功能。与原始的Sass语法不同,SCSS语法使用了和CSS一样的块语法,即使用大括号“{}”将不同的规则分开,使用分号“;”将具…...
Vue 问题集
Q:MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 connection listeners added. Use emitter.setMaxListeners() to increase limit A: 可能由多个问题导致,我的是情况1 1. vue.config.js - devServer 代理设置只能添加10个&#…...
2026 年真正必备的 10 个 Claude 插件(以及它们的作用)
如何把 Claude 从聊天机器人,变成能写代码、联网、访问数据、自动化全流程的超级 AIClaude 刚刚获得了超能力。 而大多数人还以为它只是个聊天机器人。 2026 年 2 月 24 日,Anthropic 为企业用户推出了私有插件市场。而在此两周前,社区已经发…...
OpenClaw多模型切换实战:千问3.5-35B-A3B-FP8与文本模型的协作流程
OpenClaw多模型切换实战:千问3.5-35B-A3B-FP8与文本模型的协作流程 1. 为什么需要多模型协作? 去年我在尝试用AI自动化处理工作流时,发现一个尴尬的问题:当我用同一个模型处理图片识别和文本写作时,要么图片理解能力…...
网安工程师好就业吗?零基础转行如何操作?
“ 就业是好就业的,但是太卷了,因为它本身就是个门槛低,技术高的工作。如果决定要走这条路,那么一定要下定决心好好学,学出来了这下半辈子就不用愁了。” 网络安全,这个在现代社会愈发受到重视的领域&#…...
踩下油门的那一刻,P2并联混动系统开始了一场精密的能量博弈。咱们今天不聊枯燥的理论,直接钻进Simulink模型里看看这套系统怎么玩转发动机和电机的“二人转
基于Matlab/simulink的P2并联PHEV插电式混合动力汽车建模控制仿真模型(同轴、双轴并联插电混合动力汽车仿真模型) ——包括整车HCU控制单元、发动机模型、驱动电机模型、AMT5档自动变速箱模型、驾驶员模型、电池能量管理控制模型等,建模详细清…...
python-langchain框架(1-8-2 缓存机制——验证缓存的效果)
当用户提出一个常见问题时,首次调用大模型需要经历网络传输、排队等待、模型推理等完整链路,响应时间通常在1至3秒。这个时长已超过人类对“流畅交互”的心理阈值(200毫秒),用户会明显感知到“卡顿”和“等待焦虑”。而…...
72小时数字记忆拯救计划:GetQzonehistory全方位备份方案
72小时数字记忆拯救计划:GetQzonehistory全方位备份方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 记忆保卫战:当十年说说面临消失危机 "您的QQ空间数…...
《YOLO11魔术师专栏》专栏介绍 专栏目录
《YOLO11魔术师专栏》将从以下各个方向进行创新(更新日期25.07.23): 【原创自研模块】【多组合点优化】【注意力机制】 【主干篇】【neck优化】【卷积魔改】 【block&多尺度融合结合】【损失&IOU优化】【上下采样优化 】 【小目标…...
AI赋能监控:让快马平台的Kimi模型帮你智能识别网页每日真更新
今天想和大家分享一个最近用AI辅助开发的实用小工具——智能网页更新检测系统。这个项目的核心目标是解决传统网页监控工具"误报率高"和"无法识别实质性更新"的痛点,特别适合需要跟踪竞品动态或内容更新的运营同学。 语义摘要比对技术 传统方案…...
专治写作卡点!这几款 AI 续写软件,让论文写作像呼吸一样简单
写论文最怕卡壳?大纲想破头、续写没思路、降重改到哭,还怕 AI 痕迹露馅?2026 年这几款 AI 续写软件,直击本科生、研究生核心痛点,从选题到答辩一站式搞定,让写作效率翻倍!一、PaperRedÿ…...
3大核心功能突破JSON可视化难题:vue-json-pretty革新前端数据展示体验
3大核心功能突破JSON可视化难题:vue-json-pretty革新前端数据展示体验 【免费下载链接】vue-json-pretty A JSON tree view component that is easy to use and also supports data selection. 项目地址: https://gitcode.com/gh_mirrors/vu/vue-json-pretty …...
