91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信小程序開發實踐的示例分析

發布時間:2022-03-15 14:10:34 來源:億速云 閱讀:206 作者:小新 欄目:開發技術

這篇文章主要介紹了微信小程序開發實踐的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

小程序由于微信提供了一些組件,在微信中的一些體驗確實不錯,對于開發來說,由數據驅動的開發模式也是挺爽的。

概要介紹

其實就是類似于VUE REACT的 MVVM模式,專注于數據和邏輯。
小程序開發框架的目標是通過盡可能簡單、高效的方式讓開發者可以在微信中開發具有原生 APP 體驗的服務。

框架提供了自己的視圖層描述語言 WXML 和 WXSS,以及基于 JavaScript 的邏輯層框架,并在視圖層與邏輯層間提供了數據傳輸和事件系統,可以讓開發者可以方便的聚焦于數據與邏輯上。

實踐得到的經驗

規則

1.目前打包后的文件不能超過2M,否則不能上傳到微信服務器

小程序不支持的

1.不支持sass語法
2.不支持window、document,不能使用相關的庫,如jquery、PreventMoveOverScroll。

3.不支持直接使用svg標簽開發。image的src放遠程svg可以,background-image里也可以。
但是可以使用的canvas標簽(canvas坑:position absolute的層蓋不住canvas),可以使用的庫:wx-charts (有坑,放在app.js中然后在page中引用的話,找不到ringChart上面的函數,如ringChart.addEventListener。要直接在page中引庫。)。

4.不支持阻止默認事件,沒有preventDefault。
5.沒有br標簽。
6.不支持table表格。
7.不能使用 來增大文字間距。
8.小程序的xxx.wxss文件font-face的url不接受http地址作為參數,可以接受 base64 ,因此可以先將字體文件下載后,轉換為base64,然后再引用。鏈接。

新特性

1.img標簽換成了image標簽<image src="/uploads/allimg/180522/161J22b5-0.jpg"></image>。
2.text標簽認\n換行,不能包裹<br/>標簽,會直接輸出出來,有點類似textarea。
3.小程序中 :nth-child(n) 是從0開始的。
4.switch標簽。但是不能改變大小樣式,像老radio標簽一樣討厭。
5.picker標簽。但是在開發者工具中選項不會循環,在安卓手機預覽中選項會循環。

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標簽
模板的作用域:模板擁有自己的作用域,只能使用data傳入的數據。

9.在功能按鈕上使用catchtap防止冒泡

10.hidden參數,控制蒙版的利器

小竅門

1.關于下拉刷新
要在page.json中設置 enablePullDownRefresh: true
onPullDownRefresh內要手動stopPullDownRefresh,否則一直在點點點(loading)。

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不能深層復制的問題。
Object.assign不是深層復制。

7.在微信web開發者工具中一定要在動作->設置->勾上“不使用任何代理,勾選后直連網絡”,否則老是報“
Failed to load resource: net::ERR_NAME_NOT_RESOLVED”的bug:鏈接

8.每一個小程序頁面也可以使用.json文件來對本頁面的窗口表現進行配置。 頁面的配置比app.json全局配置簡單得多,只是設置app.json中的window配置項的內容,頁面中配置項會覆蓋app.json的window中相同的配置項。頁面的.json只能設置window相關的配置項,以決定本頁面的窗口表現,所以無需寫 window 這個鍵

9.data是在page中設置的,不是在app.js中的。不涉及渲染的可以不要放data里面。

10.Page.prototype.setData()變更數據同時更新頁面數據。
setData 函數用于將數據從邏輯層發送到視圖層,同時改變對應的 this.data 的值。直接修改 this.data 無效,無法改變頁面的狀態,還會造成數據不一致。單次設置的數據不能超過1024kB,請盡量避免一次設置過多的數據。

11.wx:if 是惰性的,如果在初始渲染條件為false,框架什么也不做,在條件第一次變成真的時候才開始局部渲染。

會話管理

微信的網絡請求接口 wx.request() 沒有攜帶 Cookies,這讓傳統基于 Cookies 實現的會話管理不再適用。為了讓處理微信小程序的服務能夠識別會話,我們會話管理使用weapp-session-client。這需要服務端的支持。基本原理是包裝wx.request并在 Header 上使用特殊的字段跟蹤。

使用時遇到的問題:
1.微信開發者工具報錯:Uncaught ReferenceError: regeneratorRuntime is not defined
原因是 Generator 函數不被支持。
解決方法:

  • 微信開發者工具關閉ES6轉ES5

  • 真正解決辦法,提供regeneratorRuntime

2.題外話:善用 Promise
本項目后端處理會話管理時要求發送請求時不能使用相同的 X-WX-Code發送多次全部header數據,RawData、Signature等,否則報錯。
所以使用weapp-session-client登錄的時候要等login返回之后再發送其他的請求,
小程序加載后立即順序執行app.js和page.js里面的配置,但是wx request是異步的,所以有可能page中的請求開始執行時app.js中的login還沒結束,就會導致bug。
可以使用個promise解決掉。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“微信小程序開發實踐的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洛扎县| 满城县| 日喀则市| 邵武市| 西宁市| 淮安市| 罗定市| 揭西县| 祁阳县| 石狮市| 台州市| 尉犁县| 阳西县| 涿鹿县| 兴安县| 星座| 潮州市| 盐池县| 蛟河市| 宾川县| 曲沃县| 南通市| 贞丰县| 巍山| 九江县| 蒙山县| 云梦县| 美姑县| 会泽县| 惠水县| 防城港市| 禹州市| 沂水县| 景德镇市| 云和县| 正蓝旗| 屯门区| 鹤峰县| 互助| 南溪县| 鲁山县|