微信小程序--》条件与列表渲染以及WXSS模板样式

2023-11-11 03:20

本文主要是介绍微信小程序--》条件与列表渲染以及WXSS模板样式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

🏍️作者简介:大家好,我是亦世凡华、渴望知识储备自己的一名在校大学生

🛵个人主页:亦世凡华、

🛺系列专栏:微信小程序

🚲座右铭:人生亦可燃烧,亦可腐败,我愿燃烧,耗尽所有光芒。

👀引言

       ⚓经过web前端开发的学习,相信大家对于前端开发有了一定深入的了解,今天我开设了微信小程序专栏,主要想从移动端开发方向进一步发展,而对于我来说写移动端博文的第一站就是小程序开发,希望看到我文章的朋友能对你有所帮助。

目录

📚WXML模板语法—条件渲染

📰wx:if

📰block标签使用

📑hidden的使用

📰wx:if 和 hidden 的区别

📚WXML模板语法—列表渲染

📰wx:for

wx:for 手动指定索引和当前项的变量名(了解即可)

📑wx:key

📚WXSS模板样式

📰rpx尺寸单位

rpx 和 px 之间的单位换算(了解即可)

📑样式导入

📰全局样式和局部样式


📚WXML模板语法—条件渲染

📰wx:if

在小程序中,使用 wx:if="{{condtion}}" 来判断是否需要渲染该代码块:

<view wx:if="{{condtion}}"> 要显示的内容 </view>

也可以通过 wx: elif 和 wx:else 来添加 else 来判断:

<view wx:if="{{type === 1}}"> father </view>
<view wx:elif="{{type === 2}}"> mother </view>
<view wx:else> child </view>

在项目的JS文件中,我们可以通过修改data里面的type(可以自己规定)来确保页面渲染的是我们想要的内容, 在AppData进行动态调试渲染结果,如下:

📰block标签使用

根据上文如果要一次性控制多个组件的展示和隐藏,可以使用<block></block>标签将多个组件包装起来,并在</block>标签上使用 wx:if控制属性,示例如下:

<block wx:if="{{true}}"><view> 组件1 </view><view> 组件2 </view>
</block>

注意:<block>并不是一个组件,它只是一个包裹性质的容器,不会在页面上做出任何渲染,提高了页面的渲染性能。 

📑hidden的使用

在小程序中,直接使用hidden="{{condtion}}"也能控制元素的显示和隐藏。

<view hidden="{{condtion}}"> 条件为true隐藏,条件为 false 显示 </view>

在项目JS文件中,我们在data里面设置一个 control 来控制 hidden 确保内容的显示与隐藏。

📰wx:if 和 hidden 的区别

运行方式不同

wx:if 以动态创建和移除元素的方式,控制元素的展示和隐藏

hidden 以切换样式的方式(display:none / block;)控制元素的显示与隐藏

使用建议

频繁切换时,建议使用 hidden

控制条件复杂时,建议使用 wx:if 搭配 wx:elif、wx:else 进行展示和隐藏的切换

📚WXML模板语法—列表渲染

📰wx:for

通过 wx:for 可以根据指定的数组,循环渲染重复的组件结构,语法示例如下:

默认情况下,当前循环项的 索引index 表示;当前循环项用 item 表示

<view wx:for="{{arr}}">当前索引:{{index}},当前项:{{item}}
</view>

wx:for 手动指定索引和当前项的变量名(了解即可)

使用 wx:for-index 可以指定 当前循环项的索引 的变量名

使用 wx:for-item 可以指定 当前项的变量名

<view wx:for="{{arr}}" wx:for-index="id" wx:for-item="name">索引是:{{id}}、当前项是:{{name}}
</view>

📑wx:key

类似于 Vue 列表渲染中的 :key,小程序在实现列表渲染时,也建议为渲染出来的列表指定唯一的key值,从而提高渲染的效率,示例代码如下:

