知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁 » 新聞資訊 » 小程序相關(guān) >
小程序開發(fā)遇到的坑,知道下總是好的!
發(fā)表時(shí)間:2021-1-4
發(fā)布人:葵宇科技
瀏覽次數(shù):97
因?yàn)橹耙恢弊龅氖莗c端的開發(fā),而且大部分是用的vue或者react技術(shù)棧。并且所做的web網(wǎng)頁基本也都不需要兼容低版本瀏覽器,所以在開發(fā)過程中對(duì)于兼容的處理其實(shí)比較少的。然而當(dāng)開始接觸微信小程序原生開發(fā)之后,也開始遇到并解決了一些坑,有些是兼容性導(dǎo)致的,這里就簡單記錄下自己遇到并解決的坑,希望對(duì)你也有所幫助,不用在此浪費(fèi)時(shí)間!
text標(biāo)簽不要換行,view中如果也只有文本也不要換行
這個(gè)問題真的是寫div寫的習(xí)慣了,特別喜歡把標(biāo)簽換行就像這樣:
<div>
中國
<div>
復(fù)制代碼
然而當(dāng)在小程序中也這樣寫的時(shí)候,問題就出現(xiàn)了。在小程序中渲染完成后會(huì)發(fā)現(xiàn)在文字的前后會(huì)加一行空格,所以就導(dǎo)致了文字前后的上下間距加大,所以導(dǎo)致頁面與設(shè)計(jì)不符合。因此小程序中不能換行!
bind綁定事件在低版本不能帶有冒號(hào)
這個(gè)是在input輸入框的時(shí)候,綁定了一個(gè)事件。但是當(dāng)時(shí)是用的是bind:事件這樣的寫法,在高版本的微信使用是沒有問題的,但是當(dāng)在低版本微信的時(shí)候,事件并沒有生效。然后查了下文檔,文檔說是在比較低的版本只支持不帶:的綁定寫法,所以為了兼容性可以看最低需要支持的微信版本,適度使用不帶:的綁定事件。
setData異步問題
文檔有寫到setData方法是個(gè)異步的方法,所以在需要依賴這個(gè)更改值的地方,需要寫到回調(diào)函數(shù)里,類似于react的setState方法。還有個(gè)需要注意的問題是,在需要更新ui的值才放到data中用setData進(jìn)行更改,因?yàn)閟etData更改數(shù)據(jù)比較消耗性能,如果是js中需要使用的變量不涉及到更新ui界面,可以直接放到this下,更改值的時(shí)候直接這樣修改:
this.flag = '123'
復(fù)制代碼
這樣的話一方面避免的性能問題,一方面也解決了更改數(shù)據(jù)的異步問題。
禁止滑動(dòng)穿透要定義一個(gè)catch事件touchmove事件
在封裝一個(gè)彈出層模態(tài)框的時(shí)候,當(dāng)蒙層蓋在頁面上,滑動(dòng)蒙層會(huì)穿透滑動(dòng)頁面,要禁止這個(gè)穿透滑動(dòng)只需要用catch定義一個(gè)touchmove的空事件方法就可以了。
wxml中不能使用一些js方法
在web開發(fā)的時(shí)候,比如react,通常如果數(shù)據(jù)需要簡單的處理下,可以直接在jsx中對(duì)數(shù)據(jù)進(jìn)行處理。比如保留2位小數(shù)這樣的需求。但是如果在小程序中直接使用js的api進(jìn)行數(shù)據(jù)處理是行不通的,所以要想對(duì)數(shù)據(jù)再次處理有兩個(gè)方法:
直接在js文件中把數(shù)據(jù)先處理好 在wxs中定義一個(gè)處理函數(shù),然后在wxml中進(jìn)行調(diào)用
wx.scanCode在安卓和iOS下表現(xiàn)不一致
這個(gè)坑是真的難受,當(dāng)在進(jìn)入頁面判斷調(diào)用wx.scanCode之后,在成功的回調(diào)進(jìn)行賦值。結(jié)果發(fā)現(xiàn)安卓下賦值總是晚于onShow生命周期函數(shù),但是在iOS上是成功的回調(diào)函數(shù)先于onShow生命周期函數(shù)。最后經(jīng)過反復(fù)論證,得出的結(jié)論是
調(diào)用掃一掃api在安卓下,回調(diào)函數(shù)是晚于onShow。而在iOS下回調(diào)函數(shù)會(huì)早于onShow
開發(fā)版和正式版本有本地緩存記錄,體驗(yàn)版沒有
在測(cè)試小程序的時(shí)候,難免會(huì)接觸到開發(fā)版、體驗(yàn)版和正式版。這個(gè)坑就是這三個(gè)版本之間會(huì)有差異,所以不到正式版測(cè)試一下,其它的版本只能做一個(gè)參考。舉個(gè)例子:就是有個(gè)人數(shù)據(jù)永久存儲(chǔ)到本地,但是體驗(yàn)版在每次進(jìn)入的時(shí)候卻并沒有保存。所以開發(fā)小程序每個(gè)版本都要試試,有差異要以正式版為主
小程序之間跳轉(zhuǎn)的extraData下的參數(shù)安卓和iOS表現(xiàn)不同
在做小程序跳轉(zhuǎn)的時(shí)候需要攜帶一些參數(shù),文檔指出在extraData下有攜帶的數(shù)據(jù),但是實(shí)踐得知,在安卓和iOS存在不同,安卓攜帶的數(shù)據(jù)是一直存在的,內(nèi)部頁面的跳轉(zhuǎn)也攜帶有參數(shù)。而iOS只在跳轉(zhuǎn)的那個(gè)頁面存在數(shù)據(jù),在之后的內(nèi)部跳轉(zhuǎn)數(shù)據(jù)是消失不存在的
相關(guān)案例查看更多
相關(guān)閱讀
- 云南省建設(shè)廳官方網(wǎng)站
- 網(wǎng)站開發(fā)公司哪家好
- 云南小程序開發(fā)課程
- asp網(wǎng)站
- 小程序公司
- 二叉樹
- 全國前十名小程序開發(fā)公司
- 網(wǎng)絡(luò)公司聯(lián)系方式
- 小程序定制開發(fā)
- 汽車拆解管理系統(tǒng)
- 云南網(wǎng)站建設(shè)服務(wù)公司
- 云南科技公司
- 保山小程序開發(fā)
- 云南省建設(shè)廳網(wǎng)站
- 表單
- 報(bào)廢車
- 昆明網(wǎng)站設(shè)計(jì)
- 云南網(wǎng)站開發(fā)
- 小程序定制
- 手機(jī)網(wǎng)站建設(shè)
- 網(wǎng)站建設(shè)服務(wù)公司
- 網(wǎng)站小程序
- 百度快速排名
- 云南花農(nóng)小程序
- 昆明網(wǎng)絡(luò)公司
- 昆明小程序哪家好
- 網(wǎng)站優(yōu)化公司
- 網(wǎng)頁制作
- 網(wǎng)站開發(fā)
- 電商網(wǎng)站建設(shè)