微信小程序開(kāi)發(fā)入門(mén):2.4.2 WXS

2.4.2 WXS

WXS(WeiXin Script)是小程序的一套腳本語(yǔ)言毯焕,結(jié)合 WXML,可以構(gòu)建出頁(yè)面的結(jié)構(gòu)。

注意

  1. wxs 不依賴于運(yùn)行時(shí)的基礎(chǔ)庫(kù)版本望伦,可以在所有版本的小程序中運(yùn)行。

  2. wxs 與 javascript 是不同的語(yǔ)言煎殷,有自己的語(yǔ)法屯伞,并不和 javascript 一致。

  3. wxs 的運(yùn)行環(huán)境和其他 javascript 代碼是隔離的豪直,wxs 中不能調(diào)用其他 javascript 文件中定義的函數(shù)劣摇,也不能調(diào)用小程序提供的API。

  4. wxs 函數(shù)不能作為組件的事件回調(diào)弓乙。

  5. 由于運(yùn)行環(huán)境的差異末融,在 iOS 設(shè)備上小程序內(nèi)的 wxs 會(huì)比 javascript 代碼快 2 ~ 20 倍。在 android 設(shè)備上二者運(yùn)行效率無(wú)差異暇韧。

2.4.2.1 WXS 模塊

WXS 代碼可以編寫(xiě)在 wxml 文件中的 <wxs> 標(biāo)簽內(nèi)勾习,或以 .wxs 為后綴名的文件內(nèi)。

2.4.2.1.1 模塊

每一個(gè) .wxs 文件和 <wxs> 標(biāo)簽都是一個(gè)單獨(dú)的模塊懈玻。

每個(gè)模塊都有自己獨(dú)立的作用域巧婶。即在一個(gè)模塊里面定義的變量與函數(shù),默認(rèn)為私有的涂乌,對(duì)其他模塊不可見(jiàn)艺栈。

一個(gè)模塊要想對(duì)外暴露其內(nèi)部的私有變量與函數(shù),只能通過(guò) module.exports 實(shí)現(xiàn)湾盒。

2.4.2.1.2 .wxs 文件

在微信開(kāi)發(fā)者工具里面湿右,右鍵可以直接創(chuàng)建 .wxs 文件,在其中直接編寫(xiě) WXS 腳本罚勾。

示例代碼:

// /pages/comm.wxs

var foo = "'hello world' from comm.wxs";
var bar = function(d) {
  return d;
}
module.exports = {
  foo: foo,
  bar: bar
};

上述例子在 /pages/comm.wxs 的文件里面編寫(xiě)了 WXS 代碼毅人。該 .wxs 文件可以被其他的 .wxs 文件 或 WXML 中的 <wxs> 標(biāo)簽引用漾唉。

2.4.2.1.3 module 對(duì)象

每個(gè) wxs 模塊均有一個(gè)內(nèi)置的 module 對(duì)象。

1堰塌、屬性

exports: 通過(guò)該屬性赵刑,可以對(duì)外共享本模塊的私有變量與函數(shù)。

2.4.2.1.4 require 函數(shù)

.wxs 模塊中引用其他 wxs 文件模塊场刑,可以使用 require 函數(shù)般此。

引用的時(shí)候,要注意如下幾點(diǎn):

1牵现、只能引用 .wxs 文件模塊铐懊,且必須使用相對(duì)路徑。

2瞎疼、wxs 模塊均為單例科乎,wxs 模塊在第一次被引用時(shí),會(huì)自動(dòng)初始化為單例對(duì)象贼急。多個(gè)頁(yè)面茅茂,多個(gè)地方,多次引用太抓,使用的都是同一個(gè) wxs 模塊對(duì)象空闲。

3、如果一個(gè) wxs 模塊在定義之后走敌,一直沒(méi)有被引用碴倾,則該模塊不會(huì)被解析與運(yùn)行。

src 對(duì)應(yīng)wxml 對(duì)wxs 模塊的引用掉丽;require 滿足其他wxs 文件對(duì)wxs 文件模塊的引用跌榔。

2.4.2.1.5 <wxs> 標(biāo)簽

