亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 課堂 > 小程序 > 正文

微信小程序開發(fā)實戰(zhàn)分享:騰訊體育模仿實現(xiàn)

2020-03-21 16:30:37
字體:
供稿:網(wǎng)友

寫在前面:

小程序的定義:

很多人問我,說的這么熱鬧,小程序到底是個什么東西?下面我先簡單介紹一下。

官方這么定義小程序:

“小程序是一種不需要下載安裝即可使用的應(yīng)用,它實現(xiàn)了應(yīng)用“觸手可及”的夢想,用戶掃一掃活著搜一下即可打開應(yīng)用。也體現(xiàn)了“用完即走”的理念,用戶不用關(guān)心是否安裝太多應(yīng)用的問題。應(yīng)用將無處不在,隨時可用,但又無需安裝卸載”。

小程序是一個由微信提供開發(fā)組件與開發(fā)規(guī)則,以js為主要開發(fā)語言,最終運行在微信App內(nèi)的輕量型應(yīng)用,有著即掃即用的特點。它不是H5,但與H5一樣,小程序有著開發(fā)上手快、開發(fā)成本低的特性;它不是App,卻有著同樣的流暢度。小程序的出現(xiàn)使前端工程師可觸及的領(lǐng)域進一步增大,可謂是迎來了前端工程師的春天~~

我們的小程序:

小程序的點在一個“小”字,對程序大小要求有限制,對頁面嵌套的層級有限制,不適合過于重的交互。小程序不能跳出,不能調(diào)起外部應(yīng)用,消息推送折疊在微信內(nèi)部,相比于原生App有著很大的局限性。

但是,相比于H5,小程序又有著不可忽視的優(yōu)勢,固定化的入口,豐富的組件,系統(tǒng)控件的接口權(quán)限,接近App的使用流暢度,微信強大的生態(tài)圈...

結(jié)合上面兩點,我們認為:小程序=固定入口+有體系的H5

根據(jù)這一點,我們仔細斟酌,提煉出體育用戶的核心訴求,將體育小程序的第一階段功能定位為賽程查詢、數(shù)據(jù)、資訊推送,第二階段的功能定位為視頻點播、個性化提醒(關(guān)注、預(yù)約、定制)。

關(guān)于小程序的適配:

眾所周知,微信App運行在Android、iphone、iPad等多種屏幕尺寸和分辨率的設(shè)備上,不同終端的微信小程序用的是同一套代碼,需要照顧到一個“小程序”在多種不同大小屏幕的使用體驗,所以在設(shè)計排版時推薦柵格式排版。而在代碼實現(xiàn)方面,微信官方比較推薦用Flex、rpx來實現(xiàn)小程序的適配。

微信小程序,小程序開發(fā),騰訊體育

Flex布局是2009年,W3C提出的一種新的方案,可以簡便、完整、響應(yīng)式地實現(xiàn)各種頁面布局。目前,它已經(jīng)得到了所有瀏覽器的支持。

rpx單位是小程序中css的尺寸單位,可以根據(jù)屏幕寬度進行自適應(yīng),規(guī)定屏幕寬為750rpx。如iPhone6的屏幕像素為375px,則750rpx=375px,1rpx=0.5px。同時小程序也支持rem: 規(guī)定屏幕寬度為20rem;1rem = (750/20)rpx 。

微信小程序,小程序開發(fā),騰訊體育

Flex與rpx搭配可以解決大部分的適配,但遇到極端寬高比的情況,就需要變動元素的排放位置。而小程序不支持Media Query,那就要通過js來進行不同樣式的切換。小程序里獲得屏幕寬高的接口是異步的,實現(xiàn)響應(yīng)式布局盡量在app.js里盡早執(zhí)行防止頁面抖動。

關(guān)于小程序的生命周期:

微信小程序,小程序開發(fā),騰訊體育

小程序的框架程序包含一個描述整體程序的app 和多個描述頁面的page。其中,app由三個文件構(gòu)成,公共設(shè)置的app.json 、公共樣式的app.wxss、主體邏輯的app.js 。每個page由四部分組成,頁面設(shè)置page.json、頁面文件page.wxml、頁面樣式page.wxss、頁面主體邏輯page.js。

