【微信小程序】-- WXS 脚本(二十九)

news2025/1/28 1:06:06

请添加图片描述

  • 💌 所属专栏:【微信小程序开发教程】

  • 😀 作  者:我是夜阑的狗🐶

  • 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询!

  • 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘

文章目录

  • 前言
  • 一、WXS 脚本
      • 1、什么是 wxs
      • 2、wxs 的应用场景
      • 3、. wxs 和 JavaScript 的关系
  • 二、WXS 脚本 - 基础语法
      • 1、内嵌 wxs 脚本
      • 2、定义外联的 wxs 脚本
      • 3、使用外联的 wxs 脚本
  • 三、WXS 的特点
      • 1、与 JavaScript 不同
      • 2、不能作为组件的事件回调
      • 3、隔离性
      • 4、性能好
  • 总结


前言

  大家好,又见面了,我是夜阑的狗🐶,本文是专栏【微信小程序开发教程】专栏的第29篇文章;
  今天开始学习微信小程序的第15天💖💖💖,开启新的征程,记录最美好的时刻🎉,每天进步一点点。
  专栏地址:【微信小程序开发教程】, 此专栏是我是夜阑的狗微信小程序开发过程的总结,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。
  如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。


一、WXS 脚本

  前面已经大致了解小程序中生命周期,分别是应用生命周期和页面生命周期,在实际开发过程中,一般初始化数据的操作都会放在 onLoad 或者 onLaunch 里。所以了解生命周期的执行顺序与作用对后续的开发很有帮助。接下来就来学习一下小程序中的 WXS 脚本。话不多说,让我们原文再续,书接上回吧。

请添加图片描述

1、什么是 wxs

  WXS(WeiXin Script)是小程序独有的一套脚本语言,结合 WXML,可以构建出页面的结构。

2、wxs 的应用场景

  wxml 中无法调用在页面的 .js 中定义的函数,但是,wxml 中可以调用 wxs 中定义的函数。因此,小程序中
wxs 的典型应用场景就是“过滤器”,这一点跟 Vue 有点类似。

3、. wxs 和 JavaScript 的关系

  虽然 wxs 的语法类似于 JavaScript,但是 wxs 和 JavaScript 是完全不同的两种语言:

wxs作用
有自己的数据类型number 数值类型、string 字符串类型、boolean 布尔类型、object 对象类型
function 函数类型、array 数组类型、 date 日期类型、 regexp 正则
不支持类似于 ES6 及以上的语法形式不支持:let、const、解构赋值、展开运算符、箭头函数、对象属性简写、etc…
支持:var 定义变量、普通 function 函数等类似于 ES5 的语法
遵循 CommonJS 规范module 对象、require() 函数、module.exports 对象

二、WXS 脚本 - 基础语法

1、内嵌 wxs 脚本

  wxs 代码可以编写在 wxml 文件中的 <wxs> 标签内,就像 Javascript 代码可以编写在 html 文件中的 <script> 标签内一样。
  wxml 文件中的每个 <wxs></wxs> 标签,必须提供 module 属性,用来指定当前 wxs 的模块名称,方便在 wxml 中访问模块中的成员,这里可以看下下面栗子,具体代码如下:

message.js

  首先在js端定义好变量。

Page({
  /**
   * 页面的初始数据
   */
  data: {
    count: 0,
    userName: "csh",
  },
})

message.wxml

  将文本转成大写。

<view>{{test1.toUpper(userName)}}</view>

<wxs module="test1">
  // 将文本转成大写
  module.exports.toUpper = function (str) {
    return str.toUpperCase();
  }
</wxs>

  不出意外的话,在页面会出 csh 的大写形式,看一下实际效果:

在这里插入图片描述

2、定义外联的 wxs 脚本

   wxs 代码还可以编写在以 .wxs 为后缀名的文件内,就像 javascript 代码可以编写在以 .js 为后缀名的文件中
一样。示例代码如下:

  创建 .wxs 文件

在这里插入图片描述

tool.wxs

function toLower(str){
  return str.toLowerCase();
}

module.exports = {
  toLower: toLower
}

  到这里就定义好模块里的函数。

3、使用外联的 wxs 脚本

  前面定义好了外联的 wxs 脚本,接下来就要去使用了。在 wxml 中引入外联的 wxs 脚本时,必须为 标签添加 module 和 src 属性,其中:

属性说明
module用来指定模块的名称
src用来指定要引入的脚本的路径,且必须是相对路径

  通过下面的栗子来学习一下,具体代码如下:

message.js

  在js端定义好变量。

Page({
  /**
   * 页面的初始数据
   */
  data: {
    count: 0,
    userName: "csh",
    country: 'CHINA',
  },
})

message.wxml

  引用外联的tool.wxs 脚本,并命名为 test2,将文本转成小写。

<view>{{test2.toLower(country)}}</view>

<wxs src="../../utils/tool.wxs" module="test2"></wxs>

  可以来看一下实际效果:

在这里插入图片描述

三、WXS 的特点

