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

article/2025/9/28 3:50:19

这篇文章主要是通过flex布局实现网格布局。

准备知识:

  • 数组的undefined的问题

一般来说,网格布局是特殊的列表,后台返回的数据是一维数组。而我们通常使用wx:for的方式将数据填充进去。数据格式如下:

 let dataList = ['a','b','c','d']dataList.forEach(item => {console.log('item',item)}	)输出结果如下:
item a
item b
item c
item d

在微信小程序中数组赋值和取值有两种情况,一种是该位置没有赋值,一种是取值的索引超出了数组长度,这两种情况具体表现如下:

  1. 数组赋值时候没有赋值的情况:
let dataList = ['a','b',,'c','d',undefined]
dataList[7] = 'f'
console.log('dataList-length',dataList.length)for(let i = 0; i < dataList.length; i++){console.log('item-for',`index:${i} value:${dataList[i]}`)
}dataList.forEach(item => {console.log('item-forEach',item)}	)输出结果如下:
dataList-length 8
item-for index:0 value:a
item-for index:1 value:b
item-for index:2 value:undefined
item-for index:3 value:c
item-for index:4 value:d
item-for index:5 value:undefined
item-for index:6 value:undefined
item-for index:7 value:f
item-forEach a
item-forEach b
item-forEach c
item-forEach d
item-forEach undefined
item-forEach f

可以看到没有赋值的地方默认为undefined (注意该undefined与数组中赋值的undefined意义不同),而forEach直接略过了没有赋值的位置。

  1. 数组取值的范围超过的数组的长度:
let dataList = ['a','b']
console.log('dataList-length',dataList.length)
console.log('获取第length+1为数组内容',dataList[dataList.length+1])输出结果如下:
dataList-length 2
获取第length+1为数组内容 undefined
  • 微信小程序中列表渲染遇到数组内容为undefined的情况
    代码如下:
index.js:
dataList: ['a',,'b','c']index.wxml:
<view wx:for='{{dataList}}'><view wx:if='{{index === 2}}'>{{dataList[dataList.length+1]}}</view><view wx:else>{{item}}</view></view>

在这里插入图片描述
由此可以知道,有两种情况:

  1. 当数组初始化后,没有赋值的位置,在列表渲染的时候得到的结果为null
  2. 当数组初始化完成后,在列表渲染的时候,所取的索引位置超过了数组长度,本次view渲染将不再渲染

网格布局的实现

现在将利用上面的结论和flex布局渲染一个每行显示两个元素的网格页面

index.js:dataList: ['a','b','c','d','e','f']index.wxml:
<view class='grid' wx:for='{{dataList}}' wx:if='{{index%2 === 0}}'><view wx:for='{{[dataList[index], dataList[index+1]]}}' wx:for-item='dataItem'>{{dataItem}}</view></view>index.wxss:.grid{display: flex;justify-content: space-around;
}

在这里插入图片描述

end…


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

相关文章

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

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…

关于自动化运维的那些事儿

随着近年全球运维大会的火热举办&#xff0c;自动化运维话题被推向了前所未有地热度。自动化运维并不是炒作的概念&#xff0c;而是随着信息技术发展的必要趋势。“大数据”“容器”“DevOps”“微服务”……&#xff0c;不断涌现出新的技术&#xff0c;而它们都有共同的特点&a…

部署自动化运维工具rundeck

简单介绍&#xff1a; RunDeck 是用 Java/Grails 写的开源工具&#xff0c;帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面&#xff0c;用户可以对任意数量的服务器进行操作&#xff0c;大大降低了对服务器自动化的门槛。 官网地址&#xff1a…

python自动化运维学习

1.python能做什么&#xff1f; 2.解释型与编译型语言的区别&#xff1f; 3.动态型与静态型语言的区别&#xff1f; 4.ASCLL Unicode GBK UTF-8之间的联系 ASCLL码是最初被创建出来表示字符的&#xff0c;总共255个。每个占1字节---》字符不够用---》单独的中文编码GBK&#xff…

一站式自动化运维及自动化部署平台

真正的大师,永远都怀着一颗学徒的心&#xff01; 一、项目简介 一站式自动化运维及自动化部署平台 二、实现功能 支持机器管理&#xff08;环境变量、机器秘钥、终端日志、终端会话、机器代理&#xff09; 支持调度任务 支持执行管理 支持应用管理 支持构建发布 支持用户…

IT运维之自动化运维

大家好&#xff0c;我是技福的小咖老师。 今天咱们来简单讲讲自动化运维的话题。 现在随着IT运维管理工作的复杂度和难度的大大增加&#xff0c;过去仅靠几个专门的运维人员或是“技术大拿”来包打天下已经行不通了&#xff0c;企业开始需要运用专业化、标准化和流程化的手段来…

自动化运维与普通运维有什么区别?

本文首发于知乎&#xff0c;由嘉为蓝鲸原创。 商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 01. 何为自动化运维&普通运维&#xff1f; 在了解两者的区别前&#xff0c;我们得先明确对二者的定义&#xff0c;总的来说运维工作的目的都是为了保障企业业…

自动化运维平台Spug介绍

一、概要 Spug是一款使用PythonFlaskVueElement组件开发的开源运维管理系统,系统前后端分离&#xff0c;项目创建于2017年&#xff0c;2018 年 2 月第一个开源运维平台版本发布&#xff0c;设计为面向中小型企业设计的轻量级无Agent的自动化运维平台&#xff0c;UI基于Ant Desi…

Django 实现自动化运维后台

layui 框架与BootCSS框架相似都属于前端美化框架&#xff0c;区别在于BootCSS更加专业&#xff0c;而LayUI则更多的是面向于后端开发者&#xff0c;所以在组织形式上毅然采用了几年前的以浏览器为宿主的类 AMD 模块管理方式&#xff0c;却又并非受限于 CommonJS 的那些条条框框…

Linux自动化运维工具ansible详解

文章目录 认识ansibleansible的组成ansible的相关文件ansible的使用ansible的常用模块1、copy模块2、fetch模块3、command模块4、shell 模块5、file模块6、cron模块7、yum模块8、service模块9、script模块 认识ansible ansible是一个自动化运维工具的名称&#xff0c;集合了众…

如何实现网络自动化运维?

众所周知&#xff0c;网络是多个设备之间共享信息的连接。如今&#xff0c;手动管理连接到网络的每个设备会是一项重大的挑战&#xff0c;但是IT管理员可以通过网络自动化软件的功能的帮助来克服这一挑战&#xff0c;从而大大减少工作量和人为错误的可能。 网络编排是一种策略驱…