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

news2024/12/23 12:44:04

🖥️ 微信小程序 专栏:小程序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://www.coloradmin.cn/o/95762.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高并发下秒杀商品,这9个细节你必须掌握好

目录&#xff1a;导读 前言 一、瞬时高并发 二、页面静态化 三、秒杀按钮 四、读多写少 五、缓存问题 1、缓存击穿 2、缓存穿透 六、库存问题 1、预扣库存 2、数据库扣减库存 3、redis扣减库存 4、 lua脚本扣减库存 七、分布式锁 八、mq异步处理 1、消息丢失问…

[附源码]Node.js计算机毕业设计高校线上教学系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我们…

聚观早报 | 明年起手机预装APP均可卸载;爱奇艺VIP会员再次涨价

今日要闻&#xff1a;明年起手机预装APP均可卸载&#xff1b;爱奇艺VIP会员再次涨价&#xff1b;转转首个华南地区自营店开业&#xff1b;马斯克出售股票套现36亿美元&#xff1b;微软将逐步推出欧盟云数据边界明年起手机预装APP均可卸载 12 月 16 日消息&#xff0c;日前&…

2022中国产业数字化发展成熟度区域指数分析——充分利用特长,形成区域比较优势,夯实中国式现代化建设基础

易观分析&#xff1a;近年来&#xff0c;全球经济发展下行&#xff0c;但数字经济表现出了足够的韧性。在国内&#xff0c;产业数字化的经济规模占全国数字经济比重的81.7%&#xff0c;占中国GDP的32.5%&#xff0c;已经成为中国数字经济发展的核心动能。 在此背景下&#xff0…

Pr 入门系列之十四:导出

视频工作流程中的最后一步就是导出。Pr 中&#xff0c;可以方便地导出序列或剪辑&#xff0c;发送给他人&#xff0c;分享到社交媒体渠道&#xff0c;或者创建 DCP&#xff08;数字电影包&#xff09;文件用于影院分发。◆ ◆ ◆导出的一般流程1、首先&#xff0c;在时间轴面…

机器学习100天(三):003 数据预处理之处理缺失值

机器学习 100 天,今天讲的是:数据预处理-处理缺失值。 在上一节,我们导入了数据集,得到特征 X 和标签 y。 我们打开 X,发现 index5 样本的‘年龄’和 index3 样本的‘薪资’数值是 NaN。 NaN(Not a Number)是计算机科学中数值数据类型的一类值,表示空值 可能是由于在…

1.两数之和

传送门&#xff1a;https://leetcode.cn/problems/two-sum/ 目录 题目描述 题解 题目描述 给定一个整数数组nums和一个整数目标值target&#xff0c;请你在该数组中找出和为目标值target的那两个整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个…

Android.bp学习

一. Android.bp概念 Android.bp 文件首先是 Android 系统的一种编译配置文件&#xff0c;是用来代替原来的 Android.mk文件的。在Android7.0 以前&#xff0c;Android 都是使用 make 来组织各模块的编译&#xff0c;对应的编译配置文件就是 Android.mk。 在 Android7.0 开始&…

【生信算法】利用HMM纠正测序错误(Viterbi算法的python实现)

利用HMM纠正测序错误&#xff08;Viterbi算法的python实现&#xff09; 问题背景 对两个纯系个体M和Z的二倍体后代进行约~0.05x的低覆盖度测序&#xff0c;以期获得后代个体的基因型&#xff0c;即后代中哪些片段分别来源于M和Z。已知&#xff1a; 后代中基因型为MM、MZ&…

C++ 内存管理

由于C++需要程序员自己完成堆区的内存回收,因此有可能存在内存泄漏的风险。而Java、Python不需要程序员去考虑内存泄漏的问题,虚拟机都做了内存管理。只要可以跨平台的编程语言都需要做内存对齐,C++、Java、Python都是一样的。内存的定义 程序运行时所需的内存空间分为 固定…

什么是知识,什么是知识图谱,有什么作用,有哪些应用领域?

知识图谱可以帮助机器理解世界&#xff0c;提高人工智能模型的性能。它还可以用于数据挖掘、信息检索、问答系统和语义搜索等领域&#xff0c;提高系统的准确性和可理解性。知识图谱的建模方式和技术也可以用于生物信息学和社交网络分析等领域。 知识图谱背景 在给出知识图谱…

【踩坑笔记】STM32 HAL库+泥人W5500模块

1.HAL库与标准库转换 泥人提供的模块收发程序 HAL库下的收发&#xff08;这里只提供部分接口&#xff0c;其它同样改发&#xff09;&#xff1a; 下边这条是标准库自带的函数&#xff0c;这里只用来和HAL库转换 改完之后&#xff0c;想验证自己的驱动改好没有&#xff0c;…

时序建模的主要流程

一、收集、预处理数据 收集&#xff1a;使用R包TSA的数据集&#xff0c;描述数据的基本统计特征【均值、方差、原始时序图】数据预处理&#xff1a;因为数据来源可靠&#xff0c;故针对数据预处理只做空缺值检查&#xff0c;其基本检测方法如下&#xff1a; 根据时间起点与时间…

nodejs+vue095设计学生选课成绩管理系统

目 录 目 录 III 1绪论 1 1.1课题研究的背景与意义 1 1.2 国内外研究现状和发展趋势 1 1.3课题研究的内容 2 2 关键技术介绍 3 前端技术&#xff1a;nodejsvueelementui 前端&#xff1a;HTML5,CSS3、JavaScript、VUE 1、 node_modules文件夹(有npn ins…

古典乐器网页设计成品 大学生音乐网站制作模板 大学生静态音乐HTML网页源码 dreamweaver网页作业 简单网页课程成品

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

单链表---对传参为双指针的理解

​​​​​​​​​​​ 上一篇中我们提到了单链表头指针的创建 如果链表为空时&#xff0c;头指针为NULL。接下来要实现节点的插入和删除。 在链表头部插入新节点&#xff0c;因此头指针指向的地址也应发生改变&#xff0c;即指向新节点的地址&#xff0c;因为在此时新节点就是…

消息队列之 Kafka + EFLFK集群部署

目录 介绍 Zookeeper 概述 Zookeeper 定义 Zookeeper 工作机制 Zookeeper 特点 Zookeeper 数据结构 Zookeeper 应用场景 Zookeeper 选举机制 部署 Zookeeper 集群 操作过程&#xff08;3台服务器操作相同&#xff09; 消息队列概述 为什么需要消息队列&#xff08;M…

C#语言实例源码系列-实现电脑显示器的各种设置

专栏分享点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册 &#x1f449;关于作者 众所周知&#xff0c;人生是一个漫长的流程&#xff0c;不断克服困难&#xff0c;不断反思前进的过程。在这个过程中…

ARM S5PV210 汇编实现时钟设置代码详解

一、时钟设置的步骤分析 第1步&#xff1a;CLK_SRC寄存器的设置分析 先选择不使用 PLL。让外部 24MHz 原始时钟直接过去&#xff0c;绕过 APLL 那条路。 CLK_SRC 寄存器其实是用来设置 MUX 开关的。在这里先将该寄存器设置为全 0&#xff0c;主要是 bit0 和bit4 设置为 0&am…

安全智能分析技术白皮书 数据共享

数据共享 定义内涵 数据共享 是指在多个用户或多个程序之间遵循一定规则共同享用数据&#xff0c;并进行各种操作、运算和分析的一种技术。数据共享包括数据发布、接口、交换等内容。 技术背景 随着数字经济成为拉动全球经济增长的新引擎&#xff0c;大数据成为经济中重要的…