與H5開發(fā)一樣,我們可以根據(jù)需求在app.js和page.js里添加程序在生命周期每個階段相應(yīng)的事件。比如在頁面onLoad的時候進行數(shù)據(jù)的加載,onShow的時候進行數(shù)據(jù)的更新。

一個page的生命周期從onLoad開始,整個生命周期內(nèi)onLoad、onReady、onUnload這三個事件僅執(zhí)行一次,而onHide和onShow在每次頁面隱藏和顯示時都會觸發(fā)。當(dāng)用戶手動觸發(fā)左上角的退出箭頭時,小程序僅觸發(fā)app.onHide,下次進入小程序時會觸發(fā)app.onShow以及當(dāng)前page.onShow。僅當(dāng)小程序在后臺運行超過一定時間未被喚起、或者用戶手動在小程序的控制欄里點擊退出程序、或者小程序內(nèi)存占用過大被關(guān)閉時,小程序被銷毀,會觸發(fā)app.onUnload事件。

一個完整的小程序執(zhí)行的生命周期如下:

微信小程序,小程序開發(fā),騰訊體育

關(guān)于小程序的架構(gòu):

微信小程序,小程序開發(fā),騰訊體育

如圖,每個小程序分為兩個線程,view和appServer。其中view線程負責(zé)解析渲染頁面(wxml和wxss),而appServer線程負責(zé)運行js。appServer線程運行在jsCore中(安卓下運行在X5中,開發(fā)工具中運行在nwjs中),所以js不跑在webview里,不能直接操縱DOM和BOM,這就是為什么小程序沒有window全局變量。

那js如何操縱頁面?js與頁面的交互靠setData和事件觸發(fā),js通過setData來改變頁面數(shù)據(jù),頁面通過下發(fā)事件來觸發(fā)js中對應(yīng)的響應(yīng)事件。setData同時會改變當(dāng)前頁面的Page函數(shù)里的data對象,注意異步數(shù)據(jù)setData以后一定要update,不然頁面上的數(shù)據(jù)不會及時更新。

最初版本里,小程序的所有js跑在同一個作用域下,開發(fā)過程中一不小心定義了相同的變量名就會導(dǎo)致其他頁面的數(shù)據(jù)錯誤。在我們的推動下,現(xiàn)在每個小程序頁面都是一個獨立的作用域,命名空間互不沖突。有人問,那我們想要全局變量怎么辦?又沒有window。微信提供的解決方案是在app.js中注冊全局變量,在每個頁面中通過getApp()函數(shù)獲取。

關(guān)于小程序的開發(fā):

小程序開發(fā)入門簡單,按照官方文檔上給的簡易教程,可以快速建立一個小程序。但是實際上手開發(fā)會發(fā)現(xiàn)這樣幾個問題:

小程序的開發(fā)工具支持簡單的模塊化,page路徑可單獨設(shè)置,但是提交代碼包的大小有限制1M,而小程序沒有提供相應(yīng)的文件壓縮與合并。

以前小程序框架的CSS不支持 import(現(xiàn)在支持了!),所有樣式只能寫在一個文件里,不方便拆分,也不支持模塊化

CSS中圖片不支持相對路徑,需使用線上地址或base64的,在開發(fā)階段不方便

暫不支持es6(新版本也支持了!超哥棒棒噠)

不支持LESS SASS POSTCSS

頁面與頁面之間代碼復(fù)用性差

為此,我們引進了webpack將開發(fā)目錄與發(fā)布目錄區(qū)分開來。webpack是一個前端資源加載/打包工具,它能把各種資源,例如JS(含JSX)、coffee、樣式(含less/sass)、圖片等都作為模塊來使用和處理。通過引入webpack,我們實現(xiàn)了對es6+sass+postcss的支持,更加靈活的模塊化體系,成功隔離了開發(fā)目錄和發(fā)布目錄。

微信小程序,小程序開發(fā),騰訊體育

如上圖所示,我們指定發(fā)布目錄到/pub,圖片和css抽取合并后生成wxss文件,例如allmatch頁面的資源文件全在component/allmatch文件夾內(nèi),打包后生成的allmatch.wxss文件直接放在pub目錄下。

這里我要講一下,由于document、window對象的限制,Babel runtime相關(guān)、Commonchunk、code spliting、imports-loader等插件都不可用,想接入webpack的童鞋們要引起注意。在業(yè)務(wù)開始初期,這可花了我們好幾天在和新框架磨合(淚奔臉)~

