微信小程序通过wx:for做多级树形菜单

首先了解我做的树形是怎样的:(如图所示)
树形菜单
ok,百度一下:微信小程序如何做树形菜单,其中有一个是这样的:大佬的例子
但他这个是vue的,稍微改一下就差不多了,现在了解一下wx:for的语法(暂时没找到官方的,找到再更新)。
代码(只显示2级树形菜单,思路见后面):
wxml(样式直接写了)

<view bindtap="clickTone" style="width: 37vw;height:10vh;display:flex;justify-content: space-between;border-radius: 0.5vw;margin-top: 0.8vw;">
            <view style="display: flex;flex-direction: row;align-items: center;">
              <image src="../../src/static/timbreselect.png" mode="widthFix" style="width: 2vw;margin-left: 1.5vw;"></image>
              <text style="mar
### 小程序外显菜单实现方法 #### 创建基础项目结构 为了构建一个带有外显菜单小程序,首先需要初始化一个新的微信小程序项目。这可以通过微信公众平台上的开发者工具完成。 #### 修改 `app.json` 文件配置 TabBar 在外显菜单中,通常会涉及到底部导航栏的设计。通过编辑项目的根目录下的 `app.json` 文件来定义这些选项卡的行为和外观: ```json { "pages":[ "pages/index/index", "pages/logs/logs" ], "window":{ "backgroundTextStyle":"light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "WeChat", "navigationBarTextStyle":"black" }, "tabBar": { "list": [ { "pagePath": "pages/index/index", "text": "首页", "iconPath": "./images/home.png", "selectedIconPath": "./images/active_home.png" }, { "pagePath": "pages/logs/logs", "text": "日志", "iconPath": "./images/log.png", "selectedIconPath": "./images/active_log.png" } ] } } ``` 此代码片段展示了如何设置两个标签页作为应用程序的底边栏[^2]。 #### 添加自定义样式与逻辑处理 对于更复杂的外显菜单需求,比如树形结构或多级下拉列表,则可能需要用到额外的WXML模板以及WXSS样式表来进行定制化设计。例如,在页面内嵌入可折叠的菜单项可以采用类似下面的方式: ```html <!-- WXML --> <view class="menu"> <block wx:for="{{listData}}" wx:key="title"> <view bindtap="toggleSubMenu">{{item.title}}</view> <template name="submenu" wx:if="{{item.isExpanded}}"> <!-- 这里可以根据子节点是否存在进一步渲染 --> <block wx:for="{{item.children}}" wx:key="title"> <view>{{childItem.title}}</view> </block> </template> </block> </view> ``` ```javascript // JS Logic Page({ data: { listData: [{ /* ... */ }] }, toggleSubMenu(e){ const index = e.currentTarget.dataset.index; let newListData = this.data.listData.map((item, i) => ({ ...item, isExpanded: i === index ? !item.isExpanded : false })); this.setData({ listData: newListData }); } }) ``` 上述例子说明了怎样利用数据绑定机制动态控制菜单条目的显示状态,并响应用户的交互操作[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值