微信小程序~利用模板实现《福利》页面的网格布局

article/2025/9/28 2:41:02

什么是模板?

在微信小程序中,使用template来表示模板

为什么要使用模板?

使用模板文件能够降低代码重构,提高代码的复用性。

如何使用?

  • 页面内使用:在页面内直接声明一个template并且引用代码如下:
<import src="../welfare-item/welfare-item-template.wxml" />
<template name="welfareGridTemplate"><view class="grid-container"><block wx:for="{{welfares}}" wx:for-item="welfare"><view class="single-view-container"><template is="welfareItemTemplate" data="{{...welfare}}" /></view></block></view>
</template>
  • 引用模板的方式:<import src="../welfare-item/welfare-item-template.wxml" />如果模板template中的控件也有样式,那么在使用该模板的样式布局中也需要引入模板样式到当前样式下,引入格式形如:@import "../welfare-item/welfare-item-template.wxss";

上面的模板中使用了<block></block>,那么block是一个组件吗?还用到了<template is="welfareItemTemplate" data="{{...welfare}}" />这又是什么意思呢?

  • <block/> 并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,也就是不会显示在界面上,多和for循环一块使用。
  • template中的is属性对应的值表示在此处要引入的模板名字。
  • template中的data属性对应的值{{...welfare}}表示将对象传递进去给模板中使用。千万不能漏了对象前面的三个点

实现的最终效果图

非常感谢干货集中营提供的API,谢谢!

福利

实现分析

通过效果图,我们可以将该效果拆分为两个小模板去实现。一个是单个图片,另一个是两列图片也就是网格效果。

为什么要这么拆分呢?因为拆分的单元越小,能够组合使用的范围就越大。比如:如果还有其他页面也要实现一张图片这个效果,直接引入模板即可。当然一张图片这个模板还是太简单了,如果模板中还有多个元素,就能体现出该模板的便利了。当然也不是说元素越多的模板越好,模板是为了复用,能够适用多个地方的模板才是好的模板。

实现

先来看下目录结构:(实现网格图片主要是荧光笔圈中的范围)
目录

图中·welfare-item文件夹存放的是单个图片的模板,welfare-grid是存放两张图片做成的网格模板。在每个模板中都有自己的样式,所以在引入模板的时候也要引入该样式。

模板文件的命名最好是: 具体功能_template

一张图片的模板代码如下:welfare-item-template.wxml

<template name="welfareItemTemplate"><view class="welfare-container" catchtap="onWelfareTap" data-welfareId="{{_id}}"><image class="welfare-img" src="{{url}}"></image></view>
</template>

这里使用了一个属性data-welfareId="{{_id}}",这里主要是给该张图片传递一个id,用于在点击该张图片的时候能够通过_id来确定点击的是那张图片。这是数据传递方式的一种,叫做页面传递。

到目前为止模拟器上一切显示ok,但是我的在 Android 真机上显示不出图片,具体原因,目前没找到,网上有说是图片链接域名没有备案?这个没去验证,有解决办法的朋友望告知一声,谢谢了!

其他页面布局都很相似了,可以尝试着去实现,需要具体代码可以联系我,或者是待我完成整个系列后上传到 GithHub

联系方式:微信号 weixin1105894953(联系时请备注)


http://chatgpt.dhexx.cn/article/g2C7SVQW.shtml

相关文章

【HTML/CSS】网格布局小案例

代码如下&#xff08;可以改动精简一些&#xff0c;我不想改了&#xff0c;改一下估计50行就够了&#xff09;&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compati…

微信小程序第三天(布局:栅格布局)

我根据微信小程序的特点弄了一套简单的栅格布局。 .row {display: block;margin: 0px; }.col {display: flex;font-family: -apple-system-font, "Helvetica Neue", sans-serif;font-size: 17px; }.col>.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7,…

HTML5 网页栅格布局

栅格布局&#xff1a;也称为网格系统&#xff0c;运用固定的格子设计版面布局。 Demo <!DOCTYPE HTML> <html><head><meta charset"UTF-8"/><title>栅格布局</title><style type"text/css">/*清空所有标签外边…

小程序宫格布局

之前写小程序的时候用了iview的宫格&#xff0c;好像跳过了很多要自己写的坑&#xff0c;今天测试了下&#xff0c;总结一下方法。注意小程序中flex和grid的用法有很多不一眼&#xff01;小心甄别&#xff01; 1.使用iview 去iview weapp github 引入index.json {"us…

Grid 布局 - 网格布局

目录 一、什么是Grid布局 二、容器属性值 2.1 grid-template-rows和grid-template-columns 2.1.1 grid-template-columns 2.1.2 grid-template-rows 2.2 row-grap和column-grap 2.2.1 row-grap 2.2.2 column-grap 2.3 grid-template-area 2.4 grid-auto-flow 2.5 just…

微信小程序----Grid(九宫格)(flex实现九宫格布局)

效果二维码 效果图 WXML <view class"section"><view class"tui-table-view"><view class"tui-col-3"><icon class"iconfont icon-shouye"></icon><view>Home</view></view><vie…

前端网格布局grid