//data数据
data:{user:[{id:1,name:'张三'},{id:2,name:'李四'},{id:3,name:'赵五'}]
}
// wxml 结构
<view wx:for="{{user}}" wx:key="id">{{item.name}}</view>

注意:当我们使用 wx:for 的时候建议加上 wx:key 一方面能提高我们的渲染效率,另一方面也能消除控制台的警告,如果不见 wx:key 的话,控制台会爆出如下警告:

📚WXSS模板样式

WXSS(WeiXin Style Sheets)是一套样式语言,用于美化 WXML 的组件样式,类似于网页开发中的 CSS

WXSS具有 CSS 大部分特性,同时,WXSS 还对 CSS 进行了扩充以及修改,以适应微信小程序的开发。与 CSS 相比,WXSS扩展的特性有:rpx尺寸单位@import样式导入

📰rpx尺寸单位

rpx( responsive pixel )是微信小程序独有的,用来解决屏适配的尺寸单位。

rpx实现原理

鉴于不同设备屏幕的大小不同,为了实现屏幕的自动适配,rpx把所有设备的屏幕,在宽度上等分为750份(即:当前屏幕的总宽度为 750px)

🏴󠁧󠁢󠁳󠁣󠁴󠁿:在较小的设备上,1rpx所代表的宽度较小

🏴󠁧󠁢󠁳󠁣󠁴󠁿:在较大的设备上,1rpx所代表的宽度较大

小程序在不同设备上运行的时候,会自动把 rpx 的样式单位换算成对应的像素单位来渲染,从而实现屏幕的适配。

rpx 和 px 之间的单位换算(了解即可)

在 iPhone6上,屏幕宽度为375px,共有750个物理像素,等分为750rpx。则:

750rpx = 375px = 750 物理像素 ==》1rpx = 0.5px = 1 物理像素。(不同的手机型号rpx和px换算不同),官方建议:开发小程序时,设计师可以用 iPone6 作为 视觉稿的标准。因为rpx和px之间的换算正好为整数,即1px = 2rpx,开发方便。

📑样式导入

使用 WXSS 提供的 @import 语法,可以导入外联的样式表。

@import后跟需要导入的外联样式表的相对路径,用 ; 表示语句结束。如下:

/*common.wxss*/
view{width:100px;
}/*app.wxss*/
@import "common.wxss";
view{height:12px;
}

📰全局样式和局部样式

全局样式:定义在 app.wxss 中的样式为全局样式,作用于每一个页面。

局部样式:在页面的 .wxss 文件中定义的样式为局部样式,只作用于当前页面。

注意

①当局部样式与全局样式冲突时,根据就近原则,局部样式会覆盖全局样式。

②当局部样式的权重大于或等于全局样式的权重时,才会覆盖全局样式。

这篇关于微信小程序--》条件与列表渲染以及WXSS模板样式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/387220

相关文章

python中列表应用和扩展性实用详解

《python中列表应用和扩展性实用详解》文章介绍了Python列表的核心特性:有序数据集合,用[]定义,元素类型可不同,支持迭代、循环、切片,可执行增删改查、排序、推导式及嵌套操作,是常用的数据处理... 目录1、列表定义2、格式3、列表是可迭代对象4、列表的常见操作总结1、列表定义是处理一组有序项目的

C++11范围for初始化列表auto decltype详解

《C++11范围for初始化列表autodecltype详解》C++11引入auto类型推导、decltype类型推断、统一列表初始化、范围for循环及智能指针,提升代码简洁性、类型安全与资源管理效... 目录C++11新特性1. 自动类型推导auto1.1 基本语法2. decltype3. 列表初始化3

SpringBoot集成EasyPoi实现Excel模板导出成PDF文件

《SpringBoot集成EasyPoi实现Excel模板导出成PDF文件》在日常工作中,我们经常需要将数据导出成Excel表格或PDF文件,本文将介绍如何在SpringBoot项目中集成EasyPo... 目录前言摘要简介源代码解析应用场景案例优缺点分析类代码方法介绍测试用例小结前言在日常工作中,我们经

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用