<wxs> 標(biāo)簽屬性

1、module 屬性

module 屬性是當(dāng)前 <wxs> 標(biāo)簽的模塊名捶障。在單個(gè) wxml 文件內(nèi)僧须,建議其值唯一。有重復(fù)模塊名則按照先后順序覆蓋(后者覆蓋前者)残邀。不同文件之間的 wxs 模塊名不會(huì)相互覆蓋皆辽。

module 屬性值的命名必須符合下面兩個(gè)規(guī)則:

  • 首字符必須是:字母(a-zA-Z)柑蛇,下劃線(_)
  • 剩余字符可以是:字母(a-zA-Z)芥挣,下劃線(_), 數(shù)字(0-9)

2耻台、src 屬性

src 屬性可以用來(lái)引用其他的 wxs 文件模塊空免。

引用的時(shí)候,要注意如下幾點(diǎn):

  • 只能引用 .wxs 文件模塊盆耽,且必須使用相對(duì)路徑蹋砚。

  • wxs 模塊均為單例扼菠,wxs 模塊在第一次被引用時(shí),會(huì)自動(dòng)初始化為單例對(duì)象坝咐。多個(gè)頁(yè)面循榆,多個(gè)地方,多次引用墨坚,使用的都是同一個(gè) wxs 模塊對(duì)象秧饮。

  • 如果一個(gè) wxs 模塊在定義之后,一直沒(méi)有被引用泽篮,則該模塊不會(huì)被解析與運(yùn)行盗尸。

3、注意

  • <wxs> 模塊只能在定義模塊的 WXML 文件中被訪問(wèn)到帽撑。使用 <include><import> 時(shí)泼各,<wxs> 模塊不會(huì)被引入到對(duì)應(yīng)的 WXML 文件中。如需引用亏拉,則需要將 <wxs> 模塊的代碼放在單獨(dú)的 .wxs 文件模塊扣蜻,然后使用使用 src 引用。

  • <template> 標(biāo)簽中及塘,只能使用定義該 <template> 的 WXML 文件中定義的 <wxs> 模塊弱贼。

2.4.2.2 變量

2.4.2.2.1 概念

1、WXS 中的變量均為值的引用磷蛹。

2吮旅、沒(méi)有聲明的變量直接賦值使用,會(huì)被定義為全局變量味咳。

3庇勃、如果只聲明變量而不賦值,則默認(rèn)值為 undefined槽驶。

4责嚷、var表現(xiàn)與javascript一致,會(huì)有變量提升掂铐。

2.4.2.2.2 變量名

變量命名必須符合下面兩個(gè)規(guī)則:

  • 首字符必須是:字母(a-zA-Z)罕拂,下劃線(_)
  • 剩余字符可以是:字母(a-zA-Z),下劃線(_)全陨, 數(shù)字(0-9)

2.4.2.3 注釋

WXS 主要有 3 種注釋的方法爆班。

示例代碼:

<!-- wxml -->
<wxs module="sample">
// 方法一:?jiǎn)涡凶⑨?
/*
方法二:多行注釋
*/

/*
方法三:結(jié)尾注釋。即從 /* 開(kāi)始往后的所有 WXS 代碼均被注釋

var a = 1;
var b = 2;
var c = "fake";

</wxs>

上述例子中辱姨,所有 WXS 代碼均被注釋掉了柿菩。

方法三 和 方法二 的唯一區(qū)別是,沒(méi)有 */ 結(jié)束符雨涛。

2.4.2.4 運(yùn)算符

  1. 基本運(yùn)算符
  2. 一元運(yùn)算符
  3. 位運(yùn)算符
  4. 比較運(yùn)算符
  5. 等值運(yùn)算符
  6. 賦值運(yùn)算符
  7. 二元邏輯運(yùn)算符
  8. 其他運(yùn)算符

參考:運(yùn)算符介紹及優(yōu)先級(jí)

2.4.2.5 語(yǔ)句

  1. if 語(yǔ)句
  2. switch 語(yǔ)句
  3. for 語(yǔ)句
  4. while 語(yǔ)句

