2.微信小程序-B站:需要先知道這些

文件結(jié)構(gòu)

小程序包含一個描述整體程序的 app 和多個描述各自頁面的 page。一個小程序主體部分由三個文件組成,必須放在項目的根目錄,如下:

文件 必須 作用
app.js 小程序邏輯
app.json 小程序公共配置
app.wxss 小程序公共樣式表

一個小程序頁面由四個文件組成,分別是:

文件 必須 作用
頁面名.js 頁面邏輯
頁面名.wxml 界面布局文件
頁面名.wxss 頁面樣式表
頁面名.json 頁面配置

注意:這四個文件的頁面名必須具有相同的路徑與文件名。

(小安娜:js & json我認(rèn)識,wxml、wxss是什么鬼,地球上從未見過的格式?。?/em>

配置

我們使用app.json文件來對微信小程序進(jìn)行全局配置,決定頁面文件的路徑、窗口表現(xiàn)、設(shè)置網(wǎng)絡(luò)超時時間、設(shè)置多 tab 等。以下是一個包含了所有配置選項的簡單配置app.json

(小安娜:app.json,我可以改成abc.json不?)

{
  "pages":[
    "pages/index/index"
  ],
  "window":{
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "嗶哩嗶哩彈幕視頻網(wǎng)",
    "navigationBarTextStyle": "black",
    "backgroundColor": "#f4f4f4"
  },
  "debug": true
}

(小安娜:#fff是什么意思?我只知道FFF團(tuán)?。?/em>,#fff代表HexColor十六進(jìn)制顏色值。(小安娜:我不管這些,我只想知道這個值是怎么來的?),小安娜你是刁難我的吧,這個是設(shè)計上的問題,開發(fā)前可讓設(shè)計師標(biāo)注下界面的顏色值,或者看到喜歡的顏色也可用屏幕顏色拾取工具獲取。

app.json 配置項列表

文件 類型 必須 作用
pages String Array 設(shè)置頁面路徑集合
window Object 設(shè)置默認(rèn)頁面的窗口表現(xiàn)
tabBar Object 設(shè)置底部 tab 的表現(xiàn)
networkTimeout Object 設(shè)置網(wǎng)絡(luò)超時時間
debug Boolean 設(shè)置是否開啟 debug 模式

pages

接受一個數(shù)組,每一項都是字符串,來指定小程序由哪些頁面組成。每一項代表對應(yīng)頁面的【路徑+文件名】,數(shù)組的第一項代表小程序的初始頁面。小程序中新增/減少頁面,都需要對 pages 數(shù)組進(jìn)行修改。

文件名不需要寫后綴,框架會自動尋找路徑.json、.js、.wxml、.wxss四個文件進(jìn)行整合。

(小安娜:不是很明白這段話,什么鬼自動尋找路徑,四個文件進(jìn)行整合)

如開發(fā)目錄為:

  • pages/
  • |-- pages/index/index.wxml
  • |-- pages/index/index.js
  • |-- pages/index/index.wxss
  • app.js
  • app.json
  • app.wxss

則,我們只需要在 app.json 中寫:
(pages/index/index不需要添加后綴)

{
  "pages":[
    "pages/index/index"
  ]
}

window

用于設(shè)置小程序的狀態(tài)欄、導(dǎo)航條、標(biāo)題、窗口背景色。

屬性 類型 默認(rèn)值 描述
navigationBarBackgroundColor HexColor 導(dǎo)航欄背景顏色,如"#000000"
navigationBarTextStyle String #000000 導(dǎo)航欄標(biāo)題顏色,僅支持 black/white
navigationBarTitleText String white 導(dǎo)航欄標(biāo)題文字內(nèi)容
backgroundColor HexColor #ffffff 窗口的背景色
backgroundTextStyle String dark 下拉背景字體、loading 圖的樣式,僅支持 dark/light
enablePullDownRefresh Boolean false 是否開啟下拉刷新

app.json

{
  "window":{
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "嗶哩嗶哩彈幕視頻網(wǎng)",
    "navigationBarTextStyle": "black",
    "backgroundColor": "#f4f4f4"
  }
}

tabBar

由于本項目中未用到tabBar就不耽誤大家的時間了,如需要了解見官方文檔:https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html#tabbar

(小安娜:tabBar是客戶端窗口底部的tab欄可以切換頁面,可配置最少2個、最多5個 tab,不要感謝我,記得我是雷鋒就行),噗~,這都行!

networkTimeout

可以設(shè)置各種網(wǎng)絡(luò)請求的超時時間。

屬性 類型 必填 說明
request Number wx.request的超時時間,單位毫秒
connectSocket Number wx.connectSocket的超時時間,單位毫秒
uploadFile Number wx.uploadFile的超時時間,單位毫秒
downloadFile Number wx.downloadFile的超時時間,單位毫秒

(小安娜:wx.request、wx.connectSocket、wx.uploadFilewx.downloadFile這些又是什么?),wx.request:發(fā)起網(wǎng)絡(luò)請求,wx.connectSocket:創(chuàng)建 WebSocket 連接,wx.uploadFile:上傳文件,wx.downloadFile:下載文件,這些API先簡單有個印象,文章會陸續(xù)用上詳細(xì)介紹。

debug

可以在開發(fā)者工具中開啟 debug 模式,在開發(fā)者工具的控制臺面板(小安娜:控制臺面板在哪?),調(diào)試信息以 info 的形式給出,其信息有Page的注冊,頁面路由,數(shù)據(jù)更新,事件觸發(fā) 。 可以幫助開發(fā)者快速定位一些常見的問題。

控制臺面板

(小安娜:你有沒有debug模式啊,讓我開啟就能知道你所有的秘密,微信支付、支付寶、銀行卡密碼...嘻嘻壞笑~)

所以最終app.json是這樣的

{
  "pages":[
    "pages/index/index"
  ],
  "window":{
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "嗶哩嗶哩彈幕視頻網(wǎng)",
    "navigationBarTextStyle": "black",
    "backgroundColor": "#f4f4f4"
  },
  "debug": true
}

小安娜有問題

app.json我可以隨便改成abc.json嗎?

杰爾夫君:不可以,app.js、app.jsonapp.wxss微信小程序會讀取這些文件,并生成小程序?qū)嵗?,任何一個文件名都不可以改動。

wxml、wxss文件格式是什么?

杰爾夫君:WXML(WeiXin Markup Language)是微信框架設(shè)計的一套標(biāo)簽語言,結(jié)合基礎(chǔ)組件、事件系統(tǒng),可以構(gòu)建出頁面的結(jié)構(gòu)。WXSS(WeiXin Style Sheets)是一套樣式語言,用于描述 WXML 的組件樣式,與CSS類似,也具有CSS大部分特性。這2個文件具體會在下一篇文章詳細(xì)講解。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容