小程序之注冊配置詳解

本文主要介紹微信小程序的框架頁面結(jié)構(gòu)钝满。

小程序目錄結(jié)構(gòu)

小程序包含一個(gè)描述整體程序的 app 和多個(gè)描述各自頁面的 page
一個(gè)小程序主體部分由三個(gè)文件組成弧械,必須放在項(xiàng)目根目錄下

文件 可選性 描述
app.js 必須項(xiàng) 小程序邏輯(注冊入口)
app.json 必須項(xiàng) 小程序公共設(shè)置(路由配置以及 app 窗口設(shè)置)
app.wxss 可選項(xiàng) 小程序公共樣式表

一個(gè) 小程序頁面由四個(gè)文件組成,分別是

文件 可選性 描述
wxml 必須項(xiàng) 應(yīng)用模塊結(jié)構(gòu)
wxss 可選項(xiàng) 應(yīng)用模塊樣式表
json 可選項(xiàng) 應(yīng)用模塊的窗口配置
js 必須項(xiàng) 應(yīng)用模塊邏輯

配置

app.json 文件對(duì)微信小程序進(jìn)行全局配置,決定頁面文件的路徑牵触,窗口表現(xiàn),設(shè)置網(wǎng)絡(luò)超時(shí)時(shí)間咐低,設(shè)置多個(gè) tab 等揽思。

{
  "pages": [
    "page/index/index",
    "page/logs/index"
  ],
  "window": {
    "navigationBarTitleText": "Demo"
  },
  "tabBar": {
    "list": [{
      "pagePath": "page/index/index",
      "text": "首頁"
    }, {
      "pagePath": "page/logs/logs",
      "text": "日志"}]
    },
    "networkTimeout": {
      "request": 10000,
      "downloadFile": 10000
    },
    "debug": true
}

app.json 配置項(xiàng)列表

文件 類型 可選性 描述
pages StringArray 必選項(xiàng) 設(shè)置頁面路徑
window Object 可選項(xiàng) 設(shè)置默認(rèn)頁面的窗口
tabBar Object 可選項(xiàng) 設(shè)置底部 tab 的表現(xiàn)
networkTimeout Object 可選項(xiàng) 設(shè)置網(wǎng)絡(luò)超時(shí)時(shí)間
debug Boolean 可選項(xiàng) 設(shè)置是否開啟 debug 模式

pages
接受一個(gè)字符串?dāng)?shù)組,來指定小程序由那些頁面組成见擦,每一項(xiàng)代表頁面的信息钉汗,數(shù)組的第一項(xiàng)代表小程序的初始頁面。
小程序新增鲤屡、減少頁面损痰,都需要對(duì) pages 數(shù)組進(jìn)行修改。
window 用于設(shè)置小程序的狀態(tài)欄酒来、導(dǎo)航條卢未、標(biāo)題、窗口背景色

文件 描述
navigationBarBackgroundColor 導(dǎo)航背景色 例:#000000
navigationBarTextStyle 導(dǎo)航欄標(biāo)題顏色堰汉,僅支持black/white
navigationBarTitleText 導(dǎo)航欄標(biāo)題文字內(nèi)容
backgroundColor 窗口的背景色 例:#ffffff
backgroundTextStyle 下拉背景字體辽社、 loading 圖的樣式,僅支持 dark/light
enablePullDownRefresh 是否開啟下拉刷新 例:false

頁面.json 只能設(shè)置 window 相關(guān)的配置項(xiàng)翘鸭,以決定本頁面窗口表現(xiàn)滴铅,所以無需寫 window 這個(gè)關(guān)鍵字。

tabBar
如果我們小程序是一個(gè)多 tab 應(yīng)用就乓,那么我們可以通過 tabBar 配置項(xiàng)指定 tab 欄的表現(xiàn)汉匙,以及 tab 切換時(shí)顯示的對(duì)應(yīng)頁面。
tabBar 是一個(gè)數(shù)組生蚁,只能配置最少 2 個(gè)噩翠,最多 5 個(gè) tab,tab 按數(shù)組的順序排序守伸。

文件 可選性 描述
color 必選項(xiàng) tab上文字默認(rèn)顏色
selectedColor 必選項(xiàng) tab上文字選中時(shí)的顏色
backgroundColor 必選項(xiàng) tab的背景色
borderStyle 可選項(xiàng) tab上邊框的顏色绎秒,僅支持 black/white
list 必選項(xiàng) tab的列表,詳見 list 屬性

