小程序开发注意事项
● 1 要區(qū)分一下一個(gè)新的頁面的業(yè)務(wù)邏輯適合放在onload里面去做請(qǐng)求還是適合在onshow里面去請(qǐng)求數(shù)據(jù)。
● 2 頁面的各種請(qǐng)求可以放到onShow 中,這樣的話可以從返回上一個(gè)頁面時(shí),上一個(gè)頁面的數(shù)據(jù)進(jìn)行重新加載,以便于獲取最新的數(shù)據(jù); 同時(shí)也可以避免wx.getCurrentPage來取數(shù)據(jù)。
● 3 每個(gè)頁面中的data 數(shù)據(jù),盡量使用對(duì)象的方式,可以設(shè)置多個(gè)屬性值。避免以后維護(hù)過程中不知道每個(gè)變量的含義。
● 4 獲取用戶輸入的內(nèi)容,盡量用bindinput ,驗(yàn)證的時(shí)候使用bindblur。
● 5 數(shù)據(jù)分頁加載的功能,其實(shí)是聲名一個(gè)空數(shù)組,這個(gè)空數(shù)組carlist就是頁面的數(shù)據(jù)列表,每次請(qǐng)求到的數(shù)據(jù),利用數(shù)組的concat() 方式將新請(qǐng)求到的數(shù)據(jù)跟之前的數(shù)組鏈接起來,形成分頁加載的效果,如果請(qǐng)求的數(shù)據(jù)是空,則顯示到底了,如果第一次請(qǐng)求數(shù)據(jù)就是空,則顯示時(shí)暫無數(shù)據(jù); 這樣不以依據(jù)默認(rèn)的carlist.length==0來顯示暫無數(shù)據(jù)圖片造成的閃現(xiàn)。
● 6 把JS功能封裝成單獨(dú)的模塊,不要再放在同一個(gè)common中。為了以后方便遷移和結(jié)構(gòu)的升級(jí)。
● 7 公共樣式也要進(jìn)行封裝,避免后期太多、太亂。
● 8 每個(gè)頁面要對(duì)上一個(gè)頁面的傳值就行驗(yàn)證,避免因?yàn)閭髦挡粚?duì)造成功能不能使用或者頁面崩潰的情況。
● 9 開發(fā)的過程中,首頁對(duì)整個(gè)業(yè)務(wù)流程進(jìn)行構(gòu)思,根據(jù)業(yè)務(wù)流程開發(fā),一定要合理安排好每個(gè)業(yè)務(wù)的功能模板中最核心的業(yè)務(wù),核心模板不僅僅涉及個(gè)人,還關(guān)系到測(cè)試方面,甚至其他人的進(jìn)度工作。
● 10 能用一個(gè)頁面的 ,盡量整合成一個(gè)頁面。比如:詳情頁和sku。甚至以后的活動(dòng)頁面。
● 11 對(duì)于已經(jīng)加載到底的圖標(biāo),由于圖片和文字兩邊各有一個(gè)”---------”,可以用兩個(gè)空盒子,然后設(shè)置border-top的方式形成兩邊的橫線。
● 12 所有的按鈕都要有交互反饋。確保讓用戶能感受到我確實(shí)點(diǎn)擊了按鈕。
● 13 所有的按鈕,尤其是提交類型的按鈕,最好都要進(jìn)行單擊次數(shù)的限制,目的是為了避免數(shù)據(jù)的重復(fù)提交,在交易網(wǎng)站中的目的是避免重復(fù)下單。
● 14 所有的數(shù)據(jù)下載或上傳的時(shí)候,預(yù)加載效果不僅僅是個(gè)樣式,也是保證每次的數(shù)據(jù)能夠有時(shí)間上傳或者下載的過程。
● 15 確保git 中的代碼與最新項(xiàng)目版本能夠有一套完全相同的,同時(shí)也要預(yù)估好線上項(xiàng)目突發(fā)機(jī)制,另外確保項(xiàng)目再git 中有各個(gè)歷史版本,確保項(xiàng)目如果有突發(fā)風(fēng)險(xiǎn),可以及時(shí)利用上一個(gè)版本進(jìn)行替換,不至于導(dǎo)致項(xiàng)目無法使用;但是最好是檢查好,不要出現(xiàn)突發(fā)情況。
● 17 首先要想到的并且加入到項(xiàng)目的首要功能是版本更新機(jī)制,比如小程序的版本更新機(jī)制,原因:可能因?yàn)榘姹静患皶r(shí)更新導(dǎo)致很多不良后果;另外版本號(hào)要在上線項(xiàng)目中表明,以便于進(jìn)行區(qū)分工作。
● 18 每次修改一個(gè)內(nèi)容,都要看一下是否把原本沒問題的流程影響了,導(dǎo)致bug
● 19 代碼上線前,一定要審核是否有相關(guān)的重要代碼被注銷了,否在帶來的后果是不堪設(shè)想的。
● 20 代碼發(fā)布時(shí)一定要考慮到有一個(gè)版本,保證核心業(yè)務(wù)流程能夠不受影響的正常使用。
● 2 頁面的各種請(qǐng)求可以放到onShow 中,這樣的話可以從返回上一個(gè)頁面時(shí),上一個(gè)頁面的數(shù)據(jù)進(jìn)行重新加載,以便于獲取最新的數(shù)據(jù); 同時(shí)也可以避免wx.getCurrentPage來取數(shù)據(jù)。
● 3 每個(gè)頁面中的data 數(shù)據(jù),盡量使用對(duì)象的方式,可以設(shè)置多個(gè)屬性值。避免以后維護(hù)過程中不知道每個(gè)變量的含義。
● 4 獲取用戶輸入的內(nèi)容,盡量用bindinput ,驗(yàn)證的時(shí)候使用bindblur。
● 5 數(shù)據(jù)分頁加載的功能,其實(shí)是聲名一個(gè)空數(shù)組,這個(gè)空數(shù)組carlist就是頁面的數(shù)據(jù)列表,每次請(qǐng)求到的數(shù)據(jù),利用數(shù)組的concat() 方式將新請(qǐng)求到的數(shù)據(jù)跟之前的數(shù)組鏈接起來,形成分頁加載的效果,如果請(qǐng)求的數(shù)據(jù)是空,則顯示到底了,如果第一次請(qǐng)求數(shù)據(jù)就是空,則顯示時(shí)暫無數(shù)據(jù); 這樣不以依據(jù)默認(rèn)的carlist.length==0來顯示暫無數(shù)據(jù)圖片造成的閃現(xiàn)。
● 6 把JS功能封裝成單獨(dú)的模塊,不要再放在同一個(gè)common中。為了以后方便遷移和結(jié)構(gòu)的升級(jí)。
● 7 公共樣式也要進(jìn)行封裝,避免后期太多、太亂。
● 8 每個(gè)頁面要對(duì)上一個(gè)頁面的傳值就行驗(yàn)證,避免因?yàn)閭髦挡粚?duì)造成功能不能使用或者頁面崩潰的情況。
● 9 開發(fā)的過程中,首頁對(duì)整個(gè)業(yè)務(wù)流程進(jìn)行構(gòu)思,根據(jù)業(yè)務(wù)流程開發(fā),一定要合理安排好每個(gè)業(yè)務(wù)的功能模板中最核心的業(yè)務(wù),核心模板不僅僅涉及個(gè)人,還關(guān)系到測(cè)試方面,甚至其他人的進(jìn)度工作。
● 10 能用一個(gè)頁面的 ,盡量整合成一個(gè)頁面。比如:詳情頁和sku。甚至以后的活動(dòng)頁面。
● 11 對(duì)于已經(jīng)加載到底的圖標(biāo),由于圖片和文字兩邊各有一個(gè)”---------”,可以用兩個(gè)空盒子,然后設(shè)置border-top的方式形成兩邊的橫線。
● 12 所有的按鈕都要有交互反饋。確保讓用戶能感受到我確實(shí)點(diǎn)擊了按鈕。
● 13 所有的按鈕,尤其是提交類型的按鈕,最好都要進(jìn)行單擊次數(shù)的限制,目的是為了避免數(shù)據(jù)的重復(fù)提交,在交易網(wǎng)站中的目的是避免重復(fù)下單。
● 14 所有的數(shù)據(jù)下載或上傳的時(shí)候,預(yù)加載效果不僅僅是個(gè)樣式,也是保證每次的數(shù)據(jù)能夠有時(shí)間上傳或者下載的過程。
● 15 確保git 中的代碼與最新項(xiàng)目版本能夠有一套完全相同的,同時(shí)也要預(yù)估好線上項(xiàng)目突發(fā)機(jī)制,另外確保項(xiàng)目再git 中有各個(gè)歷史版本,確保項(xiàng)目如果有突發(fā)風(fēng)險(xiǎn),可以及時(shí)利用上一個(gè)版本進(jìn)行替換,不至于導(dǎo)致項(xiàng)目無法使用;但是最好是檢查好,不要出現(xiàn)突發(fā)情況。
● 17 首先要想到的并且加入到項(xiàng)目的首要功能是版本更新機(jī)制,比如小程序的版本更新機(jī)制,原因:可能因?yàn)榘姹静患皶r(shí)更新導(dǎo)致很多不良后果;另外版本號(hào)要在上線項(xiàng)目中表明,以便于進(jìn)行區(qū)分工作。
● 18 每次修改一個(gè)內(nèi)容,都要看一下是否把原本沒問題的流程影響了,導(dǎo)致bug
● 19 代碼上線前,一定要審核是否有相關(guān)的重要代碼被注銷了,否在帶來的后果是不堪設(shè)想的。
● 20 代碼發(fā)布時(shí)一定要考慮到有一個(gè)版本,保證核心業(yè)務(wù)流程能夠不受影響的正常使用。
● 21 事件對(duì)象中target屬性和currentTarget屬性區(qū)分?
解答:target屬性 是個(gè)對(duì)象,指的是觸發(fā)事件的源組件,而currentTarget屬性表示的是當(dāng)前組件。通常情況下兩者都是一致的,但是當(dāng)組件嵌套時(shí),外層組件和內(nèi)層組件都綁定了事件,當(dāng)內(nèi)層的組件綁定的事件觸發(fā)時(shí),外層的這兩個(gè)屬性便會(huì)不一樣。target則指向內(nèi)層組件,currentTarget則指向外層組件。
● 22文件導(dǎo)入有三種方式?
解答:①當(dāng)導(dǎo)入模板文件時(shí)使用的是<import src="模板文件路徑' />;②使用<include src="源文件路徑" />,本方法會(huì)導(dǎo)入除去模板文件外所有的資源;③@import "wxss樣式文件路徑"; 以此方法導(dǎo)入需要的樣式文件。
● 23 微信小程序提示授權(quán)彈窗,如果用戶第一次點(diǎn)擊拒絕之后,一段時(shí)間將不會(huì)再次彈出來,然后用戶又不知道什么原因用不了小程序,這是個(gè)很糟糕的用戶體驗(yàn),我們應(yīng)該優(yōu)雅的處理這種情況
● 24 小程序問題
- 不支持跳轉(zhuǎn)外部鏈接
- text可以解析/n,
- 目前不支持識(shí)別圖中二維碼,
- 背景圖片不能用本地圖片,
- wx.navigateTo需要跳轉(zhuǎn)的應(yīng)用內(nèi)非 tabBar 的頁面的路徑
- wx.switchTab跳轉(zhuǎn)到tabBar頁面,
- wx.showToast(),icon只支持success和loading,但是支持image,且image優(yōu)先級(jí)高于icon
- tabBar頁面A navigatorTo 到頁面B,然后B switchTab 到A,這里A會(huì)執(zhí)行onShow();
但是我再從A跳到B再switchTab回來,A就不會(huì)再執(zhí)行onShow()了 - 在json文件中沒有寫內(nèi)容的時(shí)候也要加一對(duì)大括號(hào){ },不然的話也會(huì)報(bào)錯(cuò)?
- .我們使用app.json文件來對(duì)微信小程序進(jìn)行全局配置,決定頁面文件的路徑、窗口表現(xiàn)、設(shè)置網(wǎng)絡(luò)超時(shí)時(shí)間、設(shè)置多 tab 的時(shí)候在pages中寫注釋的時(shí)候回報(bào)錯(cuò)。?
- 小程序button按鈕自帶邊框效果,而且直接設(shè)置border無法去掉,需要設(shè)置:after的樣式
- 正常事件綁定使用的是bindtap,但是該方法無法阻止事件冒泡,這樣就會(huì)觸發(fā)父元素綁定的事件,小程序提供另一種方法來解決該問題,使用catchtap事件替換bindtap即可;
轉(zhuǎn)載于:https://www.cnblogs.com/gavinjay/p/9587906.html
總結(jié)
- 上一篇: 不锈钢表面处理剂用什么化学物质
- 下一篇: pytest fixture执行顺序