• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

微信小程序开发笔记(七)--template模板

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

建议单独创建template目录,在template目录中创建管理模板文件。
由于模板只有wxml、wxss文件,而且小程序开发工具并不支持快速创建模板,因此就需要直接创建wxml、wxss文件了,一个template的模板文件和样式文件只需要命名相同即可。如果模板较多,建议在template目录下再创建子目录,存放单独的模板。

在上篇博客基础上演示,新建template文件夹,再在template文件夹下新建template.wxml和template.wxss。

1.template.wxml:(整行标红的为重要部分),文件中能写多个模板,用name区分。

<!-- pages/template/template.wxml -->
<!-- 模板有name属性 -->
<template name="noData">
    <view>
        暂时没有数据哦!
    </view>
</template>

<!-- 模板有name属性 -->
<template name="data">
    <view class="list" wx:for=\'{{data}}\' wx:key=\'{{key}}\'>
      <view><text>{{item.a}}</text></view>
      <view><text>{{item.b}}</text></view>
      <view><text>{{item.c}}</text></view> 
    </view>
</template>
<!-- 此时循环的data是info{data:[...]} -->

 

2.template.wxss:模板拥有自己的样式文件。

/* pages/template/template.wxss */
.list{
  border-bottom: 1rpx solid #e6e6e6;
  padding: 10rpx 50rpx;
}

 

3.index.wxml:(整行标红的为重要部分)template模板支持独立样式,需要在引用页面的样式文件中进行导入;页面应用template模板需要先导入模板;然后再嵌入模板。

<!-- pages/index/index.wxml -->
<!-- 引入模板的wxml文件 -->
<import src="../template/template.wxml" />
<!--导航菜单-->
<view class="navbar">
    <!--循环-->
    <view wx:for="{{navbar}}" data-idx="{{index}}" class="item {{currentTab==index ? \'active\' : \'\'}}" bindtap="navbarTap">
        <view class="notice" wx:if="{{count[index]>0}}">{{count[index]}}</view>
        <text>{{item}}</text>
    </view>
</view>

<!--全部-->
<view hidden="{{currentTab !== 0}}">
    <template is="{{info0.data.length> 0 ? \'data\' : \'noData\'}}" data="{{...info0}}"></template>
    <!-- 此时进行判断该用哪个模板->判断template 的name属性,eg是指要传入模板的数据 -->
</view>

<!--支出-->
<view hidden="{{currentTab !== 1}}">
    <template is="{{info1.data.length> 0 ? \'data\' : \'noData\'}}" data="{{...info1}}"></template>
    <!-- 此时进行判断该用哪个模板->判断template 的name属性,eg是指要传入模板的数据 -->
</view>

<!--收入-->
<view hidden="{{currentTab !== 2}}">
    <template is="{{info2.data.length> 0 ? \'data\' : \'noData\'}}" data="{{...info2}}"></template>
    <!-- 此时进行判断该用哪个模板->判断template 的name属性,eg是指要传入模板的数据 -->
</view>

<!--其他-->
<view hidden="{{currentTab !== 3}}">
    <template is="{{info3.data.length> 0 ? \'data\' : \'noData\'}}" data="{{...info3}}"></template>
    <!-- 此时进行判断该用哪个模板->判断template 的name属性,eg是指要传入模板的数据 -->
</view>

 

4.index.wxss:(整行标红的为重要部分

/* pages/index/index.wxss */
/* 引入模板的wxss文件 */
@import"../template/template.wxss";

/*圆点数字标注*/
.notice {
  width: 25rpx;
  height: 25rpx;
  color: #fff;
  text-align: center;
  background-color: #1DB1CF;
  border-radius: 50%;
  position: absolute;
  float: left;
  top: 5rpx;
  font-size: 20rpx;
  right: 30rpx;
  line-height: 25rpx;
}

/*顶部导航样式*/
.navbar {
  flex: none;
  display: flex;
  background: #fff;
}

.navbar .item {
  position: relative;
  flex: auto;
  text-align: center;
  line-height: 80rpx;
  font-size: 30rpx;
  color: #666666;
}

.navbar .active {
  font-size: 40rpx;
  color: #1DB1CF;
}

.navbar .active:after {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 4rpx;
  background: #1DB1CF;
}

 

5.index.js:(整行标红的为重要部分

// pages/index/index.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    navbar: [\'全部\', \'支出\', \'收入\', \'其他\'],
    count: [3, 2, 1, 0], //记录不同状态记录的数量
    currentTab: 0,
    info0: {
      data: [{
        a: \'超市消费\',
        b: \'-200元\',
        c: \'2020-04-04 12:30\',
      }, {
        a: \'转账给朋友\',
        b: \'-200元\',
        c: \'2020-04-05 12:30\',
      }, {
        a: \'朋友转账\',
        b: \'+200元\',
        c: \'2020-04-06 12:30\',
      }] //模板页用来展示的数据
    },
    info1: {
      data: [{
        a: \'超市消费\',
        b: \'-200元\',
        c: \'2020-04-04 12:30\',
      }, {
        a: \'转账给朋友\',
        b: \'-200元\',
        c: \'2020-04-05 12:30\',
      }, ] //模板页用来展示的数据
    },
    info2: {
      data: [ {
        a: \'朋友转账\',
        b: \'+200元\',
        c: \'2020-04-06 12:30\',
      } ] //模板页用来展示的数据
    },
    info3: {
      data: [] //模板页用来展示的数据
    },
  },

  //响应点击导航栏
  navbarTap: function (e) {
    var that = this;
    that.setData({
      currentTab: e.currentTarget.dataset.idx
    })
  },

})

官方传送门

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
小程序模板发布时间:2022-07-18
下一篇:
阿里云小程序云应用环境DIY,延长3倍免费期发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap