微信小程序提供了模板(template)功能
模板是一种类似于组件的功能,把使用频率高、功能单一的代码定义成模板,然后在需要的地方调用
例如,豆瓣电影中有多个列表页,格式相同,内容不同,于是就可以把列表定义成模板
通过传入不同数据显示不同的列表
在微信小程序中定义模板,使用<template/>
定义代码片段
在标签上通过name属性
定义模板的名字,代码如下
<template name="msgItem">
<view>
<text>{{index}}: {{msg}}</text>
<text>Time: {{time}}</text>
</view>
</template>
在其他页面里通过is属性声明需要使用的模板,然后将模板需要的data传入,代码如下。
<template is="msgItem" data="{{item}}" />
接下来,在list文件夹下新建list-template.wxml文件
使用template标签
创建模板
定义模板名称name="list-template"
,代码如下
list-template.wxml
<template name="list-template">
<scroll-view style="display:inline"
enable-back-to-top scroll-y bindscrolltolower="loadMorePage">
<view class="weui-panel">
<view class="weui-panel__bd">
<navigator wx:for="{{ movies }}"
wx:key="{{ item.id }}"
url="/pages/item/item?id={{ item.id }}"
class="weui-media-box weui-media-box_appmsg"
hover-class="weui-cell_active">
<view class="weui-media-box__hd weui-media-box__hd_in-appmsg"
style="height:inherit;width:120rpx">
<image style="width: 128rpx;height: 168rpx;"
class="weui-media-box__thumb" src="{{ item.images.small }}" />
</view>
<view class="weui-media-box__bd weui-media-box__bd_in-appmsg">
<view class="weui-media-box__title">{{ item.title }}</view>
<view class="weui-media-box__desc">
{{ item.original_title }} ({{ item.year }})
</view>
<view class="weui-media-box__info">
导演:
<block wx:for="{{ item.directors }}"
wx:key="{{ item.id }}"> {{ item.name }}
</block>
</view>
</view>
<view class="weui-media-box__ft">
<view class="weui-badge">{{ item.rating.average }}</view>
</view>
</navigator>
</view>
</view>
</scroll-view>
</template>
list.wxml
<import src="list-template" />
<template is="list-template" data="{{ movies }}" />
首先通过import标签导入模板
然后通过template的is属性声明需要使用的模板
最后把电影数据传入data