微信小程序:開發之前要知道的三件事

前言

微信之父張小龍在年初的那次演講中曾表示:“我自己是很多年的程序員,我覺得我們應該為開發的團隊做一些事情”。幾個月后,微信正式推出微信應用號(即微信小程序),在互聯網中掀起了又一波熱潮。于是,很多人準備要開發微信的小程序,如果你真的想要開發小程序,就要先學會一套微信特制的“開發語言”。為了更好地上手這門開發語言,下面這三件事你一定要知道:

語言與文件

微信小程序來發與其他平臺開發的最大差異在于:微信使用的開發語言和文件很“個性”。小程序所使用的程序文件類型大致分為以下幾種:

[if !supportLists]·[endif]WXMLWeiXin Mark Language,微信標記語言)

[if !supportLists]·[endif]WXSSWeiXin Style Sheet,微信樣式表)

[if !supportLists]·[endif]JSJavaScript小游戲的主體)

在語言方面,下程序看似重新定義了一套標準。但實際上,他們與“前端三件套”(HTML、CSS和JavaScript)差不太多。來來來,看一下微信小程序開發語言和“前端三件套”的異同點。

界面搭建

1、基本邏輯

WXML和WXSS兩種文件是小程序界面元素聲明及樣式描述文件。

WXML最大的特點是以視圖(View)的方式串聯界面元素,并通過程序邏輯(AppService)將信息更新實時傳遞至視圖層。

View類似于HTML中的div元素,在構建的時候,View可以被多級嵌套,View內可以放置任意視覺元素。

需要注意的是,元素一旦超出屏幕之外,用戶就無法看到了,這是與HTML喲較大的不同。小程序喲專門用于滾動的視圖。如果希望界面是一個可以自由滾動的界面(例如列表等),可以使用scroll-view視圖,在WXSS中將其大小調整為整個屏幕,并設置scroll-y(上下滾動)或scroll-x(左右滾動)為true,

注意,小程序中不能直接使用DOM控制WXML元素。如果需要進行數據更新,就要使用WXML提供的數據綁定及元素渲染方法,還有一點,小程序的柵格排版系統使用的是Flex布局,它是W3C2009年提出的一種排版標準。

2、綁定數據

對于單個字段,開發者可以使用數據綁定的方法進行信息更新。綁定的數據除了在加載的時候可以更新,也可以在JS主程序中以函數形式進行更新,更新同樣可以反應到界面上被綁定的數據中。

3、條件渲染與列表(循環)渲染

條件渲染適用于有意外情況提示的頁面(如無法加載列表或詳情時,做出提示等等)。它的渲染帶有觸發條件,即符合條件時渲染這個頁面,否則忽略或渲染另一端代碼。兩個花括號所包含的判斷條件中的變量于主程序JS代碼中的data中聲明。將同一元素渲染代碼進行集合。循環的數據可以通過數組的方式寫入data中供WXML訪問。渲染完畢后,渲染判斷條件的變動可以影響界面變動。

4、模板與引用

WXML支持使用模板與引用減少代碼體積。模板是在WXML代碼中對相同的代碼進行復用的方式??梢詫⒍鄠€模板寫入至同一個文件,并使用import在其他文件中進行引用。如果需要整個頁面引用,需要使用include

5、樣式

通過WXSS樣式表,開發者可以定義WXML中的元素樣式。WXSS與CSS代碼一樣,可以直接使用選擇器選擇元素,在WXML中也可以直接定義元素的id和class以便于在WXSS文件中進行樣式定義。

6、用戶操作與事件響應

由于微信使用的不是HTML,所以也不能通過添加超鏈接(a元素)的方式來檢測用戶的點擊事件。對于需要監聽點擊事件的元素,應該在WXML中使用bindtap屬性catchtap屬性進行綁定。除了點擊一次,微信也提供按住、開始觸摸、松手等事件響應。在WXML中綁定好一個事件之后,就能在主程序中使用。其他的API中也有相應的事件,這些事件樂意在微信小程序的官方文檔中查閱到。當需要在小程序的頁面間進行跳轉時,應該使用wx.navigateTo()方式。注意,有關于頁面層級跳轉,微信將層級跳轉限制在5層。在開發時一定注意不要超過了相應限制。

網絡請求方式

網絡訪問小程序支持三種請求方式:HTTP連接、WebSocket、文件收發連接。

[if !supportLists]·[endif]HTTP連接:請求后直接返回結果,連接結束;

[if !supportLists]·[endif]Socket連接:持續性連接,當一方主動關閉連接時,連接結束;

