微信小程序開發備忘

小程序開發已經用三脚貓功夫做了一些粗略的實現,接下來就是學習這個技術框架中的細節,并且返工之前粗略、粗糙的地方。今天學習了一下幾個技術技巧: 一、子控件向父控件發送帶參數事件消息 頁面上的button按鈕是我做的一個子控件、這個按鈕是放在panel控件中的。現在我想點擊button按鈕的時候,button按鈕完成響應、并將事件通知給panel,由panel接收並繼續處理事件。 此前的實現非常拙劣,就是只使用panel進行事件的處理: 這樣做的壞處是顯然的:觸摸會發生在整個panel中。而我希望的是觸摸僅由裏面的button受理。改造過程如下: 1、首先panel的頁面層,調整代碼如下: 這樣調整之後,panel不再接受bind:tap消息,而是會接收名爲customEvent的事件,一旦接收到customEvent事件,則進行running執行。此時的customEvent事件將由button發出,所以button的代碼寫成下面的形式: 這樣只要點擊了button,就會運行sendEvent方法,這個方法内實現向父層發出消息的過程,具體js代碼是: 通過triggerEvent發出了一個customEvent事件,父控件因爲綁定了這個事件、接收到並開始處理就可以了。 二、動態成員訪問的方法 類似如下的PHP代碼: 在JavaScript中的實現方式是: 三、控件數據初始化 微信小程序的components控件,似乎沒有(我不確定)如pages頁面那樣的onLoad()方法,儅加載了一個小控件之後,向這個控件中傳入一些初始變量,便沒有辦法找到一個Init()或onLoad()的地方,對這些傳進來的變量進行預處理、以被在頁面上使用。 此時可以使用控件的observers監聽服務,對傳遞進來的變量進行監控,一旦傳遞進來的變量生效,observers服務啓動,以便進行數據的預處理操作。具體代碼如下: 四、頁面中的if/else流控方式 此前頁面中一直是這麽寫: 現在有了更好的方法: 雖然在頁面上的if/else流控寫法我已經瞭解了,但感覺并不如C/C++那樣直觀,總感覺有些奇怪,擔心它的嵌套不準確。不過也不重要,總之今天掌握的,就是這些。