微信小程序 | 小程序WXSS-WXML-WXS

article/2025/10/3 18:57:56

🖥️ 微信小程序 专栏:小程序WXSS-WXML-WXS
🧑‍💼 个人简介:一个不甘平庸的平凡人🍬

✨ 个人主页:CoderHing的个人主页

🍀 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️

👉 你的一键三连是我更新的最大动力❤️


目录

一、WXSS编写程序样式

小程序的样式写法

WXSS支持的选择器

WXSS优先级与CSS类似,权重如图

wxss的拓展 - 尺寸单位

二、Mustache语法绑定

Mustache语法

三、WXML的条件渲染

逻辑判断 wx:if - wx:elif - wx:else

hidden属性

四、WXML的列表渲染

列表渲染 - wx:for 基础

block标签

列表渲染 - item / index 名称

列表渲染 - key作用

五、WXS语法基本使用

什么是WXS?

WXS的写法


一、WXSS编写程序样式

小程序的样式写法

  • 页面样式的三种写法:
  • 行内样式、页面样式、全局样式
  • 三种样式都可以作用于页面的组件
  • 如果有相同的样式 那么优先级如下:
  • 行内样式 > 页面样式 > 全局样式

JavaScript
// 代码展示
<!-- 1.应用全局样式 -->
<view class="title">learn wxss title</view>

<!-- 2.页面样式 -->
<view class="message">learn wxss message 页面样式</view>

<!-- 3.行内样式 -->
<view style="color: purple; font-size: 25px;">inline style 行内样式</view>

WXSS支持的选择器

目前支持的选择器:

 

WXSS优先级与CSS类似,权重如图

跟Css一样(依然有权重)

wxss的拓展 - 尺寸单位

跟Css中最大的区别!

  • 尺寸单位
  • rpx(responsive pixel):可以根据屏幕宽度进行自适应,规定屏幕宽为750rpx
  • 如在Iphone6上,屏幕宽为375px 共有750物理像素,则750rpx=375px=750物理像素
  • 1rpx = 0.5px = 1物理像素

注:开发微信小程序时设计师可以用Iphone6作为视觉稿的标准

二、Mustache语法绑定

Mustache语法

  • WXML基本格式:
  • 类似于HTML代码,可以写成 单标签 也可以写成 双标签
  • 必须有 严格的闭合: 没有闭合会导致编译错误
  • 大小写敏感:class和Class是不同的属性

  • 开发中,界面上展示的数据并不是写死的,会根据服务器返回的数据,或用户的操作来改变
  • 如使用原生Js或Jq的话,需要通过操作DOM来进行界面的更新
  • 小程序和Vue一样,提供插值语法:Mustache语法(双大括号)

 

三、WXML的条件渲染

逻辑判断 wx:if - wx:elif - wx:else

  • 在某些需求中,我们需要根据条件来决定一些内容是否渲染:
  • 当条件为true时, view组件会渲染出来
  • 当条件为false时, view组件不会渲染出来

hidden属性

  • hidden属性:
  • hidden是所有组件都默认拥有的属性
  • 当hidden属性为true时,组件隐藏
  • 为false时,组件显示出来

JavaScript
<view hidden="{{false}}">哈哈哈</view>

 

  • hidden和wx:if的区别
  • hidden控制显示和隐藏,是控制是否添加hidden属性
  • wx:if是控制组件是否被渲染

四、WXML的列表渲染

列表渲染 - wx:for 基础

  • 为什么需要使用wx:for
  • 在实际开发中,服务器经常返回各种 列表数据 我们不可能一一从列表中取出数据进行展示;
  • 所以我们需要通过 for循环的方式,遍历所有数据,一次性进行展示;
  • 在组件中,可以使用wx:for来遍历一个数组(字符串 - 数字)
  • 默认情况下,遍历后在wxml中可以使用一个 变量index,保存的当前遍历数据的下标值
  • 数组中对应某项的数据,使用 变量名item获取

