微信小程序 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核心支持代码分享
May 23 Javascript
Jquery 跨域访问 Lightswitch OData Service的方法
Sep 11 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
Jun 05 Javascript
实例详解angularjs和ajax的结合使用
Oct 22 Javascript
jQuery添加删除DOM元素方法详解
Jan 18 Javascript
Javascript中apply、call、bind的巧妙使用
Aug 18 Javascript
最全面的百度地图JavaScript离线版开发
Sep 10 Javascript
jsTree事件和交互以及插件plugins详解
Aug 29 Javascript
vue兄弟组件传递数据的实例
Sep 06 Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
Sep 27 Javascript
ES6 如何改变JS内置行为的代理与反射
Feb 11 Javascript
JavaScript实现刮刮乐效果
Nov 01 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 include,include_once,require,require_once
2008/09/05 PHP
php基础教程
2015/08/26 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
[原创]PHP实现SQL语句格式化功能的方法
2017/07/28 PHP
laravel按天、按小时,查询数据的实例
2019/10/09 PHP
slice函数的用法 之不错的应用
2006/12/29 Javascript
浅谈tudou土豆网首页图片延迟加载的效果
2010/06/23 Javascript
异步加载script的代码
2011/01/12 Javascript
extjs_02_grid显示本地数据、显示跨域数据
2014/06/23 Javascript
JavaScript设计模式学习之“类式继承”
2015/03/12 Javascript
jquery实现简单实用的弹出层效果代码
2015/10/15 Javascript
使用Web Uploader实现多文件上传
2016/06/08 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
原生js轮播(仿慕课网)
2017/02/15 Javascript
AngularJS读取JSON及XML文件的方法示例
2017/05/25 Javascript
JavaScript方法_动力节点Java学院整理
2017/06/28 Javascript
Vue+ElementUI实现表单动态渲染、可视化配置的方法
2018/03/07 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
2018/09/20 Javascript
Vue组件Draggable实现拖拽功能
2018/12/01 Javascript
Vue-CLI3.x 设置反向代理的方法
2018/12/06 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
Python正则表达式非贪婪、多行匹配功能示例
2017/08/08 Python
python生成以及打开json、csv和txt文件的实例
2018/11/16 Python
Keras使用tensorboard显示训练过程的实例
2020/02/15 Python
Python Selenium安装及环境配置的实现
2020/03/17 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
2020/06/01 Python
python要安装在哪个盘
2020/06/15 Python
高山背包:High Sierra
2017/11/23 全球购物
阿根廷票务网站:StubHub阿根廷
2018/04/13 全球购物
美国轮胎网站:Priority Tire
2018/11/28 全球购物
四好少年事迹材料
2014/01/12 职场文书
四川成都导游欢迎词
2014/01/18 职场文书
团支部推优材料
2014/05/21 职场文书
小学英语课教学反思
2016/02/15 职场文书
Python NumPy灰度图像的压缩原理讲解
2021/08/04 Python