微信小程序基礎(chǔ)

微信小程序相關(guān)及一些小坑

1.頁(yè)面滑動(dòng)

小程序內(nèi)容超出父盒子,或者頁(yè)面超出屏幕都不會(huì)出現(xiàn)滾動(dòng)條滑動(dòng),如需要滑動(dòng),要使用scroll-view組件包裹著要滑動(dòng)的區(qū)域
scroll-view相關(guān)配置屬性

scroll-view相關(guān)

  1. scroll-view生效需要設(shè)置高度,如果沒(méi)有設(shè)置高度,滑動(dòng)效果不生效
  2. 去除scroll-view默認(rèn)滾動(dòng)條
::-webkit-scrollbar{

width: 0;

height: 0;

color: transparent;

}

2.閉包問(wèn)題

請(qǐng)求后臺(tái)api中的success函數(shù)實(shí)際是一個(gè)閉包 , 無(wú)法直接通過(guò)this來(lái)設(shè)置setData;
解決方案:
1.將當(dāng)前對(duì)象賦給一個(gè)新對(duì)象:let that = this
2.使用箭頭函數(shù)

  onLoad: function (options) {
    console.log(options.uselogid)
    wx.request({
      url: util.Api.getUserPrizeInfo,
      method: 'get',
      data: {
        openid: app.globalData.openid,
        user_log_id: options.uselogid
      },
      success: (res) => {
        // console.log(res.data)
        this.setData({
          cardData: res.data.data,
          qrCode: res.data.data.qrCodeUrl,
          uselogid: options.uselogid,
          status: res.data.data.status
        })
        console.log(this.data.status)
      }
    })
  }

3.背景圖片問(wèn)題

小程序中的背景圖片寫在wxss預(yù)覽時(shí)無(wú)法顯現(xiàn)
解決方案:
1.將圖片轉(zhuǎn)為base64格式,才能在wxss內(nèi)設(shè)置
2.寫行內(nèi)樣式,圖片用網(wǎng)絡(luò)圖片,本地圖片無(wú)法預(yù)覽

4.路由

1.使用navigator標(biāo)簽導(dǎo)航,注意url地址不能帶文件后綴
2.在js文件內(nèi)注冊(cè)事件跳轉(zhuǎn)
wx.navigateTo跳轉(zhuǎn)保留當(dāng)前頁(yè)面,也就是說(shuō)會(huì)有返回箭頭

 wx.navigateTo({
       url: '/pages/cardDetial/cardDetial?uselogid=' + e.currentTarget.dataset.uselogid,
     })

wx.redirectTo跳轉(zhuǎn) 關(guān)閉當(dāng)前頁(yè)面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個(gè)頁(yè)面。但是不允許跳轉(zhuǎn)到 tabbar 頁(yè)面。

wx.redirectTo({
      url: '/pages/superGift/superGift',
    })

5.頁(yè)面間傳值

傳值:和web頁(yè)面差不多,也是在url地址后面拼接參數(shù)

wx.navigateTo({
        url: '/pages/cardDetial/cardDetial?uselogid=' + e.currentTarget.dataset.uselogid,
      })

接收:直接在生命周期onLoad里用參數(shù)接收

  onLoad: function (options) {
    console.log(options.uselogid)
  },

6.無(wú)法使用外部字體圖標(biāo)

大部分情況下直接下載iconfont的壓縮包,將其內(nèi)的iconfont.css文件復(fù)制到一個(gè)新的wxss文件內(nèi),然后在app.wxss文件內(nèi)全局引入@import "/lib/style/iconfont.wxss";就可以在任意文件中使用了
如果出現(xiàn)無(wú)法使用的情況,試試下面方法:
1,下載font-awesome字體包

2,打開(kāi)Transfonter網(wǎng)站,上傳字體iconfont.ttf,選擇base64編碼

3,convert完畢后點(diǎn)擊下載,下載得到的包中有stylesheet.css文件,打開(kāi)并對(duì)照f(shuō)ont-awesome.css中的內(nèi)容進(jìn)行合并base64部分,加入到微信小程序的xxx.wxss文件中進(jìn)行使用

<text class="iconfont icon-xxxx"></text>

7.setData修改數(shù)組或?qū)ο?/h3>

setData無(wú)法直接修改引用類型的數(shù)據(jù),需要字符串拼接的方式保存到變量中

 var closeShow = "redPacket.myClosePackect"
 self.setData({
             
              [closeShow]: false,
              
            })

8.textarea注意事項(xiàng)

1.bug: 微信版本 6.3.30,textarea 在列表渲染時(shí),新增加的 textarea 在自動(dòng)聚焦時(shí)的位置計(jì)算錯(cuò)誤。
2.tip: textarea 的 blur 事件會(huì)晚于頁(yè)面上的 tap 事件,如果需要在 button 的點(diǎn)擊事件獲取 textarea,可以使用 form 的 bindsubmit。
3.tip: 不建議在多行文本上對(duì)用戶的輸入進(jìn)行修改,所以 textarea 的 bindinput 處理函數(shù)并不會(huì)將返回值反映到 textarea 上。
4.tip: textarea 組件是由客戶端創(chuàng)建的原生組件,它的層級(jí)是最高的,不能通過(guò) z-index 控制層級(jí)。
5.tip: 請(qǐng)勿在 scroll-view、swiper、picker-view、movable-view 中使用 textarea 組件。
6.tip: css 動(dòng)畫對(duì) textarea 組件無(wú)效。

9.原生組件無(wú)法被覆蓋的問(wèn)題

map、video、canvas、camera 等原生組件上不可被標(biāo)簽覆蓋,如果需要覆蓋,要使用cover-view標(biāo)簽 且只支持嵌套cover-view、cover-image

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容