JavaScript
代码展示
<!-- 4.列表展示 -->
<view>
<!-- 4.1 wx:for 基本使用 -->
<!-- 遍历data中的数组 -->
<view class="books">

  <!-- <view>{{ books[0].name }}</view> -->
  <!-- wx:key="*this" 表示当前本身 -->
  <block wx:for="{{ books }}" wx:key="id">
  <!-- item表示每一项的内容,index 表示 每一项的索引 -->
    <view>{{item.name}} - {{ item.price }}</view>
  </block>
</view>

<!-- 遍历数字 -->
<view class="number">
  <block wx:for="{{ 10 }}" wx:key="*this">
    <view>{{ item }}</view>
  </block>
</view>

<!-- 遍历字符串 -->
<view class="str">
  <block wx:for="coderhing" wx:key="*this">
    <view>{{ item }}</view>
  </block>
</view>

</view>

block标签

  • 什么是block标签? => 类似于 Vue中的 template
  • 在一些情况下,我们使用wx:if 或 wx:for时,可能需要包裹一组 组件标签
  • 我们希望对这一组组件标签进行整体的操作,这个时候怎么办?
  • 注:
  • <block /> 并不是一个组件,它仅仅是一个 包装元素 不会在页面中做任何渲染 只接受控制
  • 使用block有两个好处:
  • 将需要进行遍历或判断的内容进行包裹
  • 将遍历和判断的属性放在block标签中,不影响普通属性的阅读,提高代码的可读性.

 

列表渲染 - item / index 名称

  • 默认情况下,item - index 的名字是固定的
  • 但在某些情况下,我们可能想要使用其他名称
  • 或者出现多层遍历时,名字重复
  • 这个时候,我们可以指定item和index的名称:

 

JavaScript
代码展示:
<!-- item/index 名称 有些特殊情况 我们想要把 item/index 进行重命名-->
<view class="bookess">
  <!-- wx:for-item="book" 这样做的话 就不叫item了 就叫做 book -->
  <block wx:for="{{books}}" wx:key="id" wx:for-item="book" wx:for-index="i">
    <view>{{book.name}} - {{book.price}} - {{i}}</view>
  </block>
</view>

列表渲染 - key作用

  • 我们看到,当使用wx:for时,会报一个警告:
  • 我们可以添加 key来提供性能
  • 为什么需要这个key属性?
  • 其实和小程序内部 也使用了 虚拟DOM有关系(和Vue React很相似)
  • 当某曾有很多相同的节点时,(也就是列表节点时)我们希望 插入 删除一个新的节点 可以更好的复用节点
  • wx:key的值以两种形式提供
  • 字符串, 代表在 for循环的array中 item的某个property,该property的值需要是列表中唯一的字符串或数字,并且不能动态进行改变
  • 保留关键字 *this 代表在for循环中的item本身,这种表示需要 item本身是一个唯一的字符串或数字

五、WXS语法基本使用

什么是WXS?

  • WXS(weixin Script) 是小程序的一套脚本语言,结合WXML 可以构建出页面的结构.
  • 官方:WXS与Js是不同的语言,有自己的语法,并不和Js一致(不过基本一致)
  • 为什么要设计WXS语言?
  • 在WXML中是不能直接调用Page/Component中定义的函数的
  • 但在某些情况,我们可以希望使用函数来处理WXML中的数据(类似于Vue中的过滤器)这个时候就使用WXS
  • WXS使用的限制和特点:
  • WXS不依赖于运行时的基础库版本,可以在所有版本的小程序中运行
  • WXS的运行环境和其他Js代码是隔离的,WXS中不能调用其他Js文件中定义的函数,也不能调用小程序提供的API.
  • 由于运行环境的差异,在IOS设备上小程序内的WXS会比Js代码快2~20倍,在安卓设备商 运行效率无明显差异

