微信小程序 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 相关文章推荐
JavaScript 利用Cookie记录用户登录信息
Dec 08 Javascript
js实时监听文本框状态的方法
Apr 26 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
Mar 21 Javascript
js实现的点击div区域外隐藏div区域
Jun 30 Javascript
JavaScript跨域方法汇总
Oct 16 Javascript
JS基于面向对象实现的放烟花效果
May 07 Javascript
jQuery+ajax简单实现文件上传的方法
Jun 03 Javascript
微信小程序 css使用技巧总结
Jan 09 Javascript
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
May 19 jQuery
移动前端图片压缩上传的实例
Dec 06 Javascript
JS中的防抖与节流及作用详解
Apr 01 Javascript
Vue js with语句原理及用法解析
Sep 03 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
解析htaccess伪静态的规则
2013/06/18 PHP
开源php中文分词系统SCWS安装和使用实例
2014/04/11 PHP
php分页函数完整实例代码
2014/09/22 PHP
html静态页面调用php文件的方法
2014/11/13 PHP
PHP实现的解汉诺塔问题算法示例
2018/08/06 PHP
JavaScript 计算当天是本年本月的第几周
2009/03/22 Javascript
javascript for循环设法提高性能
2010/02/24 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
js获取网页可见区域、正文以及屏幕分辨率的高度
2014/05/15 Javascript
PhotoShop给图片自动添加边框及EXIF信息的JS脚本
2015/02/15 Javascript
Winform客户端向web地址传参接收参数的方法
2016/05/17 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
如何理解Vue的作用域插槽的实现原理
2017/08/19 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
webpack之引入图片的实现及问题
2018/10/08 Javascript
Vue 样式绑定的实现方法
2019/01/15 Javascript
vue element upload实现图片本地预览
2019/08/20 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
2019/11/01 Javascript
javascript实现随机抽奖功能
2020/12/30 Javascript
pip安装python库的方法总结
2019/08/02 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
2020/06/17 Python
解决Django响应JsonResponse返回json格式数据报错问题
2020/08/09 Python
【HTML5】3D模型--百行代码实现旋转立体魔方实例
2016/12/16 HTML / CSS
LivingSocial英国:英国本地优惠
2019/02/22 全球购物
店长岗位的工作内容
2013/11/12 职场文书
餐厅总厨求职信
2014/03/04 职场文书
商务英语广告词大全
2014/03/18 职场文书
基层领导干部“四风”问题批评与自我批评
2014/09/23 职场文书
设备收款委托书范本
2014/10/02 职场文书
刑事附带民事诉讼答辩状
2015/05/22 职场文书
辣妈辣妹观后感
2015/06/10 职场文书
民政局未婚证明
2015/06/15 职场文书
电力企业职工培训心得体会
2016/01/11 职场文书
2016思想纪律作风整顿心得体会
2016/01/23 职场文书
Python中基础数据类型 set集合知识点总结
2021/08/02 Python