|
6.WXS 脚本语言 6.1 什么是 wxs1、概念- C, q/ k& ~* I
WXS 是微信小程序中的一种脚本语言,结合 WXML,可以构建出页面的结构。类似于JavaScript,但与 JavaScript 不同,WXS 有自己的语法& z2 G' g9 B& C Z+ [) i! u6 p, f: S
2、wxs 和 JavaScript 的区别
[- O4 j" V- `0 |" a" [, v' U/ C
- wxs 有自己的数据类型
/ f0 d# M2 @0 [* d9 P+ w$ y. x) d - wxs 支持 CommonJS 模块化规范,可以将代码拆分为多个模块,提高代码的可读性和维护性3 ^0 y% H2 W5 n% s/ ^' X
- wxs 支持基本的 JavaScript 语法和一些特有的语法,例如 模板字符串、var 等wxs 不支持 ES6 及以上的语法形式,例如:let 、const、解构等等等都不能使用
2 M Y" @1 \- H5 a% L 3、wxs 的使用场景
- K: L3 _- G# \! g& X, r: v* }, r5 C( {
- 数据处理:实现类似于过滤器一样的功能,例如格式化日期、格式化数据等等
( V; B' l, ]6 J5 L: _8 W: f1 c- O& u1 r - 逻辑控制:例如条件判断、循环、函数调用等等,也可以放在 wxs 中处理用以简化模板其他....
6 ^ k- ? f( R l$ N! o 6.2 wxs 中的基础使用1、说明2 N k6 p1 l( W) H5 D' B' m
WXS 代码可以编写在 wxml 文件中的 标签内,或以 .wxs 为后缀名的文件内 J7 X0 ?3 U. W9 N+ N4 c, U* O
2、定义模块3 T7 W, @- v, d( O
0 S3 F, F6 p, ^) m- Z
- 每一个 .wxs 文件和 标签都是一个单独的模块,每个模块都有自己独立的作用域
% p0 N9 J/ W' ~9 ~% ^, h/ C2 _ - 即在一个模块里面定义的变量与函数,默认为私有的,对其他模块不可见一个模块要想对外暴露其内部的私有变量与函数,只能通过 module.exports 实现
% w7 F. G4 b+ b* v! p // /wxs/tools.wxs
2 g9 S N7 |- B& {( e6 h0 \& t ​
9 b! Y* T- s/ c# R var name = "Hello WXS"0 J( N! v; n+ j2 L1 M, s: Z
​
5 J2 ]2 d0 y; d6 y var handler = function(val) {( w( U3 N( K: l
return val.toUppercase()
; }0 P. G' {& c6 a }# o% |. P" L1 N1 v4 Y9 a5 h
​( W6 a7 Y. F( T9 k% s8 C
// module : 每个 wxs 模块均有一个内置的 module 对象,$ q& t8 a3 ?& ]- g5 l, p+ T
// exports: 通过该属性,可以对外共享本模块的私有变量与函数
& b k4 U' z" G" y1 v module.exports = {6 m/ \7 K1 {: t0 a
name: name,7 y0 ~3 u8 b& h! @: e3 Y
handler: handler
/ b2 V* s& I& }3 d7 U }3、.wxml 中使用模块
0 N0 h$ |' y; X" r% q' E在 .wxml 中引用 wxs 文件模块,需要使用 wxs 标签,引用的 .wxs 文件必须是相对路径可以通过 module 属性指定当前 标签的模块名可以通过 src 属性可以用来引用其他的 wxs 文件模块# z! \4 t, P N
0 m+ k v, N* G7 O9 a0 m. Y" A ( I, _4 b7 X$ R) T" F" a
3 k* `& ^1 L6 C/ | |' s ​
6 O& T4 E `. m4 g) S {{ tools.name }} * }! u" X) e/ I
{{ tools.handler('wxs')}} 3 I* I2 C. j' n# l7 c1 _
在 .wxs 模块中使用 require 函数可以引用其他 wxs 文件模块:/ C+ t3 H9 j7 C$ d1 E6 O7 b/ L
var tools = require("../wxs/tools.wxs");; ?7 p. u$ C$ a7 q- M' J
​
6 _' a$ q _$ s console.log(tools.name);
$ b5 [7 [6 |0 p* c console.log(tools.bar("wxs"))4、示例
4 h! t0 M; g# }2 \% I2 A& }; c ​
& E, x: J0 Y, Y7 W% y1 b ]; r
6 z) q+ `- t. o( M& r- v
H- t/ h+ K) S& A) K( K R" A U5 |: a
) D! c, y, }6 y& u. }
var name = 'Tom': H! M/ H [) h4 }5 `1 x2 {1 ]
​2 W, Q1 b, _! y8 w
function handle() {, l3 @' b9 z- b( T
return name
% R3 Q6 v2 ~2 h. \! G9 T- c5 Y }
$ P6 I! u. n4 {5 C! q; n0 B ​
( {+ r! {' @7 e, Z! _' H, k module.exports = {, X' r% C5 @' X, \1 ]
name: name,! f5 f8 }8 ~6 C! ]9 G9 R
handle: handle$ J; _$ B/ q. B& S% b3 V0 @ X& G
}6 j- O" i- i* R4 B. R
/ i" p3 i B8 l% J! I; b, c0 R ​5 }$ e; H2 m1 w7 n- x Z, F
5 `; @& D ~% p
{{ module.name }}
! b; r( @% z2 L4 C1 O1 N* F S {{ module.handle() }}: M) H: L) q b. G
​& Q/ d! D7 Y' Y7 K: [5 ^
9 Z; m* Z. Y/ S5 z; @0 ?7 \2 f
. {0 Z7 E! }: \ 7 r. I, l# n, v: X9 A w' I
{{ module1.formatPhone('18361261111') }}
& w5 f6 H: e! v" W 6.3 wxs 过滤器案例1、需求2 n: J7 Z8 e2 u& o6 i2 S- G
实现对手机号的格式化,将手机的 第四位 到 第七位 使用 * 号代码
" Y. b1 X9 t) M, t! m- b, F file://F:/32.%E6%88%91%E7%9A%84%E5%89%8D%E7%AB%AF%E7%AC%94%E8%AE%B0/2022%E5%B9%B4%E5%89%8D%E7%AB%AF%E7%AC%94%E8%AE%B0/14-%E5%B0%8F%E7%A8%8B%E5%BA%8F/%E5%B0%9A%E7%A1%85%E8%B0%B7/01-%E5%B0%8F%E7%A8%8B%E5%BA%8F%E5%9F%BA%E7%A1%80.assets/%E6%A0%BC%E5%BC%8F%E5%8C%96%E6%89%8B%E6%9C%BA%E5%8F%B7.jpg?lastModify=16967234372、实现步骤
5 g% }# i( q" N+ G& t* _* P+ f( H& a% X
- 在小程序项目中创建一个名为 /wxs/phone.wxs 的 WXS 文件,用于编写封装函数
+ Y$ q9 o* s( v9 y: @; n" g - 在 phone.wxs 文件中,编写一个名为 formatPhone 的函数,用于格式化手机号在小程序的页面中,引入 phone.wxs 文件,并调用 formatPhone 函数
- \- A8 o+ t) Z+ v) l1 w* J 3、落地代码
! {2 X e2 j+ m4 M5 _/ Opages/index/index.wxs 中的代码:( n ]1 w$ _7 m& ^4 K) U
// 格式化手机0 y8 O# I( @& r8 q1 p/ [$ e* o$ ]0 f
function formatPhone(phone) {
7 `" u/ \+ r! b" t0 g // 如果手机长度不等于 11,直接将手机号返回
% _% T" Z# h: F' @! Q2 E5 a0 P if (phone.length != 11) {
/ U3 e+ Z% ^* g return mobile;/ c: o$ K" f9 e4 @
}
+ Y) B) T6 }( {9 Z+ e# u6 O
, \! Q/ G+ ?6 w; q2 o3 `0 v return phone.slice(0, 3) + '****' + phone.slice(7); B( [1 w* U8 `8 M
}" Y9 X9 q3 x( B, w+ A8 a
​
9 o( M5 `" G# N; ~ // 导出模块8 j# n0 T6 g: D6 M3 ^
module.exports = {. V; K5 d+ a& \6 t$ y( t* U' e8 J
formatPhone: formatPhone8 a+ a0 c# e7 R& t0 E
}- T6 Q$ A2 t: K
pages/index/index.wxml 中的代码:
5 }" Z. x0 ~: j$ V9 Y% a7 a3 ^7 e r2 |6 b: M9 i; ?% T
​
: q: _% h3 i9 @3 v, e; R" L 格式化后的号码:{{phone.formatPhone(phoneNum)}}/ c* s! E7 i! K
; X' y* {# N/ R5 F8 g7 V
# T: _5 |# j! s& E
2 `1 L6 b. D7 G# C1 o% Z# p1 z3 ~
7 j# f) F# N1 c1 c f2 u
资源下载地址和密码(百度云盘): [/hide] 百度网盘信息回帖可见( A3 F1 Z' A, E8 f, e
) I% _3 E6 R w0 S; ~
* `2 K# o2 Y w$ ]/ I T2 V. [) F- a2 Y/ q9 u/ }
本资源由Java自学网收集整理【www.javazx.com】 |
|