Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4292|回复: 66

2023年尚硅谷大前端学习笔记

  [复制链接]

该用户从未签到

8

主题

142

帖子

292

积分

普通会员

Rank: 2

积分
292
发表于 2023-10-8 12:12:01 | 显示全部楼层 |阅读模式
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 _/ O
    pages/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 ~
121202i2lxodalo424nq4y.png 121204lrvhy8z9vzroyseo.png 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】
回复

使用道具 举报

该用户从未签到

4

主题

163

帖子

320

积分

普通会员

Rank: 2

积分
320
发表于 2023-10-8 11:25:28 | 显示全部楼层
2023年尚硅谷大前端学习笔记
回复 支持 反对

使用道具 举报

该用户从未签到

6

主题

171

帖子

338

积分

普通会员

Rank: 2

积分
338
发表于 2023-10-8 11:38:38 | 显示全部楼层
2023年尚硅谷大前端学习笔记
回复 支持 反对

使用道具 举报

该用户从未签到

8

主题

139

帖子

284

积分

普通会员

Rank: 2

积分
284
发表于 2023-10-8 11:56:21 | 显示全部楼层
强烈支持楼主ing……
回复 支持 反对

使用道具 举报

该用户从未签到

5

主题

156

帖子

295

积分

普通会员

Rank: 2

积分
295
发表于 2023-10-8 12:04:59 | 显示全部楼层
强烈支持楼主ing……
回复 支持 反对

使用道具 举报

该用户从未签到

5

主题

155

帖子

315

积分

普通会员

Rank: 2

积分
315
发表于 2023-10-8 12:12:15 | 显示全部楼层
真是难得给力的帖子啊。
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

4154

帖子

8312

积分

普通会员

Rank: 2

积分
8312
发表于 2023-10-25 07:43:51 | 显示全部楼层
学习学习啦
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2015-6-11 11:45
  • 签到天数: 1 天

    [LV.1]初学乍练

    0

    主题

    4132

    帖子

    8283

    积分

    普通会员

    Rank: 2

    积分
    8283
    发表于 2023-11-20 16:05:32 | 显示全部楼层
    66666,很棒
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2015-7-24 00:03
  • 签到天数: 4 天

    [LV.2]登堂入室

    0

    主题

    4195

    帖子

    8474

    积分

    普通会员

    Rank: 2

    积分
    8474
    发表于 2023-12-15 09:38:45 | 显示全部楼层
    这么优秀的么
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4221

    帖子

    8444

    积分

    普通会员

    Rank: 2

    积分
    8444
    发表于 2024-1-3 08:23:30 | 显示全部楼层
    好,很好,非常好!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Java自学网

    GMT+8, 2024-12-26 08:31 , Processed in 0.118385 second(s), 31 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

    快速回复 返回顶部 返回列表