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

🖥️ 微信小程序 专栏:小程序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编写程序样式

小程序的样式写法

  • *页面样式的三种写法:

  • 行内样式、页面样式、全局样式

  • 三种样式都可以作用于页面的组件

  • *如果有相同的样式 那么优先级如下:

  • 行内样式 > 页面样式 > 全局样式

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

JavaScript
// 代码展示

WXSS支持的选择器

目前支持的选择器:

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

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

跟Css一样(依然有权重)

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

wxss的拓展 – 尺寸单位

跟Css中最大的区别!

  • 尺寸单位

  • rpx(responsive pixel):可以根据屏幕宽度进行自适应,规定屏幕宽为750rpx

  • 如在Iphone6上,屏幕宽为375px 共有750物理像素,则750rpx=375px=750物理像素

  • 1rpx = 0.5px = 1物理像素

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

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

二、Mustache语法绑定

Mustache语法

  • *WXML基本格式:

  • 类似于HTML代码,可以写成 单标签 也可以写成 双标签

  • 必须有 严格的闭合: 没有闭合会导致编译错误

  • 大小写敏感:class和Class是不同的属性

  • 开发中,界面上展示的数据并不是写死的,会根据服务器返回的数据,或用户的操作来改变

  • 如使用原生Js或Jq的话,需要通过操作DOM来进行界面的更新

  • 小程序和Vue一样,提供插值语法:Mustache语法(双大括号)

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

三、WXML的条件渲染

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

  • *在某些需求中,我们需要根据条件来决定一些内容是否渲染:

  • 当条件为true时, view组件会渲染出来

  • 当条件为false时, view组件不会渲染出来

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

hidden属性

  • *hidden属性:

  • hidden是所有组件都默认拥有的属性

  • 当hidden属性为true时,组件隐藏

  • 为false时,组件显示出来

JavaScript

微信小程序 | 小程序WXSS-WXML-WXS
  • hidden和wx:if的区别

  • hidden控制显示和隐藏,是控制是否添加hidden属性

  • wx:if是控制组件是否被渲染

四、WXML的列表渲染

列表渲染 – wx:for 基础

  • *为什么需要使用wx:for

  • 在实际开发中,服务器经常返回各种列表数据 我们不可能一一从列表中取出数据进行展示;

  • 所以我们需要通过for循环的方式,遍历所有数据,一次性进行展示;

  • *在组件中,可以使用wx:for来遍历一个数组(字符串 – 数字)

  • 默认情况下,遍历后在wxml中可以使用一个变量index,保存的当前遍历数据的下标值

  • 数组中对应某项的数据,使用变量名item获取

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

JavaScript
代码展示

block标签

  • *什么是block标签? => 类似于 Vue中的 template

  • 在一些情况下,我们使用wx:if 或 wx:for时,可能需要包裹一组 组件标签

  • 我们希望对这一组组件标签进行整体的操作,这个时候怎么办?

  • *注:

  • *使用block有两个好处:

  • 将需要进行遍历或判断的内容进行包裹

  • 将遍历和判断的属性放在block标签中,不影响普通属性的阅读,提高代码的可读性.

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

列表渲染 – item / index 名称

  • *默认情况下,item – index 的名字是固定的

  • 但在某些情况下,我们可能想要使用其他名称

  • 或者出现多层遍历时,名字重复

  • *这个时候,我们可以指定item和index的名称:

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

JavaScript
代码展示:

列表渲染 – 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结尾的文件中


微信小程序 | 小程序WXSS-WXML-WXS
  • *每一个.wxs文件和

  • 每个模块有自己的独立作用域.在每个模块里面定义的变量与函数,默认为私有的.对其他模块不可见

  • 一个模块如果想要向外暴露其内部的私有变量和函数,只能通过module.exports 实现

方式一: wxs标签写法

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

方式二: .wxs文件写法

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

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