1、与 JavaScript 不同

  为了降低 wxs(WeiXin Script)的学习成本, wxs 语言在设计时借大量鉴了 JavaScript 的语法。但是本质上,
wxs 和 JavaScript 是完全不同的两种语言!

2、不能作为组件的事件回调

  wxs 典型的应用场景就是“过滤器”,经常配合 Mustache 语法进行使用,例如:

<view>{{test1.toUpper(userName)}}</view>

  但是,在 wxs 中定义的函数不能作为组件的事件回调函数。例如,下面的用法是错误的:

<button bindtap="test2.toLower">按钮</button>

3、隔离性

  隔离性指的是 wxs 的运行环境和其他 JavaScript 代码是隔离的。体现在如下两方面:

  • wxs 不能调用 js 中定义的函数
  • wxs 不能调用小程序提供的 API

4、性能好

  在 iOS 设备上,小程序内的 WXS 会比 JavaScript 代码快 2 ~ 20 倍。
  在 android 设备上,二者的运行效率无差异


总结

  感谢观看,这里就是WXS 脚本的介绍使用,如果觉得有帮助,请给文章点个赞吧,让更多的人看到。🌹 🌹 🌹

在这里插入图片描述

  也欢迎你,关注我。👍 👍 👍

  原创不易,还希望各位大佬支持一下,你们的点赞、收藏和留言对我真的很重要!!!💕 💕 💕 最后,本文仍有许多不足之处,欢迎各位认真读完文章的小伙伴们随时私信交流、批评指正!下期再见。🎉

更多专栏订阅:

  • 😀 【LeetCode题解(持续更新中)】
  • 🚝 【Java Web项目构建过程】
  • 💛 【微信小程序开发教程】
  • 【JavaScript随手笔记】
  • 🤩 【大数据学习笔记(华为云)】
  • 🦄 【程序错误解决方法(建议收藏)】
  • 🚀 【软件安装教程】



订阅更多,你们将会看到更多的优质内容!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/396674.html

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

相关文章

【Java基础】Linux系统

CONTENT一、常用命令时间日期关机&重启登录&注销运行级别找回root用户密码&#xff08;CentOS 7&#xff09;二、文件管理显示当前工作路径显示文件和目录切换目录创建文件&目录删除文件&目录拷贝文件&目录移动文件&目录 / 重命名查找文件&目录查看…

java启动命令中-D和--的区别

目录一、java -D 添加参数二、java -- 添加参数在 SpringBoot 项目中&#xff0c;启动时&#xff0c;通过 -D 或 -- 添加参数&#xff0c;都可以直接覆盖 yml 或 properties 配置文件中的同名配置&#xff0c;如果不存在则相当于添加了一个配置。 一、java -D 添加参数 java -D…

【面试题】三道面试题让你掌握JavaScript中的执行上下文与作用域以及闭包

前言大厂面试题分享 面试题库前后端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★地址&#xff1a;前端面试题库大家好&#xff0c;笔者呢最近再回顾JavaScript知识时&#xff0c;又看到了JavaScript的一些较为常见的内容&#xff0c;仔细看了之后发现…

1-1 微服务架构概述

文章目录微服务架构概述1-1. 系统进化理论概述集中式系统&#xff1a;分布式系统1-2. 系统进化理论背景1-3. 什么是微服务架构1-4. 微服务架构的优缺点1-5. 为什么选择 Spring Cloud 构建微服务认识 Spring Cloud2-1. Spring Cloud 是什么2-2. Spring Cloud 的版本2-3 Spring C…

2.2操作系统-进程管理:前趋图、前趋图与PV操作

2.1操作系统-进程管理&#xff1a;前趋图\前趋图与PV操作前趋图前趋图与PV操作练习前趋图与PV操作&#xff0c;一般出现了&#xff0c;分值在2~3分左右&#xff0c;技巧性很强。 前趋图 前趋图是为了描述一个程序的各部分间的依赖关系&#xff0c;或者是一个大的计算的各个子…

【c++类与对象 】

目录&#xff1a;前言一、基础引入1.类的定义2.类的权限3.类的封装4.类的实例化5.计算类对象的大小结构体内存对齐规则空类的大小二、this指针this引入this指针的特性经典例题三、类的六个默认成员函数1、构造 && 析构构造函数析构函数2、拷贝 && 赋值拷贝构造…

display:inline-flex使用

凡是使用了display:inline-flex布局的容器&#xff08;不管是行内元素还是块级元素&#xff09;&#xff0c;将会变为弹性容器&#xff0c;它的宽高都将可以被设置&#xff0c;并且该容器整体对外表现为一个行内块元素。 span也可以设置宽高&#xff0c;并且div和span它们都没有…

【C++】缺省参数函数重载

&#x1f3d6;️作者&#xff1a;malloc不出对象 ⛺专栏&#xff1a;C的学习之路 &#x1f466;个人简介&#xff1a;一名双非本科院校大二在读的科班编程菜鸟&#xff0c;努力编程只为赶上各位大佬的步伐&#x1f648;&#x1f648; 目录前言一、缺省参数1.1 缺省参数的概念1…