WXS的写法

  • WXS有两种写法:
  • 在<wxs>标签中
  • 在以.wxs结尾的文件中
  • <WXS>标签的属性:

 

  • 每一个.wxs文件和<wxs>标签都是一个单独的模块
  • 每个模块有自己的独立作用域.在每个模块里面定义的变量与函数,默认为私有的.对其他模块不可见
  • 一个模块如果想要向外暴露其内部的私有变量和函数,只能通过 module.exports 实现

方式一: wxs标签写法

方式二: .wxs文件写法

 


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

相关文章

【wx】

.js: //message.js const app getApp() Page({data: {background: #D1EEEE,activeKey: 0,motto: Hello World,userInfo: {},hasUserInfo: false,canIUse: wx.canIUse(button.open-type.getUserInfo),navData: [{text: 首页},{text: 健康},{text: 情感},{text: 职场},{text: 育…

wx-wx-wx-wx-wx-wx-wx-wx-wx-wx-wx

一.⼩程序和H5的区别是什么呢&#xff1f; 运⾏环境&#xff1a;⼩程序基于微信&#xff0c;⽽h5的运行环境是浏览器&#xff0c;所以小程序中没有DOM和BOM的相关API&#xff0c;jquey和一些NPM(2.2.1版本前)包都不能在小程序中使用。小程序可以调用宿主环境/微信提供的微信客…

TensorFlow学习笔记——(11)循环神经网络

文章目录 一、循环核二、循环核时间步展开三、循环计算层四、TF描述循环计算层五、循环计算过程1、RNN实现单个字母预测&#xff08;1&#xff09;过程&#xff08;2&#xff09;完整代码 2、RNN实现输入多个字母&#xff0c;预测一个字母&#xff08;1&#xff09;过程&#x…

【mysql组合查询】

mysql组合查询&#xff1a;将查询出来的值作为表头&#xff0c;并统计类别数量 SELECTa.enterprise_name AS 事业部,sum( IF ( a.alarm_reason 3, a.countt, 0 ) ) AS 正常操作,sum( IF ( a.alarm_reason 4, a.countt, 0 ) ) AS 人员操作,sum(IF( a.alarm_reason NULL, a.c…

mysql 组合查询_mysql组合查询

使用UNION 多数SQL查询都只包含一个或多个表中返回数据的单条SELECT语句。MySQL也允许执行多个查询(多条SELECT语句)&#xff0c;并将结果作为单个查询结果集返回。这些组合查询通常称为并(union) 有两种情况需要使用组合查询&#xff1a; 在单个表查询中从不同的表返回类似结构…

SQL学习十一、组合查询

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意&#xff0c; 1、UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时&#xff0c;每个 SELECT 语句中的列的顺序必须相同。 即多个 SELECT 语句查询出来的结果集要能合并到一起…

【MySQL】联合查询

目录 1、前言 2、联合查询 3、内连接和外连接 4、案例演示 4.1 查询篮球哥每科的成绩 4.2 查询所有同学的总成绩及邮箱 5、自连接 5.1 显示所有计算机原理成绩比java成绩高的同学 6、子查询 6.1 查询出篮球哥的同班同学 6.2 多行子查询 7、合并查询 1、前言 在实际…

数据库组合查询

在使用数据库的过程中&#xff0c;数据的查询是使用最多的&#xff0c;所以&#xff0c;数据的精确查询是一个很重要的问题。以前的数据查询是最简单的数据查询&#xff0c;也从来没想过组合查询的问题&#xff0c;可是在做机房收费系统的时候&#xff0c;遇到了一个很大的问题…

SQL组合查询知识

大多数SQL查询只从一个或者多表中返回数据都是单个select语句。但是SQL server允许多个select语句执行&#xff0c;它返回的结果是一个结果集&#xff0c;需要使用 union 组合 &#xff0c;这些组合一般称为并&#xff08;union&#xff09;和复合查询&#xff08;compound que…

组合查询

今天我们来学习一下组合查询的方法。什么叫组合查询&#xff0c;就是根据自己选择的内容进行数据查询。我们可以根据单个数据查询&#xff0c;也可以根据多个数据查询我们想要的内容。而我今天要讲的是根据学院、年级、班级还有学号和姓名进行查询的方法&#xff0c;我们首先打…