webpack還有一個小問題,就是在調(diào)試的過程中會生成許多不必要的文件,為了解決這個問題,我們寫了一個清理發(fā)布文件夾的腳本,每次打包完成后會自動運行,清理非最終所需文件。

一些坑和經(jīng)驗:

page需在app.json里注冊才能被當(dāng)做頁面使用,利用這個現(xiàn)象可以創(chuàng)建一些公用template。不要試圖去給view等標(biāo)簽設(shè)置樣式,會被過濾。document window等都不存在于jscore 中,所以大部分涉及dom操作的框架都不能直接拿來使用。介于安全性考慮,new Function,eval 會被過濾掉。CSS 請用BEM的形式,因為app里沒有自選擇器,為了防止微信提供的組件樣式被破壞,小程序也禁止使用層級選測器,最好提前養(yǎng)成好習(xí)慣。CSS里不要用圖片相對路徑,建議直接base64,wxml 里可以用圖片路徑。關(guān)于接口,一年后服務(wù)器會只支持https協(xié)議的接口,所以,現(xiàn)在盡量統(tǒng)一為https。關(guān)于登錄,目前小程序不支持cookie,而是采用前端利用微信提供的接口獲取登錄憑證code,server端再用code獲取密鑰session_key的方式對用戶數(shù)據(jù)完成加密解密,整個過程需要server端對已有的登錄體系進行再次的封裝,而本地的登錄態(tài)可以利用微信提供的本地存儲進行保存。

微信小程序,小程序開發(fā),騰訊體育

關(guān)于開發(fā)工具的提交預(yù)覽功能,預(yù)覽功能需要在能訪問外網(wǎng)時才能使用,開發(fā)網(wǎng)不支持使用,自己生成的二維碼只有自己可以體驗。這對測試造成了一定的困擾。

image組件會有默認圖片尺寸(320*240),無法完美適配寬高都不固定的多尺寸圖片。

關(guān)于我們:

