「2.0」一個(gè)人開發(fā)一個(gè)App在扰,小程序從0到1,文件剖析

不知你是不是見到“文件剖析”這4個(gè)大字雷客,才點(diǎn)進(jìn)來看一看的芒珠?如果真是的話,那我可以坦誠(chéng)搅裙、真心皱卓、負(fù)責(zé)任地告訴你:你上當(dāng)了,你上了賊船啦部逮,如果你現(xiàn)在想跳的話娜汁,還來得及,反正茫茫大海中兄朋,鯊魚正缺搞程序的人掐禁。說你上當(dāng)了,是因?yàn)槲腋揪推饰霾涣寺汀N翼敹嘀荒茏龅椒治觥?/p>

2.1 ?配置文件分析

趕快打開微信開發(fā)工具傅事,快速進(jìn)到項(xiàng)目窗口中。展開pages峡扩,展開index蹭越,展開logs,展開utils教届,展開一切可以展開的响鹃。唯有如此,方能見到整個(gè)項(xiàng)目的全貌巍佑。

項(xiàng)目中茴迁,工程配置文件project.config.json,可用來配置appid萤衰、項(xiàng)目名稱渠啊、調(diào)試基礎(chǔ)庫(kù)荞驴,還有云開發(fā)的文件夾路徑回俐,至于其他的判导,幾乎不會(huì)做任何改動(dòng)。

項(xiàng)目中,頁(yè)面索引文件sitemap.json,可配置頁(yè)面是否可被索引(搜索), action為allow表示同意,disallow表示不同意;page為*表示所有頁(yè)面熟嫩,pages/index

/index指定某個(gè)頁(yè)面。

小程序項(xiàng)目中褐捻,除了配置文件外掸茅,還有應(yīng)用文件和頁(yè)面文件。

2.2 ?頁(yè)面文件分析

一個(gè)小程序應(yīng)用柠逞,由index昧狮,logs等多個(gè)頁(yè)面組成。一個(gè)頁(yè)面板壮,由負(fù)責(zé)配置的json逗鸣,布局的wxml,樣式的wxss和業(yè)務(wù)邏輯的js組成绰精。

這是一個(gè)關(guān)于1+1+1+1=4的故事撒璧,故事從配置文件json開始。

2.2.1 ?json文件

json文件可配置窗口頂部導(dǎo)航欄的背景色笨使、標(biāo)題卿樱、標(biāo)題顏色和引入第3方組件。第3方組件阱表,唯有在json文件中引入殿如,方可在wxml文件中使用。

{

"usingComponents": {

"mp-cells": "../../components/cells/cells",

"mp-cell": "../../components/cell/cell"

},

"navigationBarTitleText": "關(guān)于",

"navigationBarTextStyle": "black"

}

2.2.2 ?wxml文件

wxml文件最爬,對(duì)手機(jī)界面進(jìn)行布局。布局可從左到右门岔,上到下爱致;可從右到左,下到上寒随;可左青龍糠悯,右白虎,上圖片妻往,下按鈕互艾。

上圖片,下按鈕是我要實(shí)現(xiàn)功能讯泣,而左青龍纫普,右白虎是留給你的作業(yè),記得按時(shí)完成哦好渠。完成之后昨稼,仔細(xì)觀察一下代碼节视,你就會(huì)發(fā)現(xiàn)有個(gè)莫名其妙的container,莫名其妙地出現(xiàn)在那里假栓。不要急寻行,存在即是合理,只是還沒說到wxss文件而已匾荆。

<view class="container">

<image src="../../images/long.png" style="width: 750rpx;height: 450rpx"></image>

<button>確定</button>

</view>

2.2.3 ?wxss文件

wxss文件拌蜘,是wxml的好基友,一直站在wxml背后牙丽,承擔(dān)著化妝師(樣式)的工作简卧。這就是,每個(gè)成功的wxml剩岳,背后都會(huì)有一個(gè)wxss的來由贞滨。正是有了wxss的支持,wxml才可以放心拍棕、大膽地布局晓铆,大膽地布局天下。

好看的皮囊千篇一律绰播,有趣的靈魂萬里挑一骄噪,光有布局,光有一張靚麗的外表蠢箩,不足以成就大業(yè)链蕊。若想成就大業(yè),得靠js文件來實(shí)現(xiàn)谬泌,實(shí)現(xiàn)業(yè)務(wù)邏輯滔韵。

.container {

height: 100%;

display: flex;

flex-direction: column;

align-items: center;

}

2.2.4 ?js文件

js文件,實(shí)現(xiàn)業(yè)務(wù)邏輯并把結(jié)果顯示在wxml中掌实,昭告天下陪蜻。如果只是實(shí)現(xiàn)一個(gè)簡(jiǎn)單任務(wù),像計(jì)算1+1=2這種贱鼻,那單個(gè)js應(yīng)該是沒問題的宴卖,只是理想很豐滿,現(xiàn)實(shí)很骨感邻悬,一個(gè)小程序應(yīng)用症昏,往往要實(shí)現(xiàn)的功能遠(yuǎn)遠(yuǎn)不止于如此。

為了提高開發(fā)效率父丰,可把一些通用的功能肝谭,放在一個(gè)通用的js文件里,并放置在utils下。等頁(yè)面中的js文件要使用時(shí)分苇,用require引入便可添诉。

