微信小程序案例 4.2 checkbox 与 radio 组件:动态控制字体样式
一、案例简介本案例是微信小程序选择类组件的实战练习综合运用了checkbox/checkbox-group多选和radio/radio-group单选两套组件。页面上方是一段示例文字下方有两组选项一组checkbox可多选分别控制文字是否加粗、斜体、下划线一组radio单选用于设置文字的字号大小。勾选或切换选项时上方示例文字的样式会实时变化。本次作业在基础案例之上在 radio 组里额外增加了一个「30rpx」选项选中后文字字号随之变为 30rpx。二、学习知识点表格知识点作用说明checkbox-group多选框容器必须把多个checkbox包在里面才能触发bindchangecheckbox单个多选框value是选中时的值radio-group单选框容器包裹多个radio通过bindchange监听选中radio单个单选框同组内互斥checkboxChange多选回调e.detail.value是选中值组成的数组radioChange单选回调e.detail.value是单个选中值动态样式绑定在style中用{{}}三元表达式根据数据实时切换样式关键区别checkbox 取到的是数组可多选radio 取到的是单值互斥单选。三、开发步骤新建不使用云服务、不使用模板的小程序项目。在index.wxml编写示例文字其style用数据动态绑定字体粗细、斜体、下划线、字号。用checkbox-group包裹三个checkbox加粗 / 斜体 / 下划线绑定checkboxChange。用radio-group包裹若干radio30 / 40 / 50 / 60rpx绑定radioChange。在index.js中维护isBold / isItalic / isUnderline / fontSize四个数据。勾选 checkbox 时更新三个布尔值切换 radio 时更新字号。编写样式编译预览测试。四、核心代码1. 页面结构index.wxmlview classcontainer view classtitle字体样式预览/view !-- 示例文字样式动态绑定 -- view classcontent stylefont-weight:{{isBold ? bold : normal}}; font-style:{{isItalic ? italic : normal}}; text-decoration:{{isUnderline ? underline : none}}; font-size:{{fontSize}}rpx; 这是一段用于演示字体样式和字号的示例文字。 /view !-- 多选字体样式 -- checkbox-group bindchangecheckboxChange labelcheckbox valuebold /加粗/label labelcheckbox valueitalic /斜体/label labelcheckbox valueunderline /下划线/label /checkbox-group !-- 单选字体大小作业新增 30rpx 选项 -- radio-group bindchangeradioChange labelradio value30 /30rpx/label labelradio value40 /40rpx/label labelradio value50 /50rpx/label labelradio value60 /60rpx/label /radio-group /view2. 逻辑index.jsPage({ data: { isBold: false, // 加粗 isItalic: false, // 斜体 isUnderline: false, // 下划线 fontSize: 40 // 字号默认 40rpx }, // 多选e.detail.value 是数组 checkboxChange(e) { const values e.detail.value this.setData({ isBold: values.indexOf(bold) -1, isItalic: values.indexOf(italic) -1, isUnderline: values.indexOf(underline) -1 }) }, // 单选e.detail.value 是单个值 radioChange(e) { this.setData({ fontSize: e.detail.value }) } })3. 样式index.wxss.container { padding: 40rpx; } .content { background: #fff; border-radius: 12rpx; padding: 30rpx; line-height: 1.8; }五、遇到的问题与解决方案问题 1单独放一个 checkbox /radio 不触发事件。原因小程序要求选择项必须放在checkbox-group/radio-group容器里。 解决用checkbox-group包裹所有 checkbox用radio-group包裹所有 radio。问题 2checkbox 取到的值判断不准。原因误以为e.detail.value是单个值实际它是数组。 解决用indexOf(xxx) -1判断某项是否被勾选。问题 3字号切换没反应。原因e.detail.value是字符串30直接当数字用会有隐患。 解决在 style 里用{{fontSize}}rpx拼接字符串30拼上rpx同样生效。六、运行效果初始文字为 40rpx、常规样式勾选「加粗」「斜体」「下划线」文字实时变粗、变斜、加下划线可组合选择「30rpx / 40rpx / 50rpx / 60rpx」文字大小随之变化互斥单选作业要求的「30rpx」选项已加入并生效。七、案例总结通过本案例掌握了checkbox-group多选与radio-group单选的用法理解了两者事件回调中数组与单值的区别并学会了在 WXML 中用style{{}}做动态样式绑定从而实现选择项实时驱动界面变化。新增的 30rpx 选项加深了对 radio 单选数据流的理解。

相关新闻

TCP/IP协议栈四层模型详解:从封装原理到抓包排查

TCP/IP协议栈四层模型详解:从封装原理到抓包排查

搞网络的人基本都绕不开“TCP/IP协议栈”这五个字。无论你是在调一个C中间件的网络模块,还是排查Windows系统端到端的发包收包延迟,又或者是在单片机上移植LoRa协议栈,最后都会落到对这四层结构的理解上。协议栈不是课本里需要背的抽象名词&a…

2026/9/30 11:54:21 阅读更多 →
手写签名组件封装:Canvas坐标换算与Pointer Events实战

手写签名组件封装:Canvas坐标换算与Pointer Events实战

1. 组件设计思路:为什么要把手写签名做成一个独立封装 先讲个背景。业务系统里总会碰到“请签名”的环节——合同签署、巡检确认、验收单、处方笺、维修工单,这些场景不约而同地需要一个能“写”字的区域。Web 端最通用、最可靠的做法就是在 canvas 上监…

2026/9/30 11:53:21 阅读更多 →
AI文献检索网站怎么选?从检索到写作的适配盘点

AI文献检索网站怎么选?从检索到写作的适配盘点

检索类工具这两年冒出不少,光看宣传页很难分清谁的技术真落在科研场景里。一个常见弯路是只盯着检索这一步,等论文写到数据呈现环节才发现还得换工具重来。事实上检索、统计、绘图、写作本来就是一条连贯的链路,选型时把后面几段一起考虑会省很多反复。比如沁言学术这类把检索和…

2026/9/30 11:53:21 阅读更多 →

最新新闻

数据中台服务监控实战:从指标体系到告警治理

数据中台服务监控实战:从指标体系到告警治理

1. 数据服务监控的核心定位与整体思路 1.1 为什么监控是数据中台落地成败的关键 聊到数据中台,很多团队的第一反应是数据模型怎么设计、指标口径怎么统一、数据迁移怎么把异构系统的数据搬过来。这些确实是中台建设的地基和承重墙,但我做了这么多年数据…

2026/9/30 12:37:51 阅读更多 →
Android备忘录实战:Room、RecyclerView与增删改查

Android备忘录实战:Room、RecyclerView与增删改查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/30 12:37:51 阅读更多 →
Paperclip胶水协议:用JSON Schema整合OpenClaw、Claude与React的AI工具链

Paperclip胶水协议:用JSON Schema整合OpenClaw、Claude与React的AI工具链

1. 项目概述:Paperclip 不是回形针,而是一个被严重误读的 AI 工具链命名陷阱“Paperclip”这个词在中文技术圈里最近频繁出现,但几乎没人说清楚它到底指什么。你搜“paperclip node.js”,结果跳出来一堆 OpenClaw、Claude、React …

2026/9/30 12:37:51 阅读更多 →
Python运算符完全指南:算术、比较、逻辑与优先级详解

Python运算符完全指南:算术、比较、逻辑与优先级详解

1. 为什么单独拿一章学运算符 1.1 运算符不只是算数 很多初学Python的朋友,看到“运算符”这一章时第一反应是:这不就是小学的加减乘除吗?当年我也是这么想的,直到我在实际写代码时被 // 、 % 和 ** 折磨得怀疑人生&#x…

2026/9/30 12:37:51 阅读更多 →
GTK界面开发实战:从控件树到系统监控工具的设计全解析

GTK界面开发实战:从控件树到系统监控工具的设计全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/30 12:37:51 阅读更多 →
PHP中Repository到底算不算设计模式?一文厘清概念与实战

PHP中Repository到底算不算设计模式?一文厘清概念与实战

1. 为什么“Repository是设计模式”这句话让人半信半疑第一次听到“PHP的Repository 设计模式?”这个问题时,我大概正坐在某次技术分享的最后一排。台上的讲师放出一张类图,说“这里我们用Repository模式解耦数据访问”,底下有个…

2026/9/30 12:36:49 阅读更多 →

日新闻

Base64 图片头部特征识别:从文件头到格式判断的完整指南

Base64 图片头部特征识别:从文件头到格式判断的完整指南

1. 项目概述:为什么说看懂 base64 图片头部是基本功这几年跟 base64 打交道的机会越来越多,后端接口返回图片、前端渲染验证码、小程序里存小图、还有一些老系统导出报表,动不动就给你一段长到怀疑人生的 base64 字符串。很多人拿到字符串就直…

2026/9/30 0:00:35 阅读更多 →
Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

简介:本资源是一份面向Java初学者与课程设计学生的公交站牌广告灯箱管理系统毕业设计文档,聚焦城市公共广告资源信息化管理痛点,提供从需求分析到技术实现的完整方案。文档采用标准学术论文结构,含摘要、英文摘要、目录及五章正文…

2026/9/30 0:00:35 阅读更多 →
用 Redis Lua 构建大模型 API 多租户原子配额治理体系

用 Redis Lua 构建大模型 API 多租户原子配额治理体系

我去年年底接了一个内部 AI 平台的治理需求,背景很直接:公司把 DeepSeek、MiniMax 这类大模型 API 统一封装成内部网关,开放给几个业务团队用。结果第一个月账单出来,额度直接超了 4 倍。仔细查日志,发现原因并不复杂—…

2026/9/30 0:00:35 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/29 8:16:59 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/29 16:41:41 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/29 8:24:48 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/29 19:29:29 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/29 5:58:00 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/29 3:55:56 阅读更多 →