关于new和delete的一些思考,为什么不能在析构函数中调用delete释放对象的内存空间,new和delete的原理

最近在写代码的时候&#xff0c;觉得每次new出来的对象都需要去delete好麻烦&#xff0c;于是直接把delete写到了析构函数中&#xff0c;在析构函数里面写了句delete this&#xff0c;结果调用析构函数的时候死循环了&#xff0c;不是很理解原因&#xff0c;于是去研究了一下。…

盘点全球10大女性技术先驱

盘点全球10大女性技术先驱 人们普遍认为技术是男性主导的领域&#xff0c;但事实&#xff0c;技术或编程与性别无关&#xff0c;几乎任何人都可以成为技术大神。已经有很多案例证明女性同样可以在技术领域施展才能。在女神节来临之际&#xff0c;我为大家盘点一下为编程做出卓越…

AB测试——流程介绍(定义问题和指标选取)

前言&#xff1a; 作为AB测试的学习记录&#xff0c;本文主要介绍了AB测试的基本流程&#xff0c;以及指标类型和如何选取合适指标。 相关文章&#xff1a;AB测试——原理介绍 AB测试的基本流程是什么&#xff1f; AB测试&#xff08;也称为分流测试&#xff09;是一种常用的实…

visual studio的team使用问题小结

visual studio的team使用问题小结一、visual studio&#xff08;2017&#xff09;默认浏览器打开team任务和bug二、visual studio&#xff08;2017&#xff09;上传team时&#xff0c;文件超过一万个会上传失败。三、visual studio&#xff08;2017&#xff09;拉取team代码时&…

C++面向对象编程之二:构造函数、拷贝构造函数、析构函数

构造函数和析构函数C利用构造函数和析构函数&#xff0c;完成对象的初始化和清理工作。对象的初始化和清理工作&#xff0c;是编译器强制我们要做的事情&#xff0c;如果我们不提供构造函数和析构函数&#xff0c;编译器会提供3个函数&#xff1a;默认无参构造函数默认拷贝构造…

004+limou+HTML——(4)HTML表格

000、前言 表格在实际开发中的应用还是比较多的&#xff0c;表格可以更加清晰地排列数据 001、基本结构 &#xff08;1&#xff09;构成 表格&#xff1a;<table>行&#xff1a;<tr>&#xff08;table row&#xff0c;表格行&#xff09;&#xff0c;由多少组t…

【每日随笔】中国当前社会阶层 ( 技术无关 | 随便写写 )

文章目录一、阶层划分根据收入划分的阶层根据分工逻辑划分根据权利划分二、根据社会地位和掌握的资源划分的阶层三、赚钱的方式四、如何进入高阶层看了一个有意思的视频 , 讲的是中国当前的社会阶层 , 感觉好有道理 , 搜索了一些资料 ; 参考资料 : 关于中国的社会阶层社会在分…

【一】【socket聊天室】-多线程,socket编程

本文主要实现基于socket编程的聊天室&#xff0c;主要分为下面三个步骤&#xff1a; &#xff08;1&#xff09;多用户聊天&#xff1a;一个服务器多个客户端&#xff0c;客户端信息显示在公共的服务端窗口&#xff0c;利用多线程实现&#xff1b; ——客户端双线程&#xff1a…

OpenCV基础(一)

1.认识图像&#xff08;彩色图中每一个像素点都包含三个颜色通道RGB&#xff0c;数值范围为0~255&#xff0c;0代表黑色&#xff0c;255代表白色&#xff09; import cv2 #opencv 读取的格式为BGRimg cv2.imread(cat.png) #读取图像 cv2.imshow(cat, img) #显示图像img&#x…

Matlab实现FFT变换

Matlab实现FFT变换 文章目录Matlab实现FFT变换原理实现手算验证简单fft变换和频谱求取功率谱结论在信号处理中&#xff0c;快速傅里叶变换&#xff08;FFT&#xff09;是一种非常常见的频域分析方法。本文将介绍如何使用Matlab实现FFT变换&#xff0c;并通过Matlab代码演示实际…

SAP ABAP 深度解析Smartform打印特殊符号等功能

ABAP 开发人员可以在 Smartform 输出上显示 SAP 图标或 SAP 符号。例如,需要在 SAP Smart Forms 文档上显示复选框形状的输出。SAP Smartform 文档上可以轻松显示空复选框、标记复选框以及 SAP 图标等特殊符号。 在 SAP Smartform 文档中添加一个新的文本节点。 1. 单击“更…

开发一款系统软件的流程步骤是什么

在如今的数字化时代&#xff0c;软件开发成为了一个重要的行业。无论是大型企业还是小型创业公司&#xff0c;软件开发都是不可或缺的一环。在本文中&#xff0c;我将介绍一些网上常见的软件开发步骤&#xff0c;以便开发者能够更好地理解和实践。1、需求分析需求分析是开发系统…