WXML 编写规范

名称

WXML 编写规范

分类

rules

路径

rules/wxml.mdc

描述

微信小程序 WXML 编写规范

WXML 编写规范

基本语法规范

  • 使用小写标签名和属性名
  • 属性值必须用双引号包围
  • 自闭合标签使用 <tag /> 格式
  • 保持标签的正确嵌套和闭合
  • 合理使用缩进,保持代码层次清晰

数据绑定

  • 使用 {{}} 进行数据绑定,表达式内避免复杂逻辑
  • 布尔属性使用 attr="{{condition}}" 格式
  • 事件绑定使用 bind:catch: 前缀
  • 避免在模板中进行复杂的数据处理,应在 JS 中预处理

条件渲染

  • 简单条件使用 wx:if,复杂条件在 JS 中处理后绑定布尔值
  • wx:ifhidden 的选择:频繁切换用 hidden,条件较少变化用 wx:if
  • 多条件分支使用 wx:ifwx:elifwx:else
  • 避免过深的条件嵌套,考虑拆分为子组件

列表渲染

  • 必须设置 wx:key,优先使用唯一标识符
  • wx:for-itemwx:for-index 使用有意义的名称
  • 避免在循环中嵌套复杂逻辑,考虑使用子组件
  • 长列表考虑使用虚拟列表或分页加载

组件使用

  • 组件标签名使用 kebab-case 格式
  • 属性传递使用描述性名称
  • 事件监听使用 bind: 前缀,事件名使用 kebab-case
  • 合理使用 slot 进行内容分发

样式类名

  • 类名使用 kebab-case 格式
  • 避免使用内联样式,统一在 WXSS 中定义
  • 使用 TDesign 提供的工具类和组件类名
  • 自定义类名应具有语义化

性能优化

  • 减少不必要的节点嵌套
  • 合理使用 wx:ifhidden 控制渲染
  • 避免在模板中使用复杂表达式
  • 图片懒加载使用 lazy-load 属性

无障碍访问

  • 为交互元素添加 aria-label 属性
  • 使用语义化标签,如 buttonnavigator
  • 确保键盘导航的可用性
  • 为图片添加 alt 属性描述

代码组织

  • 模板结构应与页面/组件的逻辑结构保持一致
  • 相关的元素应当组织在一起
  • 使用注释标记复杂的模板区块
  • 保持模板的简洁性,复杂逻辑拆分为子组件