其中 list 接受一個(gè)數(shù)組尼摹,數(shù)組中的每一項(xiàng)都是一個(gè)對(duì)象见芹,其屬性如下:

文件 可選性 描述
pagePath 必選項(xiàng) 頁面路徑,必須在 pages 中先定義
text 必選項(xiàng) tab上按鈕文字
iconPath 必選項(xiàng) 圖片路徑蠢涝,icon 大小限制為 40kb
selectedIconPath 必選項(xiàng) 選中時(shí)的圖片路徑玄呛,icon 大小限制為 40kb

networkTimeout
設(shè)置各種網(wǎng)絡(luò)請求超時(shí)時(shí)間

文件 可選性 描述
request 可選項(xiàng) wx.request 的超時(shí)時(shí)間,單位毫秒
connectSocket 可選項(xiàng) wx.connectSocket 的超時(shí)時(shí)間和二,單位毫秒
uploadFile 可選項(xiàng) wx.uploadFile 的超時(shí)時(shí)間徘铝,單位毫秒
downloadFile 可選項(xiàng) wx.downloadFile 超時(shí)時(shí)間,單位毫秒

debug
可以在開發(fā)者工具中開啟 debug 模式,在開發(fā)者工具的控制臺(tái)面板惕它,調(diào)試信息以 info 的形式給出怕午,其信息有 Page 的注冊,頁面路由淹魄,數(shù)據(jù)更新郁惜,事件觸發(fā) 。

小程序框架與 MVC 簡述

小程序框架

小程序劃分為視圖層(View)和邏輯層(AppService)的兩層框架甲锡,并在視圖層和邏輯層之間提供數(shù)據(jù)傳輸和事件系統(tǒng)兆蕉。嚴(yán)格意義上,按照 MVC 的框架模式而言缤沦,小程序的邏輯層包含 MVC 中的 Model 以及 Controller.

MVC 簡述

View 有兩層作用虎韵,其一是負(fù)責(zé)從 Model層接收、渲染和顯示數(shù)據(jù);其二是負(fù)責(zé)接受和傳遞數(shù)據(jù)到 Controller 層缸废;
Controller 也有兩層作用包蓝,其一是接收 View 層抑或是請求 URL傳遞的表單數(shù)據(jù),并對(duì)表單數(shù)據(jù)進(jìn)行控制校驗(yàn)呆奕,其二是處理用戶交互體驗(yàn)效果养晋,比如在 View 進(jìn)行動(dòng)畫效果設(shè)置衬吆、滾動(dòng)加載體驗(yàn)等梁钾;
Model 層,負(fù)責(zé)接受 Controller傳輸?shù)臄?shù)據(jù)并對(duì)數(shù)據(jù)進(jìn)行邏輯處理后返回給 View 層。

MVC 優(yōu)點(diǎn)

其一逊抡,分層的設(shè)計(jì)有助于管理復(fù)雜的應(yīng)用程序姆泻,將數(shù)據(jù)邏輯與界面顯示分離,有助于后期針對(duì)相應(yīng)的層級(jí)維護(hù)和管理冒嫡;
其二拇勃,簡化分組開發(fā),能夠獨(dú)讓負(fù)責(zé)不同業(yè)務(wù)模塊的開發(fā)者進(jìn)行模塊化功能開發(fā)孝凌,并行推進(jìn)項(xiàng)目進(jìn)度.
小程序入口文件 app.js方咆、 app.json 以及 app.wxss.

app.js,小程序入口配置
 App({
 onLaunch: function() {
 //小程序生命周期初始化,全局加載(調(diào)用)一次蟀架,一般是用于程序啟動(dòng)時(shí)加載應(yīng)用共享資源瓣赂,
 },
 onShow: function() {
 //當(dāng)小程序啟動(dòng),或從`后臺(tái)進(jìn)入前臺(tái)顯示`片拍,會(huì)觸發(fā) onShow煌集,監(jiān)聽小程序顯示,會(huì)被調(diào)用多次
 },
 onHide: function() {? //當(dāng)小程序從前臺(tái)進(jìn)入后臺(tái)時(shí)捌省,會(huì)觸發(fā) onHide 事件苫纤,會(huì)被調(diào)用多次

},
 globalData: 'I am global data'
})