既然有js可共用,那是否有wxss可供共用医寿?有的栏赴,app.wxss文件便是。

const util = require('../../utils/util.js')

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 () {

}

})

2.3 ?app.wxss文件

app.wxss文件靖秩,為整個(gè)應(yīng)用的樣式配置文件须眷。在這里配置的樣式,可供所有頁(yè)面共用沟突,而且不用任何操作花颗。真好,微信產(chǎn)品經(jīng)理惠拭,總算做了一件讓程序員省心的事了扩劝。

一說到省心,你就開心职辅,一開心棒呛,便忘乎所以,忘記還有app.js和app.json未被提及域携。這兩個(gè)家伙簇秒,可是很重要的角色。

app.js秀鞭,是一名有著一夫當(dāng)關(guān)萬夫莫開本事的土匪趋观。若要進(jìn)到頁(yè)面,得先過app.js這一關(guān)锋边,此路是他開此樹是他栽皱坛,要想從此過,脫下褲子來豆巨。

就是說麸恍,全局的內(nèi)容,全局變量和全局的業(yè)務(wù)邏輯搀矫,在這里實(shí)現(xiàn)。至于全局的配置刻肄,請(qǐng)移步到app.json文件中瓤球。

//app.js

App({

onLaunch: function () {

// 展示本地存儲(chǔ)能力

var logs = wx.getStorageSync('logs') || []

logs.unshift(Date.now())

wx.setStorageSync('logs', logs)

},

globalData: {

userInfo: null

}

})

2.4 ?app.json文件

app.json文件,對(duì)整個(gè)應(yīng)用進(jìn)行配置的配置文件敏弃。在這卦羡,可配置統(tǒng)一風(fēng)格的窗口(window)風(fēng)格,包括頁(yè)面的標(biāo)題欄背景色,標(biāo)題(這個(gè)不太可能)绿饵,標(biāo)題顏色欠肾;

可配置且必須配置的頁(yè)面路徑(pages);可配置全局切換標(biāo)簽拟赊,可配置定位等權(quán)限聲明和授權(quán)提示信息刺桃,可引入第3方插件。

可吸祟,可瑟慈,可,渴就喝水去屋匕。

{

"pages": [

"pages/index/index",

"pages/logs/logs"

],

"window": {

"backgroundTextStyle": "light",

"navigationBarBackgroundColor": "#fff",

"navigationBarTitleText": "WeChat",

"navigationBarTextStyle": "black"

},

"permission": {

"scope.userLocation": {

"desc": "請(qǐng)授予位置服務(wù)權(quán)限葛碧,以便更好的吃飯"

}

},

"tabBar": {

"borderStyle": "black",

"backgroundColor": "#ffffff",

"color": "#1b1b1b",

"selectedColor": "#2b2b2b",

"list": [

{

"iconPath": "images/about.png",

"selectedIconPath": "images/about_p.png",

"pagePath": "pages/about/index",

"text": "關(guān)于"

},

{

"iconPath": "images/my.png",

"selectedIconPath": "images/my_p.png",

"pagePath": "pages/my/index",

"text": "我的"

}

]

},

"sitemapLocation": "sitemap.json"

}

等等,聽我講了大半天过吻,是不是感覺少了點(diǎn)什么进泼,沒錯(cuò),少了給我發(fā)紅包了纤虽。少了講開發(fā)工具生成的源代碼了乳绕,少了懟微信產(chǎn)品經(jīng)理了。

好吧廓推,那我就再懟一句刷袍,微信的小程序的產(chǎn)品經(jīng)理,你們生成的代碼樊展,我看不懂呻纹,也不想看,下一節(jié)专缠,我就統(tǒng)統(tǒng)把它們刪掉雷酪。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市涝婉,隨后出現(xiàn)的幾起案子哥力,更是在濱河造成了極大的恐慌,老刑警劉巖墩弯,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吩跋,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡渔工,警方通過查閱死者的電腦和手機(jī)锌钮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來引矩,“玉大人梁丘,你說我怎么就攤上這事侵浸。” “怎么了氛谜?”我有些...
    開封第一講書人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵掏觉,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我值漫,道長(zhǎng)澳腹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任惭嚣,我火速辦了婚禮遵湖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘晚吞。我一直安慰自己延旧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開白布槽地。 她就那樣靜靜地躺著迁沫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪捌蚊。 梳的紋絲不亂的頭發(fā)上集畅,一...
    開封第一講書人閱讀 49,806評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音缅糟,去河邊找鬼挺智。 笑死,一個(gè)胖子當(dāng)著我的面吹牛窗宦,可吹牛的內(nèi)容都是我干的赦颇。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼赴涵,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼媒怯!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起髓窜,我...
    開封第一講書人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤扇苞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后寄纵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鳖敷,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年程拭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哄陶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡哺壶,死狀恐怖屋吨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情山宾,我是刑警寧澤至扰,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站资锰,受9級(jí)特大地震影響敢课,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绷杜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一直秆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鞭盟,春花似錦圾结、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至粤剧,卻和暖如春歇竟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背抵恋。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工焕议, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人弧关。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓盅安,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親梯醒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子宽堆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

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