一(yī)般來說會包含以下(xià)4中(zhōng)類型的文件:
-
.json
後綴的JSON
配置文件 -
.wxml
後綴的WXML
模闆文件 -
.wxss
後綴的WXSS
樣式文件 -
.js
後綴的JS
腳本邏輯文件
一(yī):JSON 是一(yī)種數據格式,并不是編程語言,在小(xiǎo)程序中(zhōng),JSON扮演的靜态配置的角色。(例如:app.json 是當前小(xiǎo)程序的全局配置,包括了小(xiǎo)程序的所有頁面路徑、界面表現、網絡超時時間、底部 tab 等。)
這裏說一(yī)下(xià)小(xiǎo)程序裏JSON配置的一(yī)些注意事項。
JSON文件都是被包裹在一(yī)個大(dà)括号中(zhōng) {},通過key-value的方式來表達數據。JSON的Key必須包裹在一(yī)個雙引号中(zhōng),在實踐中(zhōng),編寫 JSON 的時候,忘了給 Key 值加雙引号或者是把雙引号寫成單引号是常見錯誤。
JSON的值隻能是以下(xià)幾種數據格式,其他任何格式都會觸發報錯,例如 JavaScript 中(zhōng)的 undefined。
- 數字,包含浮點數和整數
- 字符串,需要包裹在雙引号中(zhōng)
- Bool值,true 或者 false
- 數組,需要包裹在方括号中(zhōng) []
- 對象,需要包裹在大(dà)括号中(zhōng) {}
- Null
還需要注意的是 JSON 文件中(zhōng)無法使用注釋,試圖添加注釋将會引發報錯。
二:WXML模闆文件充當萬網頁編程中(zhōng)類似 HTML 的角色,其中(zhōng)小(xiǎo)程序的 WXML 用的标簽是 view, button, text 等等。React, Vue),小(xiǎo)程序提倡把渲染和邏輯分(fēn)離(lí)。簡單來說就是不要再讓 JS 直接操控 DOM,JS 隻需要管理狀态即可,然後再通過一(yī)種模闆語法來描述狀态和界面結構的關系即可,例如:目前最流行的前端開(kāi)發React和Vue框架。小(xiǎo)程序的框架也是用到了這個思路。
在WXML模闆中(zhōng)都是通過 {{ }} 的語法把一(yī)個變量綁定到界面上,我(wǒ)們稱爲數據綁定。要完整的描述狀态和界面的關系,還需要 if/else, for等控制能力,在小(xiǎo)程序裏,這些控制能力都用 wx: 開(kāi)頭的屬性來表達。
三:WXSS
樣式文件 具有 CSS
大(dà)部分(fēn)的特性,小(xiǎo)程序在 WXSS
也做了一(yī)些擴充和修改。
-
新增了尺寸單位。在寫
CSS
樣式時,開(kāi)發者需要考慮到手機設備的屏幕會有不同的寬度和設備像素比,采用一(yī)些技巧來換算一(yī)些像素單位。WXSS
在底層支持新的尺寸單位rpx
,開(kāi)發者可以免去(qù)換算的煩惱,隻要交給小(xiǎo)程序底層來換算即可,由于換算采用的浮點數運算,所以運算結果會和預期結果有一(yī)點點偏差。 -
提供了全局的樣式和局部樣式。和前邊
app.json
,page.json
的概念相同,你可以寫一(yī)個app.wxss
作爲全局樣式,會作用于當前小(xiǎo)程序的所有頁面,局部頁面樣式page.wxss
僅對當前頁面生(shēng)效。 -
此外(wài)
WXSS
僅支持部分(fēn)CSS
選擇器。
<view>{{ msg }}view> <button bindtap="clickMe">點擊我(wǒ)button>
點擊 button
按鈕的時候,我(wǒ)們希望把界面上 msg
顯示成 "Hello World"
,于是我(wǒ)們在 button
上聲明一(yī)個屬性: bindtap
,在 JS 文件裏邊聲明了 clickMe
方法來響應這次點擊操作:
Page({ clickMe: function() { this.setData({ msg: "Hello World" }) } })
響應用戶的操作就是這麽簡單,更詳細的事件可以參考文檔 WXML - 事件 。
此外(wài)你還可以在 JS 中(zhōng)調用小(xiǎo)程序提供的豐富的 API,利用這些 API 可以很方便的調起微信提供的能力,例如獲取用戶信息、本地存儲、微信支付等。例如可以使用調用 wx.getUserInfo 獲取微信用戶的頭像和昵稱,最後通過 setData
把獲取到的信息顯示到界面上。