前臺(tái):指重新打開小程序顯示,即從退出當(dāng)前應(yīng)用,用戶又打開該應(yīng)用
后臺(tái):是指退出小程序應(yīng)用(并非完全退出或關(guān)閉)卷拘,相當(dāng)于按手機(jī)返回鍵退出當(dāng)前應(yīng)用喊废,但是小程序還在所謂的【后臺(tái)】運(yùn)行
App() 必須在 app.js 中注冊,且不能注冊多個(gè)
不要在定義于 App() 內(nèi)的函數(shù)中調(diào)用 getApp() 栗弟,使用 this 就可以拿到 app 實(shí)例
不要在 onLaunch 的時(shí)候調(diào)用 getCurrentPage()操禀,此時(shí) page 還沒有生成
通過 getApp() 獲取實(shí)例之后,不要私自調(diào)用生命周期函數(shù),即onLaunch,onShow,onHide這三個(gè)周期函數(shù),自定義的函數(shù)是不屬于周期函數(shù)范圍內(nèi)
app.json,小程序應(yīng)用模塊的路由配置横腿、窗口以及 Tab 配置颓屑,#僅作為注釋說明,實(shí)際配置應(yīng)該去掉

 {
 "pages":[
 "page/index/index", ##page配置的數(shù)組的第一項(xiàng)作為小程序的初始頁面 
 "page/logs/logs"
 ],

  "window":{
    # 配置導(dǎo)航條
    "navigationBarBackgroundColor":"#9084cc", ##背景顏色耿焊,HexColor 類型(16 進(jìn)制顏色值)
    "navigationBarTextStyle":"dark",##標(biāo)題顏色揪惦,僅支持 dark/white
    "navigationBarTitleText":"我的訂單",##標(biāo)題內(nèi)容,String

    # 配置窗口
    "backgroundColor":"#909902",##窗口背景色,HexColor 類型
    "backgroundTextStyle":"dark",##下拉背景字體,String,僅支持 dark/light
    "enablePullDownRefresh"true罗侯,##是否開啟下拉刷新
  },
  "tabBar":{
    "color":"", ##tab 上的文字顏色
    "selectedColor":"", ##tab 上的文字選中時(shí)的顏色
    "backgroundColor":"", ##tab 的背景色
    "borderStyle":"", ##tabbar 上邊框的顏色器腋, 僅支持 black/white

## tab 的列表,最少 2 個(gè)钩杰、最多 5 個(gè) tab
    "list":[
     {
       "pagePath":"", ##頁面路徑纫塌,必須在 pages 中先定義
       "text":"", ##tab 上按鈕文字
       "iconPath":"", ##圖片路徑,icon 大小限制為 40kb
       "selectedIconPath":"" ##選中時(shí)的圖片路徑讲弄,icon 大小限制為 40kb
     },
    ]
  },
## 時(shí)間單位 「毫秒」
  "networkTimeout":{
    "request":3000, ## wx.request 的超時(shí)時(shí)間
    "connectSocket":5000, ## wx.connectSocket 的超時(shí)時(shí)間
    "uploadFile":10000, ## wx.uploadFile 的超時(shí)時(shí)間
    "downloadFile":10000 ## wx.downloadFile 的超時(shí)時(shí)間
  },

## 開發(fā)者工具的控制臺(tái)面板措左,調(diào)試信息以 info 的形式給出,
## 其信息有 Page 的注冊避除,頁面路由怎披,數(shù)據(jù)更新,事件觸發(fā)
? "debug":true
}

pages 是屬于 Array 類型瓶摆,Array 的每一項(xiàng)都是 url 的字符串凉逛,url 為相對(duì)根目錄下的 module 路徑,無需擴(kuò)展名群井,框架會(huì)自動(dòng)加載 module 下的js状飞、 wxml、 wxss书斜、 json 文件
配置的 pages 下的 module 的 js,wxss,json诬辈,wxml必須為相同的名稱,框架會(huì)根據(jù) module 名稱自動(dòng)加載上述的擴(kuò)展名文件
tab 上的 list菩佑,最少 2 個(gè)自晰、最多 5 個(gè)

**app.wxss **