短短一個多月,在小程序的開發(fā)過程中我們經(jīng)歷了許多,也成長很多,在此非常感謝有這個機會發(fā)表自己的一點小見解,若有理解錯誤的地方盡請更正。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产成人艳妇aa视频在线| 精品女同一区二区三区在线播放| 欧美free嫩15| 丝袜老师在线| 一级黄色在线播放| 91在线播放国产| 欧美国产高清| 中日韩av电影| 国产成人亚洲综合青青| 蜜臀av性久久久久蜜臀av麻豆| 一区二区三区四区激情| 久久久精品区| 婷婷精品国产一区二区三区日韩| 国产美女明星三级做爰| 性欧美精品中出| 国产资源在线播放| 制服丝袜在线播放| 好吊色视频一区二区三区| 又大又长粗又爽又黄少妇视频| 最近的中文字幕在线看视频| 无码内射中文字幕岛国片| 国产免费叼嘿网站免费| 免费在线视频你懂的| 91国产中文字幕| 精品一区二区三区免费观看| 国产午夜伦鲁鲁| 精品成人免费一区二区在线播放| 亚洲人成网站999久久久综合| 福利视频网站导航| 日本欧美高清| 97av免费视频| 午夜久久福利视频| 高h视频在线| 国产精品香蕉一区二区三区| 久久久久久美女精品| 天堂成人娱乐在线视频免费播放网站| 亚洲天堂中文在线| 日本免费在线视频不卡一不卡二| 日韩欧美一区二| 欧美日韩国产精品一区二区不卡中文| 久9久9色综合| 人狥杂交一区欧美二区| 波多野在线观看| 人人九九精品视频| 亚洲激情视频| 在线看国产视频| 日韩在线一区二区| 欧美猛交xxxxx| 国产a久久麻豆| 精品国产乱码久久久久久樱花| 久久综合综合久久| 中文字幕乱码在线人视频| 99综合电影在线视频| 欧美精品在线免费播放| 91成人在线网站| 日韩伦人妻无码| 亚洲色图偷拍视频| 日本18视频网站| 久久精品国产亚洲一区二区三区| 国产精品一区二区在线观看| xxxx日本少妇| jizzjizz国产精品喷水| 一本久道久久久| 亚洲欧美日韩精品一区| 在线国产一区二区| 久久久久久久久国产精品| 在线看黄色av| 亚欧美无遮挡hd高清在线视频| 在线国产电影不卡| 国产欧美高清视频在线| 亚洲一级黄色av| 欧美日韩理论| 亚洲国产天堂av| 秋霞影院一区二区| 黄色在线看片| 日韩有码片在线观看| 久久综合色8888| 一区二区三区日| 精品欠久久久中文字幕加勒比| 影音先锋一区二区资源站| 久久夜色精品国产欧美乱极品| 国产日韩成人内射视频| 91chinesevideo永久地址| 国产精品毛片久久久久久久av| 中文字幕资源站| 四虎影视18库在线影院| 久久免费美女视频| 7777精品久久久大香线蕉| 久久精视频免费在线久久完整在线看| 波多野结衣视频在线看| 国产一区免费| 日韩在线观看第一页| 在线国产精品一区| 欧美变态xxxx| 欧美日韩国产高清一区二区三区| 欧美aaaaaa午夜精品| eeuss性xxxxxx电影| 国产成人精品一区二区免费视频| 国产精品视频一区二区三区四区五区| 欧美性猛交xxxx乱大交丰满| 久久午夜羞羞影院免费观看| 国产乱子伦精品视频| 日韩欧美少妇| 麻豆国产91在线播放| 亚洲精品日本| 欧美gvvideo网站| 久久99精品国产一区二区三区| 国产精品久久久久久久第一福利| 亚洲四虎影院| 色av性av丰满av| 捆绑裸体绳奴bdsm亚洲| 国产成人1区| 九九综合在线| 韩国av永久免费| 91精品在线视频观看| 亚洲欧美另类自拍| 欧美视频在线观看一区二区三区| 亚洲第一在线综合在线| 欧美日韩国产精品一卡| 国产日韩另类视频一区| 欧美在线不卡| 亚洲一区二区三区四区视频| 国产精品美女久久久久av福利| 日本在线电影一区二区三区| 毛片毛片女人毛片毛片| 九九热精品视频在线观看| 在线观看国产视频| 激情视频在线观看一区二区三区| 777xxx欧美| 男女av免费观看| 欧美激情va永久在线播放| 精品人妻aV中文字幕乱码色欲| 欧美日韩高清丝袜| 在线一区二区不卡| 欧美精品久久久久久| 色综合手机在线| 亚洲精品有码在线| av免费在线观| 香蕉人妻av久久久久天天| 久久久久国产精品| 在线国产欧美| 国产乱子伦一区二区三区国色天香| 手机看片一区二区三区| 搞黄视频免费在线观看| 成人国产在线激情| 91久久伊人青青碰碰婷婷| 4kfree性满足欧美hd18| 欧美极品少妇xxxxⅹ裸体艺术| 日韩电影免费观| 国产日韩视频一区| 日韩亚洲欧美视频| 日韩一二三在线视频播| 精品久久一二三| 在线观看福利电影| 久久精品一本久久99精品| 污视频免费在线看| 国产精品极品在线观看| 欧亚成年男女午夜| 日韩三级在线| 97国产视频| 日韩免费福利视频| 国产一区二区在线播放视频| 日韩一区中文字幕| 99精品视频在线观看| 人成免费电影一二三区在线观看| 久久精品国产精品亚洲综合| 国产精品黄页免费高清在线观看| 男人天堂视频在线| mm131美女视频| 中文在线一区二区| 相泽南亚洲一区二区在线播放| 午夜久久久久久久久久一区二区| 日韩一区二区三区视频在线| 三上悠亚在线一区二区| 日韩天堂在线| 亚洲国产视频a| 日本精品视频网站| 国产一区二区三区在线| 亚洲国产精华液网站w| 国产欧美精品一区二区色综合| 国产黄色大片网站| 懂色av色香蕉一区二区蜜桃| 亚洲视频精品一区| 亚洲一级Av无码毛片久久精品| 无码人妻精品一区二区三区99v| 好男人www社区在线视频夜恋| 成人黄色国产精品网站大全在线免费观看| 国产午夜精品全部视频在线播放| 久久激情久久| 亚洲成人动漫在线观看| 97在线视频免费观看| 日韩欧美在线视频播放| 久久综合色综合88| 国产又粗又猛又色又| 伊人婷婷久久| 亚洲桃色在线一区| 8x拔播拔播x8国产精品| 男女激情片在线观看| 乱色588欧美| 成人综合在线网站| 青草国产精品久久久久久| 久久综合久久综合亚洲| 亚洲视频777| 精品久久久久久久久久久久久| 91成人在线免费| 丰满岳乱妇一区二区| 亚洲精品黑牛一区二区三区| 91啦中文成人| 亚洲欧美日韩一区二区| 国产专区在线播放| 日韩成人一区二区三区在线观看| 欧美色成人综合| 最近看过的日韩成人| 国内精品视频一区| 亚洲精品国产精品国自产网站| 中文字幕一区二区人妻电影丶| 国产一区在线精品| 久久久www| 天天操天天干天天操| 色一情一乱一乱一区91av| 久久精品久久久精品美女| 中文字幕一区二区精品区| 日韩欧美在线影院| 97视频热人人精品免费| 免费久久久一本精品久久区| 欧美在线视频观看| 日本va欧美va国产激情| 午夜国产福利一区二区| 日韩在线观看免| 欧美成人aaa片一区国产精品| 性感美女一区二区三区| 激情亚洲另类图片区小说区| 黄色av一级片| 亚洲图片欧洲图片日韩av| 99国产精品免费视频观看| 日本小视频网站| 美女隐私在线观看| 欧美性受xxxx免费视频| 精品卡一卡二| 在线观看wwwxxxx| 久久er99热精品一区二区三区| 日韩www.| 丁香激情五月婷婷| 欧美三日本三级少妇三99| 97人人爽人人喊人人模波多| www.激情网| 国产精品久久久久久久久免费丝袜| 亚洲尤物在线视频观看| 最新中文字幕在线观看| 一区二区三区在线电影| 国产三级视频| 欧美伊人久久久久久久久影院| a√在线视频| 97碰碰视频| 尤物在线观看一区| x88av蜜桃臀一区二区| 情侣黄网站免费看| 999视频精品| 国内外成人激情视频| 一区二区视频欧美| 在线观看成人动漫| 天天操天天干天天插| 亚洲乱码一区二区| av成人动漫| 国产a级片网站| 中文在线а√在线| 午夜精品久久久久久久久久久久| 成人h视频在线观看播放| 亚洲天堂小视频| 无码人妻精品一区二区50| 欧美jizzhd精品欧美另类| 欧洲一区av| 日韩中文字幕在线免费观看| 8x8x华人在线| 人人超碰在线| 91精品国产99久久久久久红楼| 国产色99精品9i| 精品国产一区二区三| 欧美怡红院视频一区二区三区| 色噜噜狠狠狠综合欧洲色8| 欧美成人首页| 日本精品视频一区二区| 精品免费在线观看| 精品欧美激情在线观看| 欧美精品手机在线| 国产传媒欧美日韩成人| 亚洲欧洲日夜超级视频| 国产a一区二区| 日本在线视频中文有码| **女人18毛片一区二区| 男捅女免费视频| 亚洲最大最好的私人影剧院| 国产在线播放不卡| 国产精品欧美久久久久一区二区| 久久久久中文字幕2018| 欧美最近摘花xxxx摘花| 在线不卡视频一区二区| 日本人妻一区二区三区| 成人在线观看一区| 国产成人精品网| 欧美日韩视频一区二区| 乱熟女高潮一区二区在线| 91精品国产高清自在线看超| 欧美18—19sex性hd| 黄色视屏网站在线免费观看| 最近中文字幕在线中文高清版| 国内三级在线观看| 亚洲精华国产欧美| 欧美日韩国产999| 蜜桃色一区二区三区| 午夜精品免费| 日韩欧美国产1| 综合136福利视频在线| 国产日韩中文字幕| 黄色网页在线| 精品动漫一区二区三区在线观看| brazzers欧美最新版视频| 国产精品国产精品国产专区不蜜| 影音先锋在线中文字幕| 国产亚洲色婷婷久久99精品91| 九九精品调教| 国产日韩欧美黄色| www.国产三级| 九九热这里有精品| 亚洲精品亚洲人成人网在线播放| 亚洲人成毛片在线播放女女| 欧美综合在线观看视频| 熟女少妇在线视频播放|