Original: https://blog.csdn.net/coderHing/article/details/128350237
Author: coderHing[专注前端]
Title: 微信小程序 | 小程序WXSS-WXML-WXS

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/793290/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Django3.2 自动发现所有路由

    实现 Django3.2 下,自动发项目本地所有URL,并定向排除部分URL 1.需求 发现项&#x76E…

    Python 2023年5月24日
    054
  • Python基础知识第四篇:方法重写+文件处理+异常处理,冒死上传

    Original: https://www.cnblogs.com/123456feng/p/16190038.htmlAuthor: 蚂蚁ailingTitle: Python基…

    Python 2023年5月24日
    068
  • Flask框架——蓝图

    在上篇文章中,我们学习了Flask框架——模板复用(继承、包含、宏),这篇文章我们来学习Flask框架——蓝图。 随着Flask项目越来越复杂,把所有视图函数放在一个应用文件中会很…

    Python 2023年8月11日
    079
  • Python pandas中DataFrame添加列、获取行列、获取元素值

    直接通过赋值为空,添加一列。 >>> import pandas as pd >>> df = pd.DataFrame(np.arange(1…

    Python 2023年8月19日
    041
  • pytest使用(5)-测试报告优化

    1 输出原始测试报告 目前已经很过关于pytest测试报告优化的帖子,结合自己和工作经验和先知们的帖子,这里进行总结概述。原始测试用例脚本 from time import sle…

    Python 2023年9月12日
    065
  • python网络并发之线程,协程

    线程 进程是资源分配的最小单位 线程是计算机中调度的最小单位 线程的缘起 资源分配需要分配内存空间,分配cpu:分配的内存空间存放着临时要处理的数据等,比如要执行的代码,数据而这些…

    Python 2023年6月10日
    071
  • 【用户交互】

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、用户交互 * 3.1 函数返回码 3.2 常用 3.3 acedGetXXX函数 &#8211…

    Python 2023年9月29日
    031
  • 开源IPTV源服务程序使用教程

    前言 我的目标是将程序打造成属于每个人的直播源服务,且对每个人完全开源免费!可作为家庭影院电视、视频等流媒体的提供商,兼容全平台,只需使用视频播放器调用接口链接即可享用,不多说开始…

    Python 2023年6月11日
    062
  • 随笔记录——pandas 中 Dataframe.to_dict()

    在工作中,使用pandas时,常常需要将dataframe中的数据按照指定的格式输出给下游使用,很多时候,下游指定的格式并不是很特别,而是比较常见的,这时,我们就不需要自己专门定义…

    Python 2023年8月7日
    038
  • 利用Pandas读取多个文件中相同列的数据并合并到新的表格中

    import numpy as npimport pandas as pdimport xlrdimport globimport osfrom tqdm import tqdmi…

    Python 2023年8月16日
    084
  • python处理csv_to_excel

    提取各csv文件不同频率的S参数tx import os.pathimport pandas as pdimport openpyxlimport globfrom os.path…

    Python 2023年8月22日
    052
  • 多版本并发控制 MVCC

    介绍多版本并发控制 多版本并发控制技术(Multiversion Concurrency Control,MVCC) 技术是为了解决问题而生的,通过 MVCC 我们可以解决以下几个…

    Python 2023年10月22日
    043
  • pandas csv转json_十分钟学习pandas! pandas常用操作总结!

    学习Python, 当然少不了pandas,pandas是python数据科学中的必备工具,熟练使用pandas是从sql boy/girl 跨越到一名优秀的数据分析师傅的必备技能…

    Python 2023年8月8日
    037
  • 微服务低代码Serverless平台(星链)的应用实践

    导读 星链是京东科技消金基础研发部研发的一款研发效能提升的工具平台,面向后端服务研发需求,尤其是集成性、场景化、定制化等难度不太高、但比较繁琐的需求,如服务前端的后端(BFF)、服…

    Python 2023年10月21日
    050
  • python大数据之随机森林(回归与分类)

    随机森林在大数据运用中非常的常见,它在预测和回归上相比于SVM,多元线性回归,逻辑回归,多项式回归这些,有着比较好的鲁棒性。 随机森林是一个用随机方式建立的,包含多个决策树的分类器…

    Python 2023年8月1日
    053
  • django 整合 vue

    安装 vue 安装 node.js , 官网地址: https://nodejs.org/zh-cn/download/ 使用 npm 淘宝镜像 3 . 使用 cnpm 下载 vu…

    Python 2023年6月10日
    065
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球