模板
WXML提供模板(template),可以在模板中定义代码片段,然后在不同的地方调用。接下来博主将会以图文讲解,然后最后发出源码供大家参考。
文件结构
本文使用的模板类和模板结构如下:
定义模板
template 是一个模板化的技术
使用 name 属性,作为模板的名字。然后在内定义代码片段,如:
这里postItem表示模板名,供其他wxml文件调用、
这个模板类的文件名称,即其他wxml文件使用时,需要如java导包 或者c/ c++引入头文件般,引入文件,然后再根据模板类的名称调用:如下
可以看到的是,这里import 的 post-item-template.xml 正是 上图勾画的模板类文件的名称,
小程序得绝对路径,都是从根目录开始 /xxxx/xxx/xx.xx 必须在目录得最前面加斜杠
然后具体调用如下
然后导入成功经之后,还需要导入模板类的wxss文件,在导入文件相应的wxss文件导入,
而且必须导入到wxss中
wxss导入wxss中
wxml导入wxml中
但是不能抽象js。因此只能叫模板化,不能叫模块化
如下:
template
内路径问题:
使用模板的时候 最好使用绝对路径,这样子对于不同位置的框架调用模板都能够通用了
因为使用template就意味着,view使用了 wx:for 循环,但是这个时候,循环输出的数组只能有一个。也就是意味着, 不管输出什么数据,都必须在数组中,才能识别并且输出
源码
post-item-template.wxml
<template name="postItem"><view class='post-container'><view class='post-author-date'><image src="{{author_img}}" class='post-author'></image><text class='post-date'>{{date}}</text></view><view class='post-container-content'><text class='post-title'> {{post_title}}</text><image src="{{post_image}}" class='post-image'></image><text class='post-text'>{{text}}</text></view><view class='post-container-like'><view class='post-like'><image src='/images/good.png' class='post-like-image'></image><text class='post-like-num'>{{collect_num}}</text></view><view class='post-like'><image src='/images/message.png' class='post-like-image'></image><text class='post-like-num'>{{view_num}}</text></view><view class='post-like'><image src='/images/turn.png' class='post-like-image'></image><text class='post-like-num'>{{turn_num}}</text></view><view class='post-like'><image src='/images/check.png' class='post-like-image'></image><text class='post-like-num'>{{check_num}}</text></view></view></view>
</template>
post-item-template.wxss
.post-container{margin-top: 20px;}
.post-author-date{margin-left: 10rpx;margin-top: 3rpx;margin-bottom: 3rpx;height: 80rpx;}.post-author{height: 60rpx;width: 60rpx;border-radius: 50%;vertical-align: middle;
}.post-date{line-height: 80rpx;margin-left: 15px;font-size: 42rpx;
}.post-image{height: 920rpx;width: 100%;
}.post-text{margin: 10rpx 0 10rpx 10rpx;
}.post-title{font-size: 32rpx;font-weight: bold;margin-left: 15rpx;margin-top: 15rpx;margin-bottom: 15rpx;}.post-like{margin-left: 10px;display: inline;
}
.post-like-image{height: 32rpx;width: 32rpx;vertical-align: middle;
}
.post-like-num{font-size: 25rpx;margin-left: 3rpx;
}
posts.wxml
<import src="posts-item/posts-item-template.wxml" />
<view><swiper catchtap='onswipertap' class='swiper-container' indicator-dots='true' indicator-active-color='green' autoplay='true'><swiper-item><image src='../../images/1.jpg' class='swiper-image' data-postId="0"></image></swiper-item><swiper-item><image src='../../images/2.jpg' class='swiper-image' data-postId="1"></image></swiper-item><swiper-item><image src='../../images/3.jpg' class='swiper-image' data-postId="2"></image></swiper-item><swiper-item><image src='../../images/4.jpg' class='swiper-image' data-postId="3"></image></swiper-item></swiper><block wx:for="{{post_key}}" wx:for-item="item"><!-- //template --><view catchtap='onPostTap' data-postId="{{item.postId}}" data-postName="name"><template is = "postItem" data="{{...item}}" /></view></block></view>
post.wxss
/* pages/posts/posts.wxss */
@import "/pages/posts/posts-item/posts-item-template.wxss";
.swiper-container{width: 100%;height: 920rpx;
}
.swiper-image{width: 100%;height: 920rpx;
}
以下是微信小程序项目源码:点击可以进入gitee直接下载源码包喔
微信小程序演示程序
版权所有,禁止转载,违者必究。
喜欢的朋友可以点赞评论喔,您的支持是我更新最大的动力~