小程序常用的模板语法

WXML 文件

html 复制代码
<!-- page.wxml -->
<view>
  <!-- 数据绑定: 将数据 message 绑定到视图中 -->
  <view>{{message}}</view>

  <!-- 条件渲染: 根据 isLoggedIn 的值显示不同的内容 -->
  <view wx:if="{{isLoggedIn}}">Welcome back!</view>
  <view wx:else>Please log in.</view>

  <!-- 列表渲染: 遍历 items 数组,并为每个项渲染一个 text 标签 -->
  <view wx:for="{{items}}" wx:key="id">
    <text>{{item.name}}</text>
  </view>

  <!-- 属性绑定: 将 imageUrl 绑定到 image 组件的 src 属性 -->
  <image src="{{imageUrl}}" mode="aspectFill"/>

  <!-- 事件绑定: 点击按钮时触发 handleTap 方法 -->
  <button bindtap="handleTap(2)">Click Me</button>

  <!-- 模板引用: 引用外部定义的 userTemplate 模板并传递数据 -->
  <import src="template.wxml"/>
  <template is="userTemplate" data="{{...user}}"/>
</view>

模板文件 (template.wxml)

html 复制代码
<!-- template.wxml -->
<template name="userTemplate">
  <!-- 模板定义: 渲染传入的 user 数据 -->
  <view>{{user.name}}</view>
</template>

JS 文件

javascript 复制代码
// page.js
Page({
  // 页面初始数据定义
  data: {
    // message: 用于展示在页面中的文本信息
    message: 'Hello, WeChat Mini Program!',

    // isLoggedIn: 控制用户是否已登录的状态
    isLoggedIn: true,

    // items: 存储多个列表项的数据
    items: [
      { id: 1, name: 'Item 1' },
      { id: 2, name: 'Item 2' },
      { id: 3, name: 'Item 3' }
    ],

    // user: 模板引用时传递的用户信息
    user: { name: 'John Doe' },

    // imageUrl: 绑定到 image 组件的图片路径
    imageUrl: '/images/sample.jpg'
  },

  // 事件处理函数: 处理按钮点击事件
  delItems(userId) {
    // 创建一个新的数组副本,过滤掉要删除的用户
    const updatedUsers = this.data.users.filter(user => user.id !== userId);

    // 更新数据
    this.setData({
      items: updatedUsers
    });

    // 通常使用数组方法(如 map、filter)创建数据的副本,以确保不直接修改原数据
  }
})

JSON 文件

javascript 复制代码
{
  // 当前页面所使用的自定义组件
  "usingComponents": {}
}
相关推荐
石小石Orz5 小时前
我发现了开发者AI产品营收的新方向
前端·虚拟现实
老马识途2.05 小时前
关于跨域问题的总结
java·前端
2301_810313186 小时前
宠物服务APP开发宠物社交上门喂养洗护商城系统源码搭建
小程序·团队开发·软件需求·宠物
别惊醒渔人7 小时前
Vue3 Diff 优化:最长递增子序列 LIS
前端·javascript·vue.js
颜酱7 小时前
07 | 把字段与指标同步到 Qdrant(生成阶段)
前端·人工智能·后端
用户059540174467 小时前
把AI长期记忆测试从手动验证换成pytest,2天揪出11个隐藏Bug
前端·css
lichenyang4538 小时前
从 Vite 空项目到 AIGC 图片工作台:我如何打通生图、任务轮询、生成库与 Canvas 动态特效
前端·人工智能
泡沫冰@9 小时前
上章节中文件的讲解
前端·网络·nginx
进击的丸子9 小时前
APP人脸识别增值版Harmony Demo实操与关键代码解析
前端·程序员·harmonyos
a1117769 小时前
唯美花朵风格的黑胶唱片音乐播放器
前端·css·css3