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