网格布局 <style> .container {border:none;display: grid;height: 600px;grid-template-columns: 200px 1fr; /*两列&#xff0c;第一列200px&#xff0c;第二列自适应*/grid-template-rows: 50px 1fr 30px; /*三行&#xff1a;第一行&#xff1a;50px,第二行&#…

css【详解】grid布局—— 网格布局(栅格布局)

网格布局&#xff08;Grid&#xff09;是最强大的 CSS 布局方案 grid布局 和 flex布局的区别 Flex 布局是轴线布局&#xff0c;只能指定"项目"针对轴线的位置&#xff0c;可以看作是一维布局。 Grid 布局则是将容器划分成"行"和"列"&#xff0c…

微信小程序布局技巧(一)

微信小程序布局技巧&#xff08;一&#xff09; 前言小程序布局方式Block布局方式flex布局方式wxss添加样式wxml应用样式效果 flex布局种类justify-content属性align-items属性flex-wrap 属性 应用尾巴 前言 友情提示&#xff0c;阅读本文之前&#xff0c;可能需要有一点微信小…

微信小程序中通过flex实现网格布局(一)

这篇文章主要是通过flex布局实现网格布局。 准备知识&#xff1a; 数组的undefined的问题 一般来说&#xff0c;网格布局是特殊的列表&#xff0c;后台返回的数据是一维数组。而我们通常使用wx:for的方式将数据填充进去。数据格式如下&#xff1a; let dataList [a,b,c,d]d…

网格布局,实现网页图片不规则排版

1、网格布局的含义&#xff0c;及与弹性盒布局的区别 含义&#xff1a;它将网页划分成一个个网格&#xff0c;可以任意组合不同的网格&#xff0c;做出各式各样的布局&#xff1b; 区别&#xff1a;Grid布局与Flex布局有一定的相似性&#xff0c;都可以指定容器内部多个项目的…

6、微信小程序的布局

文章目录 前言一、传统基本布局1.盒子模型2.显示方式Display3.定位position4.溢出属性Overflow5.浮动Float6.对齐 二、Flex弹性布局1.基本属性2.使用示例 前言 wxss 指的是 Wei Xin Style Sheet&#xff0c;微信团队定义的一套用以实现小程序布局样式的层叠样式表&#xff0c;…

微信小程序 居中、居右、居底和横向、纵向布局,文字在图片中间,网格布局

微信小程序居中、居右、横纵布局 1、水平垂直居中&#xff08;相对父类控件&#xff09;方式一&#xff1a;水平垂直居中 父类控件&#xff1a; display: flex;align-items: center;//子控件垂直居中justify-content: center;//子控件水平居中width: 100%;height: 400px //注意…

微信小程序居中、居右、居底和横向、纵向布局,文字在图片中间,网格布局

微信小程序居中、居右、横纵布局 1、水平垂直居中&#xff08;相对父类控件&#xff09; 方式一&#xff1a;水平垂直居中 父类控件&#xff1a; display: flex;align-items: center;//子控件垂直居中justify-content: center;//子控件水平居中width: 100%;height: 400px//注…

小程序中的网格布局

在日常小程序开发中,第一个遇到的问题是页面布局的问题。设计师给的设计稿通常是一个静态的图片,我们要把图片转换成实际可以使用的布局。在电商场景中,我们经常会看到商品的两列布局,通常在CSS中,两列布局可以使用网格布局的方案解决。我们本篇就讲解一下CSS的网格布局,…

微信小程序: 使用grid进行网格布局

grid与flex一样用于页面布局。flex用于一维布局&#xff0c;grid用于二维布局。所以有时候一些网格状的布局相对于grid来说会更加方便。 注意&#xff0c;设为网格布局以后&#xff0c;容器子元素&#xff08;项目&#xff09;的float、display: inline-block、display: table-…

Spug - 轻量级自动化运维平台

Spug - 轻量级自动化运维平台 对于中小型企业而言&#xff0c;进行主机和应用的管理是比较麻烦的&#xff0c;应用部署往往需要直接连接服务器&#xff0c;再进行手动的环境配置、代码拉取、应用构建和部署发布等工作&#xff0c;容易出错&#xff0c;且耗时费力。一个好的自动…

网络自动化运维(NetDevOps)创作者推荐

前言&#xff1a; 随着NetDevOps技术登上了历史舞台&#xff0c;越来越多的从业者开始利用NetDevOps简化网络的运维&#xff0c;并进行了技术分享&#xff0c;将蛋糕越做越大。在这里&#xff0c;仅代表个人对这些无私奉献的网络、运维工程师们表达由衷的敬意。 此外&#xff…

开源自动化运维平台Spug

开源自动化运维平台Spug Spug演示环境特性安装Docker安装安装步骤1. 安装docker2. 拉取镜像3. 启动容器4. 初始化5. 访问测试6. 版本升级 Spug Spug是面向中小型企业设计的轻量级无Agent的自动化运维平台&#xff0c;整合了主机管理、主机批量执行、主机在线终端、应用发布部署…

自动化运维工具

自动化运维 通过运维工具或平台&#xff0c;实现IT基础设施及业务应用日常任务处理和运维流程的自动化&#xff0c;从而提高效率和降低风险&#xff0c;促进运维组织的成熟和各种能力的升级。 自动化运维工具 部署类&#xff1a;jenkins 环境类&#xff1a;ansible/saltStac…