這是微信小程序近期引入的一個概念,我們可以在開發(fā)者工具中直接以獨立文件的形式建立它們。 當(dāng)然你也可以使用wxs標(biāo)簽直接在wxml文件中使用。
使用場景:比如我們可以在視圖里直接納入簡單的邏輯代碼或是對page傳遞過來的變量進行處理(例如篩選和格式化等等),讓你編碼更簡單。 因此wxs有自己的變量和語法,接下來開始流水賬。 變量官方文檔地址為 https://mp.weixin.qq.com/debu...
微信官方說:“var表現(xiàn)與javascript一致,會有變量提升。”
舉個例子
而你在wxml的wxs內(nèi)也定義了一個m.msg,如下圖
則我們在視圖內(nèi)使用{{m.msg}}會輸出hello world 而不是abc。
還是上面的例子,比如你定于如下圖
我們用log打印下,只是聲明的變量值統(tǒng)一為undefined,當(dāng)然你在視圖內(nèi)引用的時候并不會報錯,只是顯示為空而已。
wxs內(nèi)部定義了一些標(biāo)識符,有特殊的含義,不允許變量使用,比如var、if、for、this、case、else等等,都是用來表示某種語法結(jié)構(gòu)的。 詳細(xì)表看官方文檔,都已經(jīng)給出了,當(dāng)然你記不住也沒關(guān)系,開發(fā)工具會報錯如下信息。
注釋官方文檔:https://mp.weixin.qq.com/debu... 這里有一點要說下,就是wxs支持的第三種注釋方法,當(dāng)我們寫一個 /* 時候,代表從 /* 開始往后的所有 wxs 代碼均被注釋,這里的所有代表wxs塊的結(jié)尾,有一點要注意,看圖。
注釋的范圍是當(dāng)前模塊,因此m2的msg2變量依然可以在視圖上顯示出來。 運算符官方文檔:https://mp.weixin.qq.com/debu... 該有的都有了,比如最常用的大于小于不等于、求余數(shù)、三元運算符等等,你在一個計算機語言中用的運算符在wxs內(nèi)都有,具體都有哪些見官方文檔。 語句官方文檔:https://mp.weixin.qq.com/debu... 話說計算機語言無外乎真假問題、多少問題!抽象過來就是判斷語句和循環(huán)語句,wxs的判斷和循環(huán)語句和其他語言都差不多,相信大家自己看文檔就清楚,還是需要注意下truthy的問題。
wxs集成了js的邏輯,有truthy的概念,簡單點說每個變量隱藏著boolean屬性,而if是根據(jù)truthy來判斷分支而非狹義的boolean。 具體什么是truthy推薦大家看下面的這篇文章:http://blog.csdn.net/notzuono... 寫的相當(dāng)不錯。 數(shù)據(jù)類型官方文檔:https://mp.weixin.qq.com/debu... 我們把"hello world"叫做字符串類型,909叫做整數(shù)類型,wxs一共支持如下幾種數(shù)據(jù)類型。
你可能會差異為何function還是一種數(shù)據(jù)類型,完全沒問題的,看下圖我定義的函數(shù)類型的變量b
你能用的函數(shù)官方文檔:https://mp.weixin.qq.com/debu... 很多很多,一種是類庫,一種是每種數(shù)據(jù)變量的函數(shù)。 比如你是字符串的時候,就可以使用它的replace、search等等函數(shù),大部分函數(shù)的功能和命名和js中的都一樣,看官方文檔吧。 模塊官方文檔:https://mp.weixin.qq.com/debu... 這些年js界出現(xiàn)了比如seajs、webpack等模塊化工具,wxs也是這個邏輯。
我們不能直接使用模塊內(nèi)的數(shù)據(jù),只能和模塊暴露出的接口進行溝通,所以每個模塊都有類似下面的語句
其實在js中也是這樣的。
如果此刻你是一個.wxs文件,那就直接使用 類似于 var msg = require("./msg.wxs");語法即可 如果此刻你是一個wxml文件,那需要使用wxs標(biāo)簽,指定src和module屬性,如下語句 <wxs src="./../msg.wxs" module="msg" /> 當(dāng)然有一些要注意的地方,這里不做陳述,大家務(wù)必仔細(xì)看下官方文檔,我們必須要看的。 最后以上5篇其實沒有太多技術(shù)問題,更多是小程序的基礎(chǔ)課程,我們只需要記住它、使用它即可。 接下來我們會對一些組件、api進行講解,希望電腦前的你安裝好微信小程序開發(fā)工具,要寫寫代碼啦。 |