微信小程序开发学习笔记之模板

小程序模板(Template)是一种可复用的WXML代码片段,主要用于展示层(UI)的复用。小程序模板只包含WXML结构,可关联WXSS样式,不包含逻辑(无.js文件),没有独立作用域(样式会继承页面的样式)。

一个小实例

<!-- /templates/items.wxml -->
<template name="items">
  <view>
    <view>收件人: {{name}}</view>
    <view>联系方式: {{phone}}</view>
    <view>地址: {{address}}</view>
  </view>
</template>
<!--index.wxml-->
<import src="/templates/items"></import>
<navigation-bar title="Weixin" back="{{false}}" color="black" background="#FFF"></navigation-bar>
<scroll-view class="scrollarea" scroll-y type="list">
  <template is="items" data="{{...item}}" />

  <view>-------------------------</view>

  <block wx:for="{{items}}" wx:for-item="item">
    <template is="items" data="{{...item}}"></template>
  </block>
</scroll-view>

import与include

import

功能特点:仅能引用目标文件中定义的template模板内容块
引用方式:通过标签的src属性指定模板文件路径
作用域限制:不会引用目标文件中嵌套的其他文件模板,避免死循环问题

include

功能特点:引入目标文件中除template代码块外的所有内容
引用方式:通过标签的src属性指定文件路径(支持绝对/相对路径)
实现机制:相当于将目标文件内容拷贝到include位置
与import区别:不会渲染template定义的内容,如示例中只显示Hello world文本
适用场景:适合引入公共的非模板代码片段

模板可以放在哪

project/
├── pages/                    # 页面文件(主目录)
│   ├── template/           # 页面级模板
│   │   ├── list-item.wxml  # 列表项模板
│   │   └── modal.wxml      # 弹窗模板
│   └── index/
│       ├── index.wxml
│       └── index.js
│
├── components/              # 组件目录(推荐)
│   ├── common/             # 通用组件
│   │   ├── loading/
│   │   └── toast/
│   └── business/           # 业务组件
│
├── template/               # 专用模板目录(可选)
│   ├── list-tpl/          # 列表模板
│   │   ├── list-tpl.wxml
│   │   ├── list-tpl.wxss
│   │   └── list-tpl.js
│   └── card-tpl/
│
└── utils/                  # 工具函数

组件化的方式

components/
├── template-list/         # 列表模板组件
│   ├── index.wxml        # 模板结构
│   ├── index.wxss        # 模板样式
│   ├── index.js          # 模板逻辑
│   └── index.json        # 组件配置
└── template-modal/       # 弹窗模板组件

如果使用组件化的方式,使用方式就类似于官方的导航组件了:

// page.json
{
  "usingComponents": {
    "product-card": "/components/template-list/index"
  }
}

标签: 微信

移动端可扫我直达哦~

推荐阅读

thumbnail 2026-01-16

小程序的navigation-bar组件高度的计算与使用

博主只是想实现一个听写的小功能,所以并不需要过多的拓展,官方导航组件就很好用。就是从网页端换到了小程序端,不太清楚如何去计算这个navigation-bar的高度,好在现在有ai工具,特别deepseek是触手可及的好工具。白天刷到一...

建站相关 微信

thumbnail 2026-01-11

小鸟听写音频服务器的搭建流程

安装ffmpeg服务器用的阿里云,因为pip仓库里没有python的ffmpeg模块,所以退求其次,准备利用静态编译好的版本,上传到服务器之后,利用下面的命令解压缩:tar -xf ffmpeg-n7.1-62-gb168ed9b14...

建站相关 微信

thumbnail 2026-01-05

模拟器空白?win7环境下的微信小程序开发

小鸟数据的服务器到期,更换了阿里云的99计划的服务器,配置是稍微高了一点,但公网ip有点大问题,起初只是发现没办法curl访问一些常用的外部站点,这还只是小事,用一个本地linux小主机获取数据自动上传到阿里云就解决了。近期又发现,更...

建站相关 微信