app.wxss
 /**定義的樣式將應(yīng)用到小程序所有的模塊中**/
 view,image,scroll-view,text{
 margin: 0px;
 padding: 0px;
 }
 .headerView{
 width: 100%;
 height: 32px;
 background: floralwhite;
 }

其他樣式

尺寸單位

  • responsive pixel,即rpx,響應(yīng)式像素,是一種能夠提供各種設(shè)備都能閱讀的一種設(shè)計(jì)方法,在微信小程序中稍坯,以 iphone6 作為屏幕標(biāo)準(zhǔn)酬荞,1rpx = 0.5px,微信小程序在底層會(huì)根據(jù)我們設(shè)定的 px來對(duì)屏幕自適應(yīng)搓劫,有助于開發(fā)者更集中于開發(fā),應(yīng)用場景在設(shè)置間距混巧、長寬等
  • root em,即 rem枪向,是 css3 新定義的一種長度單位,相對(duì)于頁面定義的 html 根元素來調(diào)整大小咧党,與 em 相對(duì)父元素調(diào)整大小更兼具相對(duì)和絕對(duì)字體調(diào)整大小的優(yōu)勢秘蛔,在微信小程序中,1rem = 750/20 rpx = 75px傍衡,規(guī)定標(biāo)準(zhǔn)的 iphone6 的寬度是 20rem深员,應(yīng)用場景在于設(shè)置字體大小

樣式導(dǎo)入
使用@import 語句可以導(dǎo)入外聯(lián)樣式表,@import 后跟需要導(dǎo)入的外聯(lián)樣式表的相對(duì)路徑蛙埂,用;表示語句結(jié)束
框架組件上支持使用 style倦畅、 class 屬性來控制組件的樣式

原文鏈接:http://layjoy.space/2017/01/14/wechat-2/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市绣的,隨后出現(xiàn)的幾起案子叠赐,更是在濱河造成了極大的恐慌,老刑警劉巖屡江,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芭概,死亡現(xiàn)場離奇詭異,居然都是意外死亡惩嘉,警方通過查閱死者的電腦和手機(jī)罢洲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宏怔,“玉大人奏路,你說我怎么就攤上這事‰铮” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵斜脂,是天一觀的道長抓艳。 經(jīng)常有香客問我,道長帚戳,這世上最難降的妖魔是什么玷或? 我笑而不...
    開封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮片任,結(jié)果婚禮上偏友,老公的妹妹穿的比我還像新娘。我一直安慰自己对供,他們只是感情好位他,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開白布氛濒。 她就那樣靜靜地躺著,像睡著了一般鹅髓。 火紅的嫁衣襯著肌膚如雪舞竿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天窿冯,我揣著相機(jī)與錄音骗奖,去河邊找鬼。 笑死醒串,一個(gè)胖子當(dāng)著我的面吹牛执桌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播芜赌,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼鼻吮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了较鼓?” 一聲冷哼從身側(cè)響起椎木,我...
    開封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎博烂,沒想到半個(gè)月后香椎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡禽篱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年畜伐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片躺率。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡玛界,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情值依,我是刑警寧澤疾宏,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站笨枯,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏遇西。R本人自食惡果不足惜馅精,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望粱檀。 院中可真熱鬧洲敢,春花似錦、人聲如沸茄蚯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至哮塞,卻和暖如春刨秆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背忆畅。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來泰國打工衡未, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人家凯。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓缓醋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親绊诲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子送粱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,323評(píng)論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)掂之,斷路器抗俄,智...
    卡卡羅2017閱讀 134,715評(píng)論 18 139
  • 微信小程序之注冊配置 小程序頁面結(jié)構(gòu) pagespages/app.js(小程序注冊入口)pages/app.js...
    疾風(fēng)先生閱讀 1,342評(píng)論 0 1
  • 昨天看了一下微信小程序官方文檔,總結(jié)一下自己學(xué)習(xí)的個(gè)人心得. 首先從官方文檔給的框架說起,微信小程序官方文檔給出了...
    Mr大大大閱讀 47,187評(píng)論 9 68
  • 在我沒結(jié)婚之前,每當(dāng)聽到別人提起一家三口世舰,在我的腦海中總會(huì)浮現(xiàn)出一個(gè)美麗的畫面: 三個(gè)人手拉著手动雹,海風(fēng)吹拂著母親的...
    女鋼鐵俠閱讀 779評(píng)論 53 42