MySQL入门学习:组合查询

一、组合查询 多数SQL查询都只包含从一个或多个表中返回数据的单条SELECT语句。MySQL也允许执行多个查询&#xff08;多条SELECT语句&#xff09;&#xff0c;并将结果作为单个查询结果集返回。这些组合查询通常称为并&#xff08;union&#xff09;或复合查询&#xff08;comp…

SQL数据库的组合查询和统计查询

数据库的组合查询和统计查询 一、实验目的 对数据库进行组合查询和统计查询 二、实验内容 1、加深对SQL语言查询语句的理解 2、熟练掌握数据查询中的分组统计、计算和组合操作方法。 三、实验要求 在本题下面提交基本操作效果截图。 一&#xff0c;组合查询简单查询。 1、…

组合多个查询

紫色代表一级目录 粉红代表二级目录 蓝色代表三级目录 红色代表关键字 橙色代表说明 单查询与组合查询   单查询实例      使用了操作符UNION    组合查询操作符   UNION     UNION 操作符可以组合两个或多个 SELECT 语句的结果&#xff0c;不包含重复的记录。换…

[Mysql] 组合查询

组合查询可以将多个SELECT结果拼接在一起作为最终结果输出(输出组合成单个查询结果集) 当存在多个查询结果符合条件&#xff0c;需要将多个查询结果进行纵向拼接时&#xff0c;就会用到组合查询 如下图所示&#xff0c;如果需要查出的结果包含表A和表B两个部分&#xff0c;则…

MySQL必知必会:组合查询(Union)

本篇文章主要介绍使用Union操作符将多个SELECT查询组合成一个结果集。本文参考《Mysql必知必会》工作实践融合 组合查询 定义 在大多数开发中&#xff0c;使用一条SELECT查询就会返回一个结果集。如果&#xff0c;我们想一次性查询多条SQL语句&#xff0c;并将每一条SELECT查询…

组合查询——union

文章目录 1.组合查询2.创建组合查询2.1 使用union2.2 union规则2.3 包含或取消重复的行2.4 对组合查询结果排序 1.组合查询 组合查询指的是&#xff1a;在Mysql中执行多个查询&#xff0c;并将结果作为单个查询结果集返回。 这些组合查询通常称为并或复合查询。 以下2种情况&…

【SQL自学打卡|DAY13】——组合查询

前言 ❤欢迎大家阅读我的文章呀❤ 今天是SQL必知必会的最后一块练习。 希望你们在我的文章当中能有所收获&#xff01;&#xff01;&#xff01; SLogan:利用有限的时间&#xff0c;撸起袖子加油干&#xff01; 知识点回顾 内联结&#xff1a;inner join。取两列的交集。 外联…

PyCharm取消波浪线、下划线和中划线

默认情况下&#xff0c;PyCharm中如果有无法错误或者不符合PEP8规范代码下面会有波浪线&#xff0c;语法错误波浪线为红色&#xff08;如下图的第10行&#xff09;&#xff0c;不符合PEP8规范为浅黄色波浪线&#xff08;如下图的第8行&#xff09;&#xff0c;见下图&#xff1…

Python中下划线的含义及用法

看代码的时候&#xff0c;经常看到各种变量名带各种下划线&#xff0c;有单下划线、双下划线等&#xff0c;主要有五种下划线&#xff08;按照下划线位置命名类型&#xff09;&#xff1a; 单下划线&#xff1a;_单下划线变量名&#xff1a;_var变量名单下划线&#xff1a;var…

Python 中下划线的 6 个作用

初学者看到 Python 中的下划线 _ 时可能会有些懵圈&#xff0c;不知道这个到底是干什么用的&#xff0c;今天就来盘点一下 Python 中的下划线有哪些用处。以后看到下划线时就可以对号入座了。 1、用在 Python 解释器&#xff0c;表示上一次的执行结果 即使不把 Python 用于编程…