|
小程序由于微信提供了一些組件,在微信中的一些體驗(yàn)確實(shí)不錯(cuò),對(duì)于開(kāi)發(fā)來(lái)說(shuō),由數(shù)據(jù)驅(qū)動(dòng)的開(kāi)發(fā)模式也是挺爽的。 概要介紹
其實(shí)就是類(lèi)似于VUE REACT的 MVVM模式,專(zhuān)注于數(shù)據(jù)和邏輯。 框架提供了自己的視圖層描述語(yǔ)言 WXML 和 WXSS,以及基于 JavaScript 的邏輯層框架,并在視圖層與邏輯層間提供了數(shù)據(jù)傳輸和事件系統(tǒng),可以讓開(kāi)發(fā)者可以方便的聚焦于數(shù)據(jù)與邏輯上。
官網(wǎng):微信小程序開(kāi)發(fā)教程 實(shí)踐得到的經(jīng)驗(yàn)規(guī)則1.目前打包后的文件不能超過(guò)2M,否則不能上傳到微信服務(wù)器。 小程序不支持的
1.不支持sass語(yǔ)法
3.不支持直接使用svg標(biāo)簽開(kāi)發(fā)。image的src放遠(yuǎn)程svg可以,background-image里也可以。
4.不支持阻止默認(rèn)事件,沒(méi)有preventDefault。 新特性
1.img標(biāo)簽換成了image標(biāo)簽<image src="http://sfe.ykt.io/o_1bbd2f7j02583ii2rg1p441gvo9.jpg"></image>。 6.scroll-view標(biāo)簽。有滾動(dòng)條的盒子。要想在進(jìn)入頁(yè)面的時(shí)候自動(dòng)滾動(dòng)到某處,可以使用scroll-view的scroll-into-view屬性,不過(guò)一定要在scroll-view存在后設(shè)置才會(huì)生效,尤其是通過(guò)template引用的時(shí)候,比如同時(shí)通過(guò)setData設(shè)置使用該template和scroll-into-view的值,并不會(huì)使?jié)L動(dòng)生效。 7.關(guān)于屏幕下拉露底:Android不會(huì),iPhone會(huì)??梢酝ㄟ^(guò)配置解決:disableScroll Boolean false 設(shè)置為 true 則頁(yè)面整體不能上下滾動(dòng);只在page.json中有效,無(wú)法在app.json中設(shè)置該項(xiàng)。鏈接。
8.template標(biāo)簽 9.在功能按鈕上使用catchtap防止冒泡 10.hidden參數(shù),控制蒙版的利器 小竅門(mén)
1.關(guān)于下拉刷新 2.page的onload函數(shù)中有參數(shù)options可以獲取路徑的query 3.小程序的支付和微信的支付不是一個(gè)appid,需要后端新開(kāi)發(fā)下單接口 4.wxml最好在開(kāi)發(fā)者工具編輯(有提示)。js, wxss可以在熟悉的編輯器編輯。 5.小程序中如果賦予的新值是undefined的話,根本不會(huì)進(jìn)行賦值,也不會(huì)覆蓋之前的值。如:
app.setData({
isPaperCollected: finishedQuizList['id'+quizID] || false
})
6.通過(guò)多次使用Object.assign({}) 解決data也模塊化后data不能深層復(fù)制的問(wèn)題。
7.在微信web開(kāi)發(fā)者工具中一定要在動(dòng)作->設(shè)置->勾上“不使用任何代理,勾選后直連網(wǎng)絡(luò)”,否則老是報(bào)“ 8.每一個(gè)小程序頁(yè)面也可以使用.json文件來(lái)對(duì)本頁(yè)面的窗口表現(xiàn)進(jìn)行配置。 頁(yè)面的配置比app.json全局配置簡(jiǎn)單得多,只是設(shè)置app.json中的window配置項(xiàng)的內(nèi)容,頁(yè)面中配置項(xiàng)會(huì)覆蓋app.json的window中相同的配置項(xiàng)。頁(yè)面的.json只能設(shè)置window相關(guān)的配置項(xiàng),以決定本頁(yè)面的窗口表現(xiàn),所以無(wú)需寫(xiě) window 這個(gè)鍵。鏈接。 9.data是在page中設(shè)置的,不是在app.js中的。不涉及渲染的可以不要放data里面。 11.wx:if 是惰性的,如果在初始渲染條件為false,框架什么也不做,在條件第一次變成真的時(shí)候才開(kāi)始局部渲染。 會(huì)話管理微信的網(wǎng)絡(luò)請(qǐng)求接口 wx.request() 沒(méi)有攜帶 Cookies,這讓傳統(tǒng)基于 Cookies 實(shí)現(xiàn)的會(huì)話管理不再適用。為了讓處理微信小程序的服務(wù)能夠識(shí)別會(huì)話,我們會(huì)話管理使用weapp-session-client。這需要服務(wù)端的支持?;驹硎前bwx.request并在 Header 上使用特殊的字段跟蹤。
使用時(shí)遇到的問(wèn)題:
2.題外話:善用 Promise 進(jìn)階2.疑問(wèn):微信切換賬號(hào)會(huì)不會(huì)銷(xiāo)毀小程序
3.檢查T(mén)LS版本的問(wèn)題 4.藍(lán)牙、震動(dòng)的調(diào)用 |