微信小程序 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实现的动态文字变换
Jul 28 Javascript
js方法数据验证的简单实例
Sep 17 Javascript
微信小程序 教程之小程序配置
Oct 17 Javascript
Easyui的组合框的取值与赋值
Oct 28 Javascript
获取url中用&amp;隔开的参数实例(分享)
May 28 Javascript
详解用vue.js和laravel实现微信授权登陆
Jun 23 Javascript
JS实现将链接生成二维码并转为图片的方法
Mar 17 Javascript
vue-cli3搭建项目的详细步骤
Dec 05 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
May 07 Javascript
tsconfig.json配置详解
May 17 Javascript
js图片查看器插件用法示例
Jun 22 Javascript
vue跳转方式(打开新页面)及传参操作示例
Jan 26 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
关于BIG5-HKSCS的解决方法
2007/03/20 PHP
PHP zip扩展Linux下安装过程分享
2014/05/05 PHP
php mysql操作mysql_connect连接数据库实例详解
2016/12/26 PHP
函数式 JavaScript(一)简介
2014/07/07 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
JavaScript学习总结之JS、AJAX应用
2016/01/29 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
基于React实现表单数据的添加和删除详解
2017/03/14 Javascript
浅谈在Vue-cli里基于axios封装复用请求
2017/11/06 Javascript
Vue-Router模式和钩子的用法
2018/02/28 Javascript
详解操作虚拟dom模拟react视图渲染
2018/07/25 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
详解小程序BackgroundAudioManager踩坑之旅
2019/12/08 Javascript
[01:35]辉夜杯战队访谈宣传片—iG.V
2015/12/25 DOTA
深入解析Python中的集合类型操作符
2015/08/19 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
2017/07/24 Python
基于python神经卷积网络的人脸识别
2018/05/24 Python
TensorFlow实现简单的CNN的方法
2019/07/18 Python
信号生成及DFT的python实现方式
2020/02/25 Python
简单了解Python write writelines区别
2020/02/27 Python
基于Python数据分析之pandas统计分析
2020/03/03 Python
如何基于线程池提升request模块效率
2020/04/18 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
CSS3 Media Queries详细介绍和使用实例
2014/05/08 HTML / CSS
世界上最大的曲棍球商店:Pro Hockey Life
2017/10/30 全球购物
大学生求职简历的自我评价
2013/10/14 职场文书
环境科学专业优秀毕业生自荐书
2014/02/03 职场文书
六年级学生评语
2014/04/22 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
党支部鉴定意见
2015/06/02 职场文书
关于感恩的歌曲整理(8首)
2019/08/14 职场文书
Django 如何实现文件上传下载
2021/04/08 Python
Python编程super应用场景及示例解析
2021/10/05 Python
HTTP中的Content-type详解
2022/01/18 HTML / CSS
Go获取两个时区的时间差
2022/04/20 Golang