參考:語(yǔ)句

2.4.2.6 數(shù)據(jù)類(lèi)型

WXS 語(yǔ)言目前共有以下幾種數(shù)據(jù)類(lèi)型:

  1. number : 數(shù)值
  2. string :字符串
  3. boolean:布爾值
  4. object:對(duì)象
  5. function:函數(shù)
  6. array : 數(shù)組
  7. date:日期
  8. regexp:正則

參考:數(shù)據(jù)類(lèi)型

2.4.2.7 基礎(chǔ)類(lèi)庫(kù)

參考:基礎(chǔ)類(lèi)庫(kù)


參考資料:https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末枢舶,一起剝皮案震驚了整個(gè)濱河市懦胞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌凉泄,老刑警劉巖躏尉,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異后众,居然都是意外死亡醇份,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)吼具,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)僚纷,“玉大人,你說(shuō)我怎么就攤上這事拗盒〔澜撸” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵陡蝇,是天一觀的道長(zhǎng)痊臭。 經(jīng)常有香客問(wèn)我,道長(zhǎng)登夫,這世上最難降的妖魔是什么广匙? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮恼策,結(jié)果婚禮上鸦致,老公的妹妹穿的比我還像新娘。我一直安慰自己涣楷,他們只是感情好分唾,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著狮斗,像睡著了一般绽乔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上碳褒,一...
    開(kāi)封第一講書(shū)人閱讀 51,274評(píng)論 1 300
  • 那天折砸,我揣著相機(jī)與錄音,去河邊找鬼沙峻。 笑死睦授,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的专酗。 我是一名探鬼主播睹逃,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼祷肯!你這毒婦竟也來(lái)了沉填?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤佑笋,失蹤者是張志新(化名)和其女友劉穎翼闹,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蒋纬,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡猎荠,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蜀备。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片关摇。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖碾阁,靈堂內(nèi)的尸體忽然破棺而出输虱,到底是詐尸還是另有隱情,我是刑警寧澤脂凶,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布宪睹,位于F島的核電站,受9級(jí)特大地震影響蚕钦,放射性物質(zhì)發(fā)生泄漏亭病。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一嘶居、第九天 我趴在偏房一處隱蔽的房頂上張望罪帖。 院中可真熱鬧,春花似錦邮屁、人聲如沸胸蛛。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)葬项。三九已至,卻和暖如春迹蛤,著一層夾襖步出監(jiān)牢的瞬間民珍,已是汗流浹背捞附。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工云矫, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留苟蹈,地道東北人香浩。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓廉油,卻偏偏與公主長(zhǎng)得像得运,于是被迫代替她去往敵國(guó)和親储藐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子赊时,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 第2章 基本語(yǔ)法 2.1 概述 基本句法和變量 語(yǔ)句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,148評(píng)論 0 13
  • 〇抖所、前言 本文共108張圖梨州,流量黨請(qǐng)慎重! 歷時(shí)1個(gè)半月田轧,我把自己學(xué)習(xí)Python基礎(chǔ)知識(shí)的框架詳細(xì)梳理了一遍暴匠。 ...
    Raxxie閱讀 18,954評(píng)論 17 410
  • 框架的視圖層由 WXML 與 WXSS 編寫(xiě)每窖,由組件來(lái)進(jìn)行展示。 將邏輯層的數(shù)據(jù)反應(yīng)成視圖弦悉,同時(shí)將視圖層的事件發(fā)送...
    wangbu2閱讀 735評(píng)論 0 0
  • 第一次寫(xiě)作不知道怎么開(kāi)始窒典,周六下班走在路上忽然想起了老爹。印象中的老爹年輕的時(shí)候有點(diǎn)帥稽莉,脾氣不好瀑志,一言不和就來(lái)脾氣...
    品牌人Yama閱讀 276評(píng)論 0 0
  • 2017.09.02 周六啦,今天是新學(xué)期的第一節(jié)舞蹈課肩祥。 天氣霧霾很厲害后室,中央電視塔近在咫尺都看不到。 一路上堵...
    摹喵居士閱讀 185評(píng)論 0 0