小程序基礎(chǔ)[04]-小程序框架頁(yè)面級(jí)文件

本文介紹小程序項(xiàng)目中的頁(yè)面級(jí)文件尽爆,這些文件的作用,以及具體的配置字段和使用方式读慎。

小程序中的頁(yè)面級(jí)文件主要有四種類型漱贱,即每個(gè)頁(yè)面都應(yīng)該由4個(gè)文件組成。

小程序中同一框架頁(yè)面的這四個(gè)文件必須具有相同的路徑和文件名夭委,當(dāng)小程序啟動(dòng)進(jìn)入或頁(yè)面跳轉(zhuǎn)的時(shí)候幅狮,小程序內(nèi)部會(huì)自動(dòng)根據(jù)app.json配置路徑來(lái)找到對(duì)應(yīng)的資源進(jìn)行加載和渲染。單個(gè)頁(yè)面的四個(gè)文件分別是:

? 控制頁(yè)面邏輯的.js文件株灸,必要的
? 控制頁(yè)面結(jié)構(gòu)的.wxml文件崇摄,必要的。
? 控制頁(yè)面樣式的.wxss文件慌烧,非必要的逐抑。
? 控制頁(yè)面配置的.json文件,非必要的(如果創(chuàng)建那么使用{}表示空)屹蚊。

1.0 配置文件(.json)

每個(gè)頁(yè)面均可以擁有一個(gè)頁(yè)面配置文件厕氨,該文件是json格式的,在進(jìn)行配置的時(shí)候一定要嚴(yán)格遵守json數(shù)據(jù)的規(guī)范汹粤。

如果我們?cè)谛〕绦蝽?xiàng)目中新建-page,那么會(huì)自動(dòng)創(chuàng)建默認(rèn)的json文件命斧,但該文件并非是必須的。

頁(yè)面級(jí)別JSON文件配置項(xiàng)等同于app.json文件中的window配置項(xiàng)嘱兼,它只能控制當(dāng)前頁(yè)面的窗口表現(xiàn)国葬。

在渲染頁(yè)面的時(shí)候,頁(yè)面級(jí)文件中的window配置項(xiàng)會(huì)覆蓋app.json中相同的配置項(xiàng)。

這里列出頁(yè)面配置文件中的部分配置項(xiàng):

{
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#110e1e",
    "navigationBarTitleText": "我的頁(yè)面",
    "navigationBarTextStyle": "white",
    "backgroundTextStyle":"#e02"
  }

2.0 樣式文件(.wxss)

小程序中的樣式文件后綴名稱是.wxss汇四。

WXSS(WeiXin Style sheets)是基于CSS擴(kuò)展的樣式語(yǔ)言接奈,用于描述WXML的組件樣式。WXSS決定WXML的組件應(yīng)該怎么顯示船殉,它具有CSS的大部分特性鲫趁,并在CSS的基礎(chǔ)上擴(kuò)展了尺寸單位和樣式導(dǎo)入等特性。

尺寸單位

因?yàn)镃SS中原有的尺寸單位在不同尺寸的屏幕中不能完美的實(shí)現(xiàn)元素的按比例縮放利虫,所有WXSS在CSS尺寸單位的基礎(chǔ)上拓展了兩種尺寸單位挨厚。rem和rpx這兩種單位本身都是相對(duì)單位,在渲染的時(shí)候最終會(huì)被換算為px糠惫。

? rem 疫剃,全稱為root em
? rpx ,全稱為reponsive pixel

WXSS規(guī)定所有屏幕的寬度均為20rem硼讽。

 iphone6 屏幕實(shí)際寬度為375px巢价,則20rem = 375px,那么在iphone6中固阁,1rem = 18.75px
 iPhoneXS Max屏幕實(shí)際寬度為414px,則20rem = 414px壤躲,那么在iPhoneXS Max中,1rem = 20.7px

WXSS規(guī)定所有屏幕的寬度均為750rpx备燃。

 iphone6 屏幕實(shí)際寬度為375px碉克,則750rpx = 375px,那么在iphone6中并齐,1rpx = 0.5px
 iPhoneXS Max屏幕實(shí)際寬度為414px,則750rpx = 414px漏麦,那么在iPhoneXS Max中,1rpx = 0.552px

選擇器

CSS選擇器用于選擇需要應(yīng)用樣式的元素况褪。
WXSS僅實(shí)現(xiàn)了CSS中的部分選擇器撕贞,使用規(guī)則和CSS選擇器基本一致,目前支持的選擇器有:

選擇器 樣例 樣例描述
.class .intro 選擇所有擁有 class="intro" 的組件(類選擇器)
#id #firstname 選擇擁有 id="firstname" 的組件(id 選擇器)
element view 選擇所有 view 組件(標(biāo)簽選擇器)
element, element view, checkbox 選擇所有的 view 組件和所有的 checkbox 組件(并列)
::after view::after 在 view 組件后邊插入內(nèi)容( 偽元素選著器 )
::before view::before 在 view 組件前邊插入內(nèi)容( 偽元素選著器 )

3.0 結(jié)構(gòu)文件(.wxml)

WXMLWeiXin Markup Language)是小程序?qū)S玫囊惶讟?biāo)記語(yǔ)言测垛,同html類似用于展示并渲染界面捏膨。

WXML的渲染原理和React Native基本一致,它用一套標(biāo)記語(yǔ)言在不同平臺(tái)被解析為不同端的渲染文件食侮。

