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


Posted in Javascript onMarch 09, 2017

微信小程序 template模板详解

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

微信小程序 template模板详解及实例代码微信小程序 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");

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

Javascript 相关文章推荐
在jquery boxy中添加百度地图坐标拾取注意流程
Apr 03 Javascript
模拟一个类似百度google的模糊搜索下拉列表
Apr 15 Javascript
jQuery使用fadeout实现元素渐隐效果的方法
Mar 27 Javascript
JavaScript改变CSS样式的方法汇总
May 07 Javascript
jQuery加载及解析XML文件的方法实例分析
Jan 22 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
Feb 27 Javascript
浅谈JsonObject中的key-value数据解析排序问题
Dec 06 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
Dec 30 Javascript
vue基于两个计算属性实现选中和全选功能示例
Feb 08 Javascript
vue slot与传参实例代码讲解
Apr 28 Javascript
浅谈vue3中effect与computed的亲密关系
Oct 10 Javascript
JavaScript this使用方法图解
Feb 04 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图的组合双轴图效果示例【附demo源码下载】
Mar 09 #Javascript
canvas实现爱心和彩虹雨效果
Mar 09 #Javascript
vue如何实现observer和watcher源码解析
Mar 09 #Javascript
详解VueJs异步动态加载块
Mar 09 #Javascript
微信小程序 设置启动页面的两种方法
Mar 09 #Javascript
js实现登录框鼠标拖拽效果
Mar 09 #Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
Mar 09 #Javascript
You might like
如何把PHP转成EXE文件
2006/10/09 PHP
台湾中原大学php教程孙仲岳主讲
2008/01/07 PHP
服务器web工具 php环境下
2010/12/29 PHP
LotusPhp笔记之:基于ObjectUtil组件的使用分析
2013/05/06 PHP
PHP操作Memcache实例介绍
2013/06/14 PHP
PHP mail()函数使用及配置方法
2014/01/14 PHP
PHP大神的十大优良习惯
2016/09/14 PHP
IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素
2011/07/31 Javascript
js实现类似jquery里animate动画效果的方法
2015/04/10 Javascript
jquery实现简洁文件上传表单样式
2015/11/02 Javascript
node.js插件nodeclipse安装图文教程
2020/10/19 Javascript
js实现四舍五入完全保留两位小数的方法
2016/08/02 Javascript
VUE 实现滚动监听 导航栏置顶的方法
2018/09/11 Javascript
jQuery实现点击图标div循环放大缩小功能
2018/09/30 jQuery
VSCode Vue开发推荐插件和VSCode快捷键(小结)
2020/08/08 Javascript
Python编写检测数据库SA用户的方法
2014/07/11 Python
Python实现抓取网页并且解析的实例
2014/09/20 Python
用python读写excel的方法
2014/11/18 Python
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
2017/11/24 Python
Python爬虫实现简单的爬取有道翻译功能示例
2018/07/13 Python
Python中logger日志模块详解
2020/08/04 Python
python 星号(*)的多种用途
2020/09/21 Python
html5版canvas自由拼图实例
2014/10/15 HTML / CSS
浅谈HTML5 &amp; CSS3的新交互特性
2016/07/19 HTML / CSS
Clarisonic美国官网:科莱丽声波洁面仪
2017/10/12 全球购物
什么是makefile? 如何编写makefile?
2012/08/08 面试题
办公室年终个人自我评价
2013/10/28 职场文书
培训主管岗位职责
2014/02/01 职场文书
怎么写好自荐书
2014/03/02 职场文书
租房协议书
2014/04/10 职场文书
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
运动会稿件100字
2014/09/24 职场文书
财政局党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
安全生产工作汇报
2014/10/28 职场文书
2019年关于小学生课外阅读情况的分析报告
2019/12/02 职场文书
一文搞懂python异常处理、模块与包
2021/06/26 Python