微信小程序 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 相关文章推荐
ASP中进行HTML数据及JS数据编码函数
Nov 11 Javascript
jquery中$.post()方法的简单实例
Feb 04 Javascript
搭建pomelo 开发环境
Jun 24 Javascript
使用documentElement正确取得当前可见区域的大小
Jul 25 Javascript
10个很棒的jQuery代码片段
Sep 24 Javascript
浅析创建javascript对象的方法
May 13 Javascript
Vue.js 父子组件通讯开发实例
Sep 06 Javascript
javascript 注释代码的几种方法总结
Jan 04 Javascript
jQuery设计思想
Mar 07 Javascript
Vue自定义toast组件的实例代码
Aug 15 Javascript
微信小程序vant弹窗组件的实现方式
Feb 21 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
May 29 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 dirname(__FILE__) 获取当前文件的绝对路径
2011/06/28 PHP
php ci框架中加载css和js文件失败的解决方法
2014/03/03 PHP
PHP5.5和之前的版本empty函数的不同之处
2014/06/13 PHP
在Debian系统下配置LNMP的教程
2015/07/09 PHP
php+MySQL实现登录时验证登录名和密码是否正确
2016/05/10 PHP
关于PHP文件的自动运行方法分析
2016/05/13 PHP
PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)
2017/06/16 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
用cookies实现的可记忆的样式切换效果代码下载
2007/12/24 Javascript
jquery 操作单选框,复选框,下拉列表实现代码
2009/10/27 Javascript
用js+iframe形成页面的一种遮罩效果的具体实现
2013/12/31 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
js正则表达式验证邮件地址
2015/11/12 Javascript
浅谈jquery之on()绑定事件和off()解除绑定事件
2016/10/26 Javascript
Bootstrap CSS组件之输入框组
2016/12/17 Javascript
angular实现IM聊天图片发送实例
2017/05/08 Javascript
Node.js API详解之 readline模块用法详解
2020/05/22 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
常见的在Python中实现单例模式的三种方法
2015/04/08 Python
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
2016/06/29 Python
Python遍历文件夹和读写文件的实现方法
2017/05/10 Python
浅谈python jieba分词模块的基本用法
2017/11/09 Python
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
Python IDLE清空窗口的实例
2018/06/25 Python
Python 使用list和tuple+条件判断详解
2019/07/30 Python
python学生管理系统的实现
2020/04/05 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
专科毕业生求职简历的自我评价
2013/10/12 职场文书
计算机网络及管理学专业求职信
2014/06/05 职场文书
委托书的写法
2014/09/16 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
项目合作意向书
2015/05/08 职场文书
挂职锻炼工作总结2015
2015/05/28 职场文书
2015年教师党员个人总结
2015/11/24 职场文书
标准演讲稿格式结尾应该怎么书写?
2019/07/17 职场文书
python实现简单倒计时功能
2021/04/21 Python