WXML標(biāo)記語(yǔ)言最終總是會(huì)轉(zhuǎn)換為宿主端對(duì)應(yīng)的語(yǔ)言脊奋,所以在小程序開發(fā)中WXML里使用的標(biāo)簽(組件)只能是小程序定義的而不能使用自定義標(biāo)簽,如此才能夠保證頁(yè)面在轉(zhuǎn)譯的時(shí)候能夠被正確處理疙描。

4.0 邏輯文件(.js)

這是一個(gè)JavaScript文件诚隙,里面寫JavaScript代碼。

頁(yè)面的邏輯文件主要負(fù)責(zé):設(shè)置初始化數(shù)據(jù)起胰、注冊(cè)當(dāng)前頁(yè)面生命周期函數(shù)久又,注冊(cè)事件處理函數(shù)等巫延。

小程序的邏輯層文件都是JavaScript文件,整個(gè)項(xiàng)目中所有的這些JavaScript文件包括app.js最終都將被打包成一個(gè)js文件地消,該文件在小程序啟動(dòng)的時(shí)候運(yùn)行炉峰,直到小程序銷毀。小程序中每個(gè)頁(yè)面的邏輯文件都擁有獨(dú)立的作用域脉执,這些JavaScript文件運(yùn)行在獨(dú)立的JavaScript引擎中疼阔。

注意:因?yàn)樾〕绦蛑械腏avaScript文件在獨(dú)立的JavaScript引擎中運(yùn)行,所以不能使用前端開發(fā)中的DOM操作半夷,沒有document和window等對(duì)象婆廊,自然也無(wú)法使用jQuery等框架。

這里列出頁(yè)面中默認(rèn)生成的JavaScript代碼:


    Page({
      //頁(yè)面的初始數(shù)據(jù)
      data: {},
      //生命周期函數(shù)--監(jiān)聽頁(yè)面加載
      onLoad: function (options) { },
      //生命周期函數(shù)--監(jiān)聽頁(yè)面初次渲染完成
      onReady: function () { },
      //生命周期函數(shù)--監(jiān)聽頁(yè)面顯示
      onShow: function () {},
      //生命周期函數(shù)--監(jiān)聽頁(yè)面隱藏
      onHide: function () { },
      //生命周期函數(shù)--監(jiān)聽頁(yè)面卸載
      onUnload: function () {},
      //頁(yè)面相關(guān)事件處理函數(shù)--監(jiān)聽用戶下拉動(dòng)作
      onPullDownRefresh: function () { },
      //頁(yè)面上拉觸底事件的處理函數(shù)
      onReachBottom: function () { },
      //用戶點(diǎn)擊右上角分享
      onShareAppMessage: function () { }
    })

在頁(yè)面的js文件中巫橄,通過(guò)Page函數(shù)來(lái)注冊(cè)頁(yè)面淘邻,該函數(shù)接收一個(gè)Object類型的參數(shù),該對(duì)象中的內(nèi)容主要分成頁(yè)面的初始數(shù)據(jù)(data屬性)湘换、生命周期函數(shù)和事件處理函數(shù)等宾舅。

在頁(yè)面的js文件中,可以通過(guò)var app = getApp()的方式來(lái)獲取全局的小程序?qū)嵗龑?duì)象(在app.js文件中通過(guò)App函數(shù)注冊(cè)的對(duì)象)彩倚。小程序框架以頁(yè)面棧的形式維護(hù)了當(dāng)前的所有頁(yè)面筹我,可以通過(guò)getCountPages函數(shù)來(lái)獲取當(dāng)前頁(yè)面棧的實(shí)例,該實(shí)例以數(shù)組形式按照棧的順序給出帆离,第一個(gè)元素為首頁(yè)最后一個(gè)元素為當(dāng)前頁(yè)(可以通過(guò)索引來(lái)獲取)崎溃。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末盯质,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子概而,更是在濱河造成了極大的恐慌呼巷,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赎瑰,死亡現(xiàn)場(chǎng)離奇詭異王悍,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)餐曼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門压储,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人源譬,你說(shuō)我怎么就攤上這事集惋。” “怎么了踩娘?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵刮刑,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng)雷绢,這世上最難降的妖魔是什么泛烙? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮翘紊,結(jié)果婚禮上蔽氨,老公的妹妹穿的比我還像新娘。我一直安慰自己帆疟,他們只是感情好鹉究,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鸯匹,像睡著了一般坊饶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上殴蓬,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天匿级,我揣著相機(jī)與錄音,去河邊找鬼染厅。 笑死痘绎,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的肖粮。 我是一名探鬼主播孤页,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼涩馆!你這毒婦竟也來(lái)了行施?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤魂那,失蹤者是張志新(化名)和其女友劉穎蛾号,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涯雅,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鲜结,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了活逆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片精刷。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蔗候,靈堂內(nèi)的尸體忽然破棺而出怒允,到底是詐尸還是另有隱情,我是刑警寧澤锈遥,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布误算,位于F島的核電站仰美,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏儿礼。R本人自食惡果不足惜咖杂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蚊夫。 院中可真熱鬧诉字,春花似錦、人聲如沸知纷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)琅轧。三九已至伍绳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間乍桂,已是汗流浹背冲杀。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留睹酌,地道東北人权谁。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像憋沿,于是被迫代替她去往敵國(guó)和親旺芽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

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