微信小程序 template模板详解及实例代码

发布时间 - 2026-01-11 00:05:10    点击率:

微信小程序 template模板详解

如下图,我在做华企商学院小程序的时候,课程搜索结果页和课程列表页结构是完全一样的,这时就非常适合使用模板来完成页面搭建。实现一次定义,到处使用。


模板

一、定义模板

1、新建一个template文件夹用来管理项目中所有的模板;
2、新建一个courseList.wxml文件来定义模板;
3、使用name属性,作为模板的名字。然后在<template/>内定义代码片段。

注意:

a.可以看到一个.wxml文件中可以定义多个模板,只需要通过name来区分;

b.模板中的数据都是展开之后的属性。

<template name="courseLeft">
  <navigator url="../play/play?courseUuid={{courseUuid}}&isCompany={{isCompany}}">
    <view class="item mr26">
      <image src="{{imagePath}}" mode="aspectFill"></image>
      <view class="course-title">
        <text class="title">{{courseName}}</text>
        <text class="author">- {{teacherName}}</text>
      </view>
      <view class="course-info clearfix">
        <view class="fl"><text class="play">{{playCount}}</text></view>
        <view class="fr"><text class="grade">{{score}}</text></view>
      </view>
      <view wx:if="{{studyProgress}}" class="tip-completed">{{studyProgress}}</view>
    </view>
  </navigator>
</template>

<template name="courseRight">
  <navigator url="../play/play?courseUuid={{courseUuid}}&isCompany={{isCompany}}">
    <view class="item">
      <image src="{{imagePath}}" mode="aspectFill"></image>
      <view class="course-title">
        <text class="title">{{courseName}}</text>
        <text class="author">- {{teacherName}}</text>
      </view>
      <view class="course-info clearfix">
        <text class="play fl">{{playCount}}</text>
        <text class="grade fr">{{score}}</text>
      </view>
      <view wx:if="{{studyProgress}}" class="tip-completed">{{studyProgress}}</view>
    </view>
  </navigator>
</template>

二、使用模板

1、使用 is 属性,声明需要的使用的模板

<import src="../../templates/courseList.wxml"/>

2、将模板所需要的 data 传入,一般我们都会使用列表渲染。

<block wx:for="{{courseList}}">
  <template is="{{index%2 === 0 ? 'courseLeft' : 'courseRight'}}" data="{{...item}}"></template>
</block>

注意:

a.可以通过表达式来确定使用哪个模板is="{{index%2 === 0 ? 'courseLeft' : 'courseRight'}}"

或者通过wx:if来确定。index是数组当前项的下标。

<template wx:if="{{index%2 === 0}}" is="courseLeft" data="{{...item}}"></template>
<template wx:else is="courseRight" data="{{...item}}"></template>

b. data 是要模板渲染的数据,data="{{...item}}" 写法是ES6的写法,item是wx:for当前项,... 是展开运算符,在模板中不需要再{{item.courseName}} 而是直接{{courseName}} 。

三、模板样式

1、在新建模板的时候同时新建一个courseList.wxss 的文件,与CSS同样的写法控制样式。

2、在需要使用模板的页面 .wxss文件中import进来;或者直接在app.wxss中引入,这样只需要一次引入,其他文件就不用引入了。

@import url("../template/courseList.wxss");

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# 微信小程序  # template模板详解  # 小程序  # template  # template使用方法  # 微信小程序template模板与component组件的区别和使用详解  # 微信小程序template模版的使用方法  # 微信小程序模板(template)使用详解  # 微信小程序实现给嵌套template模板传递数据的方式总结  # 微信小程序视图template模板引用的实例详解  # 详解微信小程序 template添加绑定事件  # 微信小程序 template模板详解及实例  # 微信小程序template模板引入的问题小结  # 新建一个  # 只需要  # 都是  # 我在  # 多个  # 可以通过  # 希望能  # 可以看到  # 搜索结果  # 不需  # 谢谢大家  # 所需要  # 来完成  # 要再  # 如下图  # 运算符  # 华企  # 引入了  # play  # image 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Bootstrap CSS布局之列表  如何用腾讯建站主机快速创建免费网站?  JavaScript模板引擎Template.js使用详解  Laravel如何处理异常和错误?(Handler示例)  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  长沙企业网站制作哪家好,长沙水业集团官方网站?  大型企业网站制作流程,做网站需要注册公司吗?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  在线制作视频网站免费,都有哪些好的动漫网站?  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  C#如何调用原生C++ COM对象详解  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  手机软键盘弹出时影响布局的解决方法  个人摄影网站制作流程,摄影爱好者都去什么网站?  利用JavaScript实现拖拽改变元素大小  Laravel如何实现模型的全局作用域?(Global Scope示例)  Laravel PHP版本要求一览_Laravel各版本环境要求对照  如何用IIS7快速搭建并优化网站站点?  如何用西部建站助手快速创建专业网站?  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  如何快速选择适合个人网站的云服务器配置?  详解jQuery停止动画——stop()方法的使用  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  如何在Windows服务器上快速搭建网站?  如何在景安服务器上快速搭建个人网站?  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  详解阿里云nginx服务器多站点的配置  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  微信小程序 input输入框控件详解及实例(多种示例)  Python图片处理进阶教程_Pillow滤镜与图像增强  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Thinkphp 中 distinct 的用法解析  Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  百度浏览器如何管理插件 百度浏览器插件管理方法  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  微信小程序 scroll-view组件实现列表页实例代码  简历在线制作网站免费版,如何创建个人简历?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  如何获取PHP WAP自助建站系统源码?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)