【微信小程序】一文搞懂条件渲染、列表渲染以及wxss模板样式

简介: 【微信小程序】一文搞懂条件渲染、列表渲染以及wxss模板样式

条件渲染


wx:if


在小程序中为了显示不同的信息段,我们可以通过条件渲染来显示,满足条件则显示页面,不满足则隐藏。


配合wx:elifwx:else来使用


语法:wx:if="{{}}"


实例:


添加三个view组件


<view>男</view>
<view>女</view>
<view>未知</view>


在js文件中的data中定义一个数据



wxml中的三个view组件添加条件渲染语句


<view wx:if="{{gender == 1}}">男</view>
<view wx:elif="{{gender == 2}}">女</view>
<view wx:else>未知</view>


这时在小程序内就只显示条件满足gender为1的view组件了。



结合block使用wx:if


如果要一次性控制多个组件的展示与隐藏,可以使用一个block标签将多个组件包装起来,并在block标签上使用wx:if 控制属性。


<block wx:if="{{gametype == 1}}">
<view>英雄联盟</view>
<view>QQ飞车</view>
<view>地下城</view>
</block>
<block wx:else="{{gametype == 2}}">
<view>王者荣耀</view>
<view>原神</view>
<view>和平精英</view>
</block>
<block wx:else>
<view>其他</view>
</block>



block并非是一个组件,而是一个包裹性质的容器,它不会再页面上渲染出来。


hidden隐藏元素


上面我们说了可以用wx:if来显示和隐藏元素,hidden同样也可以控制显示和隐藏元素。


语法:hidden=”{{}}“条件为true则隐藏,否则显示。


<view hidden="{{true}}">苏凉</view>


wx:if 和 hidden的区别


1.运行方式不同


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


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



2.何时使用?


  • 在我们需要频繁切换显示与隐藏时,建议使用hidden


  • 在我们条件比较复杂时,建议使用wx:if配合wx:elifwx:else来使用。


列表渲染


wx:for


通过wx:for可以根据指定的数组,循环渲染重复的组件结构。


同时使用index来显示当前索引,使用item来显示当前项


实例:


<view wx:for="{{arr1}}">
这是第{{index+1}}个角色,TA是{{item}}。
</view>



index索引项从0开始


手动指定索引和当前项的变量名


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


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


实例:


<view wx:for="{{arr1}}" wx:for-index="num" wx:for-item="acter">
这是第{{num+1}}个角色,TA是{{acter}}。
</view>


wx:key 的使用


小程序在实现列表渲染时,建议为渲染出来的列表项指定唯一的 key值,从而提高渲染的效率。


实例:


wxml:


<view wx:for="{{arr2}}" wx:key="id">{{item.name}}</view>


js:



如果列表中没有设定key值,那我们也可以将默认的index来作为我们的key值。


wxss模板样式


wxss是什么


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


wxss和css的关系


wXSS 具有CSS大部分特性,同时,WXSS还对CSS进行了扩充以及修改,以适应微信小程序的开发。


与CSS相比,WXSS扩展的特性有:


  • rpx尺寸单位


  • @import样式导入


同时wxss和css都有通用的选择器和通用的样式规则。


rpx单位


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


rpx实现原理


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


  • 在较小的设备上,1rpx所代表的宽度较小


  • 在较大的设备上,1rpx所代表的宽度较大


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

目录
相关文章
|
1月前
|
小程序 搜索推荐 API
微信小程序:自定义关注公众号组件样式
尽管关注公众号组件的样式固定且不可修改,但产品经理的需求却需要个性化的定制。在这种情况下,我们需要寻找解决方案,以满足这些特殊需求,尽管这可能有点棘手。
60 0
微信小程序:自定义关注公众号组件样式
|
2月前
|
小程序 前端开发 索引
微信小程序中的条件渲染和列表渲染,wx:if ,wx:elif,wx:else,wx:for,wx:key的使用,以及block标记和hidden属性的说明
这篇文章介绍了微信小程序中条件渲染和列表渲染的使用方法,包括wx:if、wx:elif、wx:else、wx:for、wx:key以及block标记和hidden属性的使用。
微信小程序中的条件渲染和列表渲染,wx:if ,wx:elif,wx:else,wx:for,wx:key的使用,以及block标记和hidden属性的说明
|
1月前
|
小程序
java--微信小程序发送模板消息
java--微信小程序发送模板消息
106 0
|
3月前
|
小程序
Taro@3.x+Vue@3.x+TS开发微信小程序,根据系统主题展示不同样式(darkMode)
本文介绍如何在Taro项目中配置深色模式。通过在`src/app.config.ts`设置`darkmode`选项和在`theme.json`中定义主题变量,可以实现跟随系统主题的界面风格切换。
104 0
Taro@3.x+Vue@3.x+TS开发微信小程序,根据系统主题展示不同样式(darkMode)
|
4月前
|
小程序 前端开发
微信综合购物商城小程序ui模板源码
微信电商小程序前端页面,综合购物商城ui界面模板。主要功能包含:电商主页、商品分类、购物车、购物车结算、我的个人中心管理、礼券、签到、新人专享、专栏、商品详情页、我的订单、我的余额、我的积分、我的收藏、我的地址、我的礼券等。这是一款非常齐全的电商小程序前端模板。
107 4
|
4月前
|
小程序 前端开发
网络祭祀人物微信小程序模板源码
网络祭祀人物微信小程序模板源码
46 5
|
4月前
|
小程序 开发者
【微信小程序】 微信小程序报错不在以下request合法域名列表中
【微信小程序】 微信小程序报错不在以下request合法域名列表中
948 0
|
1月前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
223 3
|
1月前
|
小程序 API
微信小程序更新提醒uniapp
在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
49 0
微信小程序更新提醒uniapp
|
3月前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
106 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目

热门文章

最新文章

下一篇
无影云桌面