微信小程序--》条件与列表渲染以及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实现将实体类列表数据导出到Excel文件

《Python实现将实体类列表数据导出到Excel文件》在数据处理和报告生成中,将实体类的列表数据导出到Excel文件是一项常见任务,Python提供了多种库来实现这一目标,下面就来跟随小编一起学习一... 目录一、环境准备二、定义实体类三、创建实体类列表四、将实体类列表转换为DataFrame五、导出Da

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

基于Java实现模板填充Word

《基于Java实现模板填充Word》这篇文章主要为大家详细介绍了如何用Java实现按产品经理提供的Word模板填充数据,并以word或pdf形式导出,有需要的小伙伴可以参考一下... Java实现按模板填充wor编程d本文讲解的需求是:我们需要把数据库中的某些数据按照 产品经理提供的 word模板,把数据

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

Python中列表的高级索引技巧分享

《Python中列表的高级索引技巧分享》列表是Python中最常用的数据结构之一,它允许你存储多个元素,并且可以通过索引来访问这些元素,本文将带你深入了解Python列表的高级索引技巧,希望对... 目录1.基本索引2.切片3.负数索引切片4.步长5.多维列表6.列表解析7.切片赋值8.删除元素9.反转列表

Python按条件批量删除TXT文件行工具

《Python按条件批量删除TXT文件行工具》这篇文章主要为大家详细介绍了Python如何实现按条件批量删除TXT文件中行的工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.简介2.运行效果3.相关源码1.简介一个由python编写android的可根据TXT文件按条件批

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

poj3468(线段树成段更新模板题)

题意:包括两个操作:1、将[a.b]上的数字加上v;2、查询区间[a,b]上的和 下面的介绍是下解题思路: 首先介绍  lazy-tag思想:用一个变量记录每一个线段树节点的变化值,当这部分线段的一致性被破坏我们就将这个变化值传递给子区间,大大增加了线段树的效率。 比如现在需要对[a,b]区间值进行加c操作,那么就从根节点[1,n]开始调用update函数进行操作,如果刚好执行到一个子节点,

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听