[if !supportLists]·[endif]文件收發連接:顧名思義,發生在文件傳輸時的連接。(錄制的語音和選擇的照片都需要這個連接完成)。

注意,通過小程序訪問網絡需要服務器必須支持HTTPS連接,且端口必須為443。同時,小程序只能訪問開發者在登記小程序時設定的服務器地址。

開發語言和“前端三件套”的異同點

[if !supportLists]·[endif]HTMLWXML兩者差異比較大,如果之前沒有接觸過Android開發,可能會覺得有些頭疼。事實上,WXML更像是Android開發中的界面XML描述文件,適合于程序界面的構建;而HTML則傾向于文章的展示(這與HTML的歷史有關),以及互聯網頁面的構建。

[if !supportLists]·[endif]WXSSCSS兩者在語言上幾乎沒有差別,可以直接通用。

[if !supportLists]·[endif]JS文件:小程序的JS文件與前端開發使用的JS幾乎沒有區別,只是小程序的JS新增了微信的一些API接口,并去除了一些不必要的功能(如DOM)。

在有眼上,小程序完全向學習成本最低的前端開發看齊,但這不代表所有開發者都能無縫遷移。如果你是從前端開發轉向小程序,就要注意這兩點:

[if !supportLists]·[endif]1、HTMLWXML兩種文件的構建思想差異較大,如果之前只接觸過前端開發,需要一點時間才能適應WXML的編寫方法。

[if !supportLists]·[endif]2、雖然小程序使用的是前端語言,但不代表可以繼續沿用的開發思想進行開發。小程序對前端開發的要求從【構建界面】升級成【開發完整應用】,前端開發需要在意識上進行轉變。微信小程序:開發之前要知道的三件事

前言

微信之父張小龍在年初的那次演講中曾表示:“我自己是很多年的程序員,我覺得我們應該為開發的團隊做一些事情”。幾個月后,微信正式推出微信應用號(即微信小程序),在互聯網中掀起了又一波熱潮。于是,很多人準備要開發微信的小程序,如果你真的想要開發小程序,就要先學會一套微信特制的“開發語言”。為了更好地上手這門開發語言,下面這三件事你一定要知道:

語言與文件

微信小程序來發與其他平臺開發的最大差異在于:微信使用的開發語言和文件很“個性”。小程序所使用的程序文件類型大致分為以下幾種:

[if !supportLists]·[endif]WXMLWeiXin Mark Language微信標記語言)

[if !supportLists]·[endif]WXSSWeiXin Style Sheet,微信樣式表)

[if !supportLists]·[endif]JSJavaScript,小游戲的主體)

在語言方面,下程序看似重新定義了一套標準。但實際上,他們與“前端三件套”(HTML、CSS和JavaScript)差不太多。來來來,看一下微信小程序開發語言和“前端三件套”的異同點。

界面搭建

1、基本邏輯

WXML和WXSS兩種文件是小程序界面元素聲明及樣式描述文件。

WXML最大的特點是以視圖(View)的方式串聯界面元素,并通過程序邏輯(AppService)將信息更新實時傳遞至視圖層。

View類似于HTML中的div元素,在構建的時候,View可以被多級嵌套,View內可以放置任意視覺元素。

需要注意的是,元素一旦超出屏幕之外,用戶就無法看到了,這是與HTML喲較大的不同。小程序喲專門用于滾動的視圖。如果希望界面是一個可以自由滾動的界面(例如列表等),可以使用scroll-view視圖,在WXSS中將其大小調整為整個屏幕,并設置scroll-y(上下滾動)或scroll-x(左右滾動)為true,

注意,小程序中不能直接使用DOM控制WXML元素。如果需要進行數據更新,就要使用WXML提供的數據綁定及元素渲染方法,還有一點,小程序的柵格排版系統使用的是Flex布局,它是W3C2009年提出的一種排版標準。

2、綁定數據

對于單個字段,開發者可以使用數據綁定的方法進行信息更新。綁定的數據除了在加載的時候可以更新,也可以在JS主程序中以函數形式進行更新,更新同樣可以反應到界面上被綁定的數據中。

3、條件渲染與列表(循環)渲染

條件渲染適用于有意外情況提示的頁面(如無法加載列表或詳情時,做出提示等等)。它的渲染帶有觸發條件,即符合條件時渲染這個頁面,否則忽略或渲染另一端代碼。兩個花括號所包含的判斷條件中的變量于主程序JS代碼中的data中聲明。將同一元素渲染代碼進行集合。循環的數據可以通過數組的方式寫入data中供WXML訪問。渲染完畢后,渲染判斷條件的變動可以影響界面變動。

