news 2026/10/22 2:22:54

微信小程序实验:列表渲染和九九乘法表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
微信小程序实验:列表渲染和九九乘法表

一、前言

wx:for是小程序的列表渲染指令,可以循环数组快速生成重复 UI。业务中经常遇到双层循环嵌套场景,九九乘法表就是非常经典的学习案例。 本案例使用嵌套wx:for列表渲染 +wx:if条件渲染实现九九乘法口诀表,并且完成作业扩展:奇偶行不同背景色、每个算式增加边框,页面设置横屏展示,适配乘法表宽布局。

实现效果:

  • 整体纵向排列,每一行内部横向排列算式;
  • 只渲染左下三角区域(j<=i);
  • 奇数行、偶数行区分背景颜色;
  • 每个乘法算式带蓝色边框;
  • 页面强制横屏展示。

新建小程序项目,不使用云服务、不使用模板。

关键配置:app.json设置"renderer":"webview"使用 webview 渲染引擎;index.json设置"pageOrientation":"landscape"开启页面横屏。

二、代码

app.json

{ "pages": [ "pages/index/index" ], "window": { "navigationBarTextStyle": "black", "navigationStyle": "custom" }, "style": "v2", "renderer": "webview", "componentFramework": "glass‑easel", "sitemapLocation": "sitemap.json", "lazyCodeLoading": "requiredComponents" }

pages/index/index.json

{ "usingComponents": { "navigation-bar": "/components/navigation-bar/navigation-bar" }, "pageOrientation": "landscape" }

核心知识点

  1. 嵌套 wx:for
    • 外层循环代表行 i,使用wx:for-index="rowIdx"拿到行下标,用来做奇偶行颜色判断;
    • 内层循环代表列 j;
  2. wx:if="{{j <= i}}"条件渲染,只渲染左下三角,过滤右上半边多余算式;
  3. 动态内联style:style="background-color: {{ rowIdx%2 ===0 ? '#ffad87':'#87c8ff' }}"实现奇偶行切换背景色;
  4. flex 布局:外层 content 纵向排列,每一行 row 横向排列。

pages/index/index.wxml

<navigation-bar title="九九乘法表" back="{{false}}" color="black" background="#FFF"></navigation-bar> <scroll-view class="scrollarea" scroll-y type="list"> <view class="box"> <view class="title">九九乘法口诀表</view> <view class="content"> <!-- 外层循环:行 i,rowIdx为行下标 --> <view class="row" wx:for="{{[1,2,3,4,5,6,7,8,9]}}" wx:for-item="i" wx:for-index="rowIdx"> <!-- 内层循环:列 j --> <view wx:for="{{[1,2,3,4,5,6,7,8,9]}}" wx:for-item="j"> <!-- j<=i才渲染,实现左下三角;动态绑定奇偶行背景色 --> <view wx:if="{{j <= i}}" class="item" style="background-color: {{ rowIdx%2 ===0 ? '#ffad87':'#87c8ff' }};"> {{j}}*{{i}}={{i*j}} </view> </view> </view> </view> </view> </scroll-view>

app.wxss 全局样式

.box { margin: 20rpx; padding: 20rpx; border: 4rpx solid pink; } .title { font-size: 40rpx; font-weight: bolder; text-align: center; margin-bottom: 30rpx; color: red; }

pages/index/index.wxss 页面局部样式

/**index.wxss**/ page { height: 100vh; display: flex; flex-direction: column; } .scrollarea { flex: 1; overflow-y: hidden; } .content { display: flex; flex-direction: column; } .row { display: flex; flex-direction: row; flex-wrap: nowrap; justify-content: start; } .item { width: 64rpx; border: 1rpx solid blue; font-size: 20rpx; padding: 6rpx; }

三、实现效果

四、核心知识点详解

1. wx:for 列表渲染

  • wx:for="{{[1,2,3,4,5,6,7,8,9]}}"直接写字面量数组,循环 1‑9;
  • wx:for-item="i":自定义循环变量名字,避免嵌套循环变量名冲突;
  • wx:for-index="rowIdx":拿到当前循环的下标索引;

⚠️嵌套循环一定要给每一层起不同 item 名字,否则内外层变量会覆盖,出现逻辑错误。

2. wx:if 条件渲染

wx:if="{{j <= i}}":只有列 j 小于等于行 i 的时候才渲染表达式,实现九九乘法表的左下三角效果,右上角不会出现多余式子。

