微信小程序 Template详解及简单实例


Posted in Javascript onJanuary 05, 2017

微信小程序 Template

模板

WXML提供模板(Template),可以在模板中定义代码片段,然后在不同的地方使用。可以保证格式以及数据的相同。

1-定义模板

使用`<template name="tempName"></template>`标签定义模板,并将模板名称命名为tempName,赋值给属性name。在标签内部,定义模板结构。如下:

<!-- template.wxml -->
<!-- 
  index: int
  msg: string
  time: string
-->
<template name="msgItem">
  <view>
  <text> {{index}}: {{msg}} </text>
  <text> Time: {{time}} </text>
 </view>
</template>

2-使用模板

使用<template is="tempName" />标签,在需要使用模板的地方。如果要用到js文件中的数据,则需要添加data属性。如下:

<!-- template.wxml -->

<template is="msgItem" data="{{...item}}"/>
<template is="msgItem" data="{{...item}}"/>
<template is="msgItem" data="{{...item}}"/>
此时在页面上就会重复显示三次相同的信息。
data中的数据,来源于js文件,如下:

<!-- template.js -->
Page({
 data: {
  item: {
   index: 0,
   msg: 'this is a template',
   time: '2016-09-15'
  }
 }
})

3-is属性

is属性不仅可以静态的指向渲染的模板,也可以使用Mustache语法,来动态决定具体需要渲染哪个模板。如下:

<!-- template.wxml -->

// templates
<template name="odd">
  <view> odd </view>
</template>
<template name="odd">
  <view> even </view>
</template>

// is属性使用Mustache语法动态渲染template
<block wx:for="{{[1, 2, 3, 4,5]}}">
  <template is="{{item % 2 == 0 ? 'even' : 'odd'}}" />
</block>

如上代码,则会在页面中根据条件来显示odd 或是 even

4-模板的引用

如上都是在同一个wxml文件中定义和引用模板,而模板的定义和引用是可以分开的。即在一个文件中定义模板,而在其他一个或多个文件wxml文件中都可以使用定义好的模板。
从外部文件中引用模板,使用import src="templateUrl" />标签。同样使用is属性来指向要引用的标签。
如目录如下:

-pages
  |--index
    |--index.js
    |--index.json
    |--index.wxml
    |--index.wxss
  |--template
    |--template.js
    |--template.json
    |--template.wxml
    |--template.wxss

要在index.wxml中使用template中定义的模板,则需要先在index中利用import来导入该模板:

<!-- index.wxml -->
<import src="../template/template.wxml"
<template is="msgItem" data={{...indexData}}
// 使用的是自己js文件中的数据

要注意import作用域,其仅仅引用目标文件中template。如:C import B,B import A,在C中可以使用B定义的template,在B中可以使用A定义的template,但是C不能使用A定义的template。

参考

微信小程序文档-框架-视图层-WXML-模板

微信小程序文档-框架-视图层-WXML-引用

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

Javascript 相关文章推荐
JavaScript函数、方法、对象代码
Oct 29 Javascript
javascript 限制输入脚本大全
Nov 03 Javascript
js鼠标左右键 键盘值小结
Jun 11 Javascript
js写一个弹出层并锁屏效果实现代码
Dec 07 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
Feb 04 Javascript
JS 数字转换为大写金额的简单实例
Aug 04 Javascript
微信小程序 switch组件详解及简单实例
Jan 10 Javascript
如何以Angular的姿势打开Font-Awesome详解
Apr 22 Javascript
使用vue-router为每个路由配置各自的title
Jul 30 Javascript
详解微信小程序与内嵌网页交互实现支付功能
Oct 22 Javascript
JS阻止事件冒泡的方法详解
Aug 26 Javascript
js实现表格单列按字母排序
Aug 12 Javascript
echarts3 使用总结(绘制各种图表,地图)
Jan 05 #Javascript
微信小程序 数组中的push与concat的区别
Jan 05 #Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
Jan 05 #Javascript
bootstrap制作jsp页面(根据值让table显示选中)
Jan 05 #Javascript
详解PHP中pathinfo()函数导致的安全问题
Jan 05 #Javascript
jQuery电话号码验证实例
Jan 05 #Javascript
纯原生js实现table表格的增删
Jan 05 #Javascript
You might like
PHP 遍历XP文件夹下所有文件
2008/11/27 PHP
php session处理的定制
2009/03/16 PHP
安装docker和docker-compose实例详解
2019/07/30 PHP
学习YUI.Ext 第二天
2007/03/10 Javascript
jquery 插件开发备注
2010/08/27 Javascript
关于IE BUG与字符串截取substr的解决办法
2013/04/10 Javascript
javascript如何判断输入的url是否正确
2014/04/11 Javascript
AngularJS实现textarea记录只能输入规定数量的字符并显示
2016/04/26 Javascript
javascript实现简单的on事件绑定
2016/08/23 Javascript
浅谈vue-router2路由参数注意的问题
2017/11/08 Javascript
NodeJs生成sitemap站点地图的方法示例
2019/06/11 NodeJs
JavaScript Window浏览器对象模型原理解析
2020/05/30 Javascript
[43:18]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
Python深入学习之装饰器
2014/08/31 Python
Python出现segfault错误解决方法
2016/04/16 Python
详解Python函数可变参数定义及其参数传递方式
2017/08/02 Python
Python基于sklearn库的分类算法简单应用示例
2018/07/09 Python
python实现画五角星和螺旋线的示例
2019/01/20 Python
Python中的random.uniform()函数教程与实例解析
2019/03/02 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
2019/08/06 Python
Python 读取 YUV(NV12) 视频文件实例
2019/12/09 Python
使用Puppeteer爬取微信文章的实现
2020/02/11 Python
详解Pycharm出现out of memory的终极解决方法
2020/03/03 Python
Python爬虫小例子——爬取51job发布的工作职位
2020/07/10 Python
HTML5在手机端实现视频全屏展示方法
2020/11/23 HTML / CSS
Bally巴利中国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/10/09 全球购物
香港零食网购:上仓胃子
2020/06/08 全球购物
注塑工厂厂长岗位职责
2013/12/02 职场文书
招聘与培训专员岗位职责
2014/01/30 职场文书
大学生通用个人的自我评价
2014/02/10 职场文书
课内比教学心得体会
2014/09/09 职场文书
学习雷锋精神倡议书
2015/04/27 职场文书
2016年“6.26”禁毒宣传月系列活动总结
2016/04/05 职场文书
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python
Python可视化神器pyecharts绘制水球图
2022/07/07 Python