2022-12-11 分類: 網(wǎng)站建設(shè)
這幾天搗鼓了一個(gè)商城小程序(copy了好幾個(gè)商城的UI),利用原生組件寫了幾個(gè)頁面,也碰到了一些痛點(diǎn),在此做一個(gè)簡(jiǎn)單的記錄。幾個(gè)簡(jiǎn)單的界面如下:
首頁商城分類商品詳情購(gòu)物車個(gè)人中心痛點(diǎn)原生的方式不能用sass。因?yàn)橛胿ue習(xí)慣了用sass寫樣式,但小程序不能直接使用sass等預(yù)處理器,不過好像用了mpvue、wepy等框架可以實(shí)現(xiàn)用css預(yù)處理器(還未嘗試過,試過了再更新)。去掉標(biāo)題欄必須全局統(tǒng)一去掉。本來以為在頁面的json文件里可以覆蓋,結(jié)果發(fā)現(xiàn)并不起作用,所以統(tǒng)一去掉之后,如果你在某些頁面又需要標(biāo)題欄只能自己用view模擬一個(gè)(如我這里的商品詳情頁),希望以后官方可以人性化一點(diǎn)。"navigationStyle": "custom" //只在app.json中生效
3. movable-view貌似有bug。在商城首頁的精選專題中我嘗試了用 movable-view實(shí)現(xiàn)橫向滾動(dòng)效果,后來發(fā)現(xiàn),整個(gè)頁面也會(huì)隨之滾動(dòng),在微信小程序社區(qū)里也有人遇到這個(gè)問題,不過沒人回答,不知道是自己的問題還是官方的bug,后來就改用scroll-view實(shí)現(xiàn)了。
精選專題4. 無tab切換組件(如下所示)。雖說tarbar把position設(shè)置為top是一個(gè)tab,但這種必須在最頂部,如果要在中間某個(gè)內(nèi)容區(qū)使用就只能自己實(shí)現(xiàn)了。
tab示例5. 無法動(dòng)態(tài)增加、刪除節(jié)點(diǎn)。本來想實(shí)現(xiàn)一個(gè)加入購(gòu)物車的動(dòng)畫,比如點(diǎn)擊了加入按鈕,商品圖片會(huì)掉下來,慢慢變成一個(gè)圓形,落在tarbar的購(gòu)物車上。結(jié)果發(fā)現(xiàn)不能直接刪減節(jié)點(diǎn),并且tabBar的位置好像也無法獲取到,在開發(fā)者工具中發(fā)現(xiàn)其并沒有渲染出來(希望知道的小伙伴告知一下,先謝謝了)。
6. background-img只能用于網(wǎng)絡(luò)圖片或者是base64轉(zhuǎn)碼后的圖片,一般的本地圖片無法使用,如果要用本地圖片作為背景圖,可以使用image加絕對(duì)定位的方式。
7. 當(dāng)text組件和view組件中的文字全英文或中英混合輸入時(shí)(全中文時(shí)正常)不換行。解決方案:
word-break: break-all
但可能會(huì)出現(xiàn)切斷單詞的情況,如將‘yang’分解為‘ya’和‘ng’放在兩行顯示,對(duì)此尚無很好的對(duì)策。
8. 聯(lián)系客服。有兩種按鈕方式可以實(shí)現(xiàn)這個(gè)功能,會(huì)有一個(gè)默認(rèn)圖標(biāo),去不掉,如果想自定義樣式可以使用。
注意事項(xiàng)下拉刷新。onPullDownRefresh在app.js中不起作用, 需要監(jiān)聽哪個(gè)頁面的下拉刷新就在對(duì)應(yīng)頁面的js文件里添加onPullDownRefresh,且需要在json文件中添加"enablePullDownRefresh": true
2. 列表渲染。wx:for 用在標(biāo)簽上,以渲染一個(gè)包含多節(jié)點(diǎn)的結(jié)構(gòu)塊,與vue類似,小程序提供了wx:key來保證列表項(xiàng)的自身狀態(tài),從而在渲染時(shí)直接復(fù)用,提高列表渲染效率,可以有以下兩種值形式:
1、列表中唯一的字符串或數(shù)字,且不能動(dòng)態(tài)改變 2、保留關(guān)鍵字 *this 代表在 for 循環(huán)中的 item 本身(如果item本身就是唯一的話)
注意key是不用{{ }}包裹的
wxml: {{item.name}} js: { id: 1, name: "評(píng)論" }, { id: 2, name: "推薦" }, { id: 3, name: "詳情" }
tip:如果wx:for循環(huán)中沒有使用key,控制臺(tái)會(huì)給出警告提示,但不會(huì)報(bào)錯(cuò)。不過為了性能效率,還是強(qiáng)烈建議大家都加上key,除非你能保證循環(huán)的數(shù)據(jù)是不動(dòng)態(tài)變化的。
3. 常用標(biāo)簽。
:非組件,只是一個(gè)包裝元素,不渲染,類似于vue中的template,常在wx:for循環(huán)中使用 :類似于div,塊狀元素 :組件內(nèi)只能嵌套組件,行內(nèi)元素,如果嵌套其他元素會(huì)不顯示 :圖片要加后綴名,有默認(rèn)寬高 :輪播圖,有默認(rèn)寬高,里面的寬高默認(rèn)100%
4. 由于開發(fā)者工具用的真心難受,所以其實(shí)可以使用自己喜歡的工具進(jìn)行開發(fā),我用的是webstorm,在使用之前需要先配置一下以支持小程序的語法:
1、設(shè)置wxml、wxss語法高亮 2、導(dǎo)入wechatcode.jar支持小程序代碼提示
具體方法就不詳細(xì)展開,隨便搜索就能找到。盡管如此還是無法達(dá)到好支持,部分語法也會(huì)識(shí)別不了,但影響不大。
5. navigator跳轉(zhuǎn)。導(dǎo)航類型分三種,通過open-type屬性設(shè)置
A、open-type="navigate" 打開新界面B、open-type="redirect" 在本界面中打開新界面C、open-type="switchTab" 控制tab頁之間的切換這里,需要注意的是:
1、所有需要跳轉(zhuǎn)的頁面必須在app.json中注冊(cè) 2、A是navigator的默認(rèn)跳轉(zhuǎn)方式,可以通過wx.navigateBack()返回 3、B跳轉(zhuǎn)到目標(biāo)頁面后,導(dǎo)航欄是沒有返回按鈕的,并且也無法通過wx.navigateBack()返回 4、A、B只能跳轉(zhuǎn)非tabBar中注冊(cè)的頁面,不能打開url="../index/index"(一般是tabBar的首頁),因?yàn)閜ages/index/index界面是tab頁 5、C只能打開tabBar注冊(cè)的界面后言
剛接觸小程序沒幾天,有點(diǎn)瑟瑟發(fā)抖,有不對(duì)的地方還望小伙伴指正,共同成長(zhǎng)。
這個(gè)小項(xiàng)目會(huì)持續(xù)更新,我會(huì)讓它更加完善,一些樣式和組件的抽離、請(qǐng)求的封裝等在后續(xù)會(huì)加上去。暫時(shí)就先這樣吧,以后有遇到問題再補(bǔ)充,希望明天入職愉快。
Paranoidyang/wx_shopping_mall
分享標(biāo)題:一個(gè)商城小程序的踩坑之路
文章源于:http://m.rwnh.cn/news42/221542.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站維護(hù)、品牌網(wǎng)站制作、網(wǎng)站設(shè)計(jì)公司、電子商務(wù)、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容