4、模板與引用

WXML支持使用模板與引用減少代碼體積。模板是在WXML代碼中對相同的代碼進行復用的方式??梢詫⒍鄠€模板寫入至同一個文件,并使用import在其他文件中進行引用。如果需要整個頁面引用,需要使用include。

5、樣式

通過WXSS樣式表,開發者可以定義WXML中的元素樣式。WXSS與CSS代碼一樣,可以直接使用選擇器選擇元素,在WXML中也可以直接定義元素的id和class以便于在WXSS文件中進行樣式定義。

6、用戶操作與事件響應

由于微信使用的不是HTML,所以也不能通過添加超鏈接(a元素)的方式來檢測用戶的點擊事件。對于需要監聽點擊事件的元素,應該在WXML中使用bindtap屬性catchtap屬性進行綁定。除了點擊一次,微信也提供按住、開始觸摸、松手等事件響應。在WXML中綁定好一個事件之后,就能在主程序中使用。其他的API中也有相應的事件,這些事件樂意在微信小程序的官方文檔中查閱到。當需要在小程序的頁面間進行跳轉時,應該使用wx.navigateTo()方式。注意,有關于頁面層級跳轉,微信將層級跳轉限制在5層。在開發時一定注意不要超過了相應限制。

網絡請求方式

網絡訪問小程序支持三種請求方式:HTTP連接、WebSocket、文件收發連接。

[if !supportLists]·[endif]HTTP連接:請求后直接返回結果,連接結束;

[if !supportLists]·[endif]Socket連接:持續性連接,當一方主動關閉連接時,連接結束;

[if !supportLists]·[endif]文件收發連接:顧名思義,發生在文件傳輸時的連接。(錄制的語音和選擇的照片都需要這個連接完成)。

注意,通過小程序訪問網絡需要服務器必須支持HTTPS連接,且端口必須為443。同時,小程序只能訪問開發者在登記小程序時設定的服務器地址。

開發語言和“前端三件套”的異同點

[if !supportLists]·[endif]HTMLWXML兩者差異比較大,如果之前沒有接觸過Android開發,可能會覺得有些頭疼。事實上,WXML更像是Android開發中的界面XML描述文件,適合于程序界面的構建;而HTML則傾向于文章的展示(這與HTML的歷史有關),以及互聯網頁面的構建。

[if !supportLists]·[endif]WXSSCSS兩者在語言上幾乎沒有差別,可以直接通用。

[if !supportLists]·[endif]JS文件:小程序的JS文件與前端開發使用的JS幾乎沒有區別,只是小程序的JS新增了微信的一些API接口,并去除了一些不必要的功能(如DOM)。

在有眼上,小程序完全向學習成本最低的前端開發看齊,但這不代表所有開發者都能無縫遷移。如果你是從前端開發轉向小程序,就要注意這兩點:

[if !supportLists]·[endif]1HTMLWXML兩種文件的構建思想差異較大,如果之前只接觸過前端開發,需要一點時間才能適應WXML的編寫方法。

[if !supportLists]·[endif]2、雖然小程序使用的是前端語言,但不代表可以繼續沿用的開發思想進行開發。小程序對前端開發的要求從【構建界面】升級成【開發完整應用】,前端開發需要在意識上進行轉變。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,406評論 6 538
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,034評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,413評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,449評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,165評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,559評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,606評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,781評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,327評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,084評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,278評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,849評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,495評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,927評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,172評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,010評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,241評論 2 375

推薦閱讀更多精彩內容

  • 1. 前言 1.1 微信小程序 微信小程序近期可謂是動作頻出,僅最近新增的能力就有: 允許個人開發者申請注冊小程序...
    騰兒飛閱讀 3,504評論 3 13
  • 昨天看了一下微信小程序官方文檔,總結一下自己學習的個人心得. 首先從官方文檔給的框架說起,微信小程序官方文檔給出了...
    Mr大大大閱讀 47,214評論 9 68
  • 最近做了一個投票的微信小程序,開發過程主要還是參考官方文檔:https://mp.weixin.qq.com/de...
    june5253閱讀 22,040評論 1 11
  • 三句話影評: 環環相扣的反轉,立體多面的人物。 不只是單純的懸疑故事,還是由點到面的人性折射。 懸疑迷不容錯過的現...
    歸歌閱讀 996評論 4 4
  • 手機崛起 小米的啟示 要么有顛覆性的產品,要么有顛覆性的理念,否則就等著自我顛覆吧!——致現在還是巨頭的手機廠商們...
    KSZxMX閱讀 743評論 0 1