微信小程序 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 相关文章推荐
js中自定义方法实现停留几秒sleep
Jul 11 Javascript
使用jQuery.wechat构建微信WEB应用
Oct 09 Javascript
JavaScript-html标题滚动效果的简单实现
Sep 08 Javascript
基于Layer+jQuery的自定义弹框
May 26 Javascript
JS正则替换掉小括号及内容的方法
Nov 29 Javascript
vue2.X组件学习心得(新手必看篇)
Jul 05 Javascript
jQuery实现的简单动态添加、删除表格功能示例
Sep 21 jQuery
BootStrap自定义popover,点击区域隐藏功能的实现
Jan 23 Javascript
微信小程序实现发红包功能
Jul 11 Javascript
js 实现在2d平面上画8的方法
Oct 10 Javascript
微信小程序实现注册登录功能(表单校验、错误提示)
Dec 10 Javascript
jQuery三组基本动画与自定义动画操作实例总结
May 09 jQuery
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创建桌面快捷方式的实例代码
2014/02/17 PHP
PHP使用pear自带的mail类库发邮件的方法
2015/07/08 PHP
js中indexof的用法详细解析
2013/12/24 Javascript
详解jQuery中的元素的属性和相关操作
2015/08/14 Javascript
js实现横向伸展开的二级导航菜单代码
2015/08/28 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
jquery实现多次上传同一张图片
2017/01/09 Javascript
jQuery实现对象转为url参数的方法
2017/01/11 Javascript
判断横屏竖屏(三种)
2017/02/13 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
webpack学习笔记之优化缓存、合并、懒加载
2017/08/24 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
详解Vuex下Store的模块化拆分实践
2019/07/31 Javascript
js实现无缝轮播图
2020/03/09 Javascript
[01:06:19]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第二场 1月8日
2021/03/11 DOTA
Python Web框架Flask下网站开发入门实例
2015/02/08 Python
pymongo实现控制mongodb中数字字段做加法的方法
2015/03/26 Python
Python中type的构造函数参数含义说明
2015/06/21 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
理解生产者消费者模型及在Python编程中的运用实例
2016/06/26 Python
python爬虫之百度API调用方法
2017/06/11 Python
python使用pipeline批量读写redis的方法
2019/02/18 Python
Python简单I/O操作示例
2019/03/18 Python
python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法
2019/07/03 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
2019/11/07 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
美体小铺英国官网:The Body Shop英国
2017/01/24 全球购物
高级运动鞋:GREATS
2019/07/19 全球购物
俄罗斯GamePark游戏商店网站:购买游戏、游戏机和配件
2020/03/13 全球购物
UNIX特点都有哪些
2016/04/05 面试题
法学专业毕业实习自我鉴定2014
2014/09/27 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
火烧圆明园观后感
2015/06/03 职场文书
启动Tomcat时出现大量乱码的解决方法
2021/06/21 Java/Android
电脑开机弹出documents文件夹怎么回事?弹出documents文件夹解决方法
2022/04/08 数码科技