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