wx:if为 false 会直接销毁组件,不是简单display:none隐藏。

3. 动态 style 实现奇偶行变色

style="background-color: {{ rowIdx%2 ===0 ? '#ffad87':'#87c8ff' }}"

三元运算符:

  • rowIdx%2===0:下标偶数(第 1、3、5、7、9 行),使用橘色#ffad87;
  • 下标奇数(2、4、6、8 行),使用浅蓝色#87c8ff。

4. flex 布局分工

  • .content:flex‑direction:column,纵向,控制所有行从上到下;
  • .row:flex‑direction:row,横向,一行内算式从左到右依次排列;
  • flex‑wrap:nowrap禁止换行,保证同一行所有算式挤在同一行。

5. 页面横屏配置 index.json

{"pageOrientation":"landscape"}

landscape开启横屏,乘法表宽度很大,横屏展示效果更友好。

五、作业扩展实现说明

  1. 奇偶行不同背景色通过外层循环的rowIdx行下标取模运算,三元表达式动态绑定style背景色。
  2. 每个算式增加边框在.item样式增加border:1rpx solid blue;,给每一个乘法表达式增加蓝色边框。

六、踩坑记录

  1. 嵌套 wx:for 忘记重命名 item:内外层都用默认item变量,变量互相覆盖,乘法表错乱。嵌套循环必须写wx:for‑item区分变量名。
  2. 乘法表排版错乱:row 样式忘记设置flex‑wrap:nowrap导致自动换行。
  3. 横屏不生效:没有在index.json配置pageOrientation:"landscape",写在 app.json 无效,该属性是页面级配置。
  4. 样式错乱:app.json 忘记配置renderer:"webview",会出现部分组件、样式兼容性 bug。

七、总结

九九乘法表是小程序嵌套列表渲染非常经典的练手案例。

  • wx:for负责重复生成 UI;
  • wx:if做条件过滤;
  • wx:for‑item解决嵌套循环变量冲突;
  • 内联style可以在模板中做简单动态样式;
  • flex 灵活控制行列横竖布局。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/22 2:21:10

人工智能怎么做数据分析?从准备到出报告的实操指南

数据分析真正耗时的&#xff0c;从来不是「算」&#xff0c;而是「找数、对齐口径、把结果摆成能汇报的样子」。这篇按准备工作、操作步骤、注意事项、常见问题四段写&#xff0c;给一套能直接照着跑的流程&#xff0c;并说清用人工智能做数据分析时&#xff0c;哪些事该机器做…

作者头像 李华
网站建设 2026/10/22 2:21:10

高温压力化成设备技术解析:温控、压力控制与工艺验证

1. 工艺概念高温压力化成通常是指将化成充放电程序与特定温度、压力条件结合起来执行的一类工艺配置。温度可能影响电芯内部的电化学反应和界面反应过程&#xff0c;压力则可能影响电芯的机械状态和受力情况。但具体作用与电芯材料体系、结构设计和工艺目标有关&#xff0c;不能…

作者头像 李华
网站建设 2026/10/22 2:20:26

95 跨进程抢资源怎么锁?这个Java Redis分布式锁工具类有8个方法

&#x1f4cc; 人工智能&#xff1a; 「AI大模型」AI数据分析助手保姆级文档 &#x1f4cb; 目录 一、工具类功能二、所需环境三、方法与调用示例&#xff08;按需调用&#xff09;四、工具类源码&#xff08;可直接复制&#xff09; 一、工具类功能 加锁走 SET key token …

作者头像 李华
网站建设 2026/10/22 2:20:24

HTTP协议安全入门:从请求走私到CRLF

一个让我加了两天班的“小问题”上个月排查一个线上问题&#xff0c;前端网关日志显示请求正常&#xff0c;后端服务却返回了不该返回的数据。查了两天&#xff0c;最后发现是一个被中间代理“吞掉”的请求边界问题——说白了&#xff0c;就是请求走私的变种。 这件事之后我把H…

作者头像 李华
网站建设 2026/10/22 2:17:53

品牌战略咨询公司怎么收费该怎么选?价格区间与交付内容一次说清

品牌战略咨询公司怎么收费、怎么选&#xff1f;四个价格区间与交付内容品牌战略咨询的收费&#xff0c;一直是企业在选择阶段最先问、也最难问清的问题。公开渠道上能查到的报价区间跨度很大&#xff0c;从每年几百万到每年数千万都有。差异来自服务范围、团队配置、项目周期与…

作者头像 李华