mpvue小程序以及微信直播踩坑總結(jié)

前段時(shí)間剛寫(xiě)完一個(gè)mpvue的小程序,現(xiàn)在得閑必須趕緊記錄和總結(jié)一下熊户,不然很多東西又要忘了

我是比較熟悉vue的語(yǔ)法萍膛,但是也猶豫過(guò)是用原生還是用mpvue,因?yàn)槟菚r(shí)候原生小程序已經(jīng)相當(dāng)成熟而mpvue才剛出來(lái)(踩坑和填坑的前人還很少)

所以我學(xué)習(xí)了幾天原生的框架和語(yǔ)法嚷堡,果斷選擇了mpvue蝗罗,真的是沒(méi)有對(duì)比就沒(méi)有傷害,對(duì)比原生體驗(yàn)不要太好

mpvue是一個(gè)使用 Vue.js 開(kāi)發(fā)小程序的前端框架蝌戒,他是將我們寫(xiě)的vue文件重新編譯成wxml等文件串塑,最后的底層實(shí)現(xiàn)還是用的小程序語(yǔ)法,所以原生小程序語(yǔ)法也是比較重要的北苟,而且像很多下拉刷新桩匪,到底部請(qǐng)求下一頁(yè)什么的等等很多地方也是要用到小程序api的,所以建議大家在入坑之前還是了解一些小程序語(yǔ)法比較好

附上官方文檔http://mpvue.com/#_1

項(xiàng)目配置

使用官方的5分鐘上手粹淋,生成一個(gè)基本框架吸祟,后來(lái)開(kāi)發(fā)也沒(méi)有手動(dòng)修改過(guò)他的配置

用到了4個(gè)插件

mpvue-weui ui庫(kù),相當(dāng)方便輕量好使

官網(wǎng)地址:http://kuangpf.com/mpvue-weui/#/

mpvue-toast 一個(gè)基于mpvue的簡(jiǎn)單彈窗組件

因?yàn)閙pvue目前還不支持全局的組件桃移,所以沒(méi)有辦法像vue組件引入一次就能在所有頁(yè)面使用屋匕,但是mpvue團(tuán)隊(duì)已經(jīng)在考慮新增全局組件功能了

github地址:https://github.com/linrui1994/mpvue-toast

sass 不多介紹

全局安裝:npm install sass-loader node-sass --save-dev

在style節(jié)點(diǎn)加上lang=”scss”,這樣就可以愉快地使用sass進(jìn)行開(kāi)發(fā)了

mpvue-router-patch 在mpvue 中使用 vue-router 兼容的路由寫(xiě)法

當(dāng)知道m(xù)pvue不支持vue-router的時(shí)候我還是非常難受借杰,還好mpvue團(tuán)隊(duì)后面發(fā)布了這個(gè)插件过吻,非常簡(jiǎn)單好用

github地址:https://github.com/F-loat/mpvue-router-patch

<u>接下來(lái)的3個(gè)插件我沒(méi)有用過(guò)但是和mpvue-router-patch一樣是mpvue團(tuán)隊(duì)發(fā)布的,感覺(jué)應(yīng)該也不差,也推薦給大家如果需要可以花時(shí)間了解一下</u>

mpvue-echarts 適用于 Mpvue 的 ECharts 組件

github地址:https://github.com/F-loat/mpvue-echarts

微信小程序富文本解析組件 適用于 Mpvue 的微信小程序富文本解析自定義組件

github地址:https://github.com/F-loat/mpvue-wxParse

mpvue-entry自動(dòng)生成各頁(yè)面的入口文件 集中式頁(yè)面配置纤虽,自動(dòng)生成各頁(yè)面的入口文件乳绕,優(yōu)化目錄結(jié)構(gòu),支持新增頁(yè)面熱更新

github地址:https://github.com/F-loat/mpvue-entry

ajax請(qǐng)求封裝拿走不謝

let urlPath = '' // 項(xiàng)目的域名
export function post(url, data) {
  wx.showLoading({
    title: '努力加載中',
  })
// 由于微信不會(huì)保存后端用于登陸驗(yàn)證的cookie逼纸,這里需要自己從登陸返回的數(shù)據(jù)里取到cookie洋措,然后本地緩存,請(qǐng)求時(shí)在header里帶上cookie
  let header = {} 
  url === 'user/loginworker' // 通過(guò)傳進(jìn)來(lái)的url判斷是否是登陸頁(yè)
    ? header = {} 
    : header = {
      'content-type': 'application/x-www-form-urlencoded',
      'cookie': wx.getStorageSync("sessionid")
    } 
  return new Promise((resolve, reject) => {
    wx.request({
      url: urlPath + url,
      data: data,
      method: 'get',
      header: header, success(res) {
        console.log(res)
        if (res.statusCode === 200) {
          if (res.data === 9999) { // 與后端的后端返回9999表示cookie失效
            wx.showModal({
              content: '登陸超時(shí)請(qǐng)重新登陸',
              showCancel: false,
              success: function (res) {
                if (res.confirm) {
                  wx.navigateTo({
                    url: '../../pages/login/main',
                  })
                }
              }
            })
          } else if (res.data.code && res.data.code !== 200) { // 若返回coode碼且不等于200表示傳入?yún)?shù)有問(wèn)題
            res.message = res.data.message, reject(res)
          } else resolve(res)
            // 存儲(chǔ)cookie
          res.data.message === '登錄成功杰刽。' ? wx.setStorageSync("sessionid", res.header["Set-Cookie"]) : ""
        }else {
          res.message = '服務(wù)器錯(cuò)誤請(qǐng)求失敗'
          reject(res)
        }
        wx.hideLoading()
      }, fail(err) {
        err.message = '請(qǐng)求超時(shí)請(qǐng)稍后再試'
        reject (err)
        wx.hideLoading()
      }
    })
  })
}

image

生命周期鉤子

created是vue的生命周期在mpvue里所有頁(yè)面的created函數(shù)會(huì)在項(xiàng)目加載的時(shí)候被一起調(diào)用菠发,可用性不大,可以使用onShow()代替贺嫂,但是onShow()只有在隱藏又顯示后才會(huì)顯示,也就是第一次加載不會(huì)執(zhí)行

 created() {
    console.log('created')
  },
  mounted() {
    console.log('mounted')
  },
  onLoad() {
    console.log('onLoad')
  },
  onShow() {
    console.log('onShow')
  },
  onUnload() {
    console.log('onUnload')
  },
  onHide() {
    console.log('onHide')
  },

image

頁(yè)面跳轉(zhuǎn)后并沒(méi)有銷毀頁(yè)面實(shí)例

比如一個(gè)搜索頁(yè)面滓鸠,頁(yè)面第一次進(jìn)來(lái)所有的數(shù)據(jù)都是空的,但你搜索一次之后第喳,input框就有值了糜俗,這個(gè)時(shí)候再跳轉(zhuǎn)到其他頁(yè)面或者返回之后再進(jìn)入這個(gè)頁(yè)面那個(gè)值依然存在,頁(yè)面跳轉(zhuǎn)后并沒(méi)有銷毀頁(yè)面實(shí)例曲饱,而是將其推入頁(yè)面棧中悠抹,所以會(huì)保存之前的舊的數(shù)據(jù),目前為止看到的比較統(tǒng)一的解決辦法就是:在onShow()或者onLoad()手動(dòng)清空

關(guān)于微信直播

這個(gè)小程序需要引入監(jiān)控相當(dāng)于是直播功能渔工,這個(gè)組件也是有點(diǎn)坑

Live-player組件本身只能播放锌钮,如果想要在組件上加功能,像什么全屏靜音播放暫停之類的功能需要使用wx.createLivePlayerContext()方法引矩,而且由于live-player層級(jí)是最高的,如果你需要在組件上加功能比如點(diǎn)一下全屏再點(diǎn)下退出全屏或者加css樣式侵浸,你必須寫(xiě)在 cover-view cover-image上面旺韭,直接加在live-player上是沒(méi)用的

<live-player id='liveInfo' src="" mode="live" autoplay='false' @bindstatechange="statechange" binderror="error">
    <cover-image @click="requestFullScreen"></cover-image>
</live-player>

image

你以為這樣就完了嘛,不掏觉,如果你有一個(gè)直播列表区端,比如一個(gè)屏幕同時(shí)有一個(gè)以上的live-player組件那么你全屏的時(shí)候就會(huì)發(fā)現(xiàn)其余的組件因?yàn)閷蛹?jí)的原因全部覆蓋在你全屏的那個(gè)組件之上

解決辦法:全屏是v-if隱藏其余的組件,退出時(shí)再顯示

作者:沒(méi)事兒啊
鏈接:http://www.reibang.com/p/e22590a2f4bc
來(lái)源:簡(jiǎn)書(shū)
著作權(quán)歸作者所有澳腹。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)织盼,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末酱塔,一起剝皮案震驚了整個(gè)濱河市沥邻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌羊娃,老刑警劉巖唐全,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蕊玷,居然都是意外死亡邮利,警方通過(guò)查閱死者的電腦和手機(jī)弥雹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)延届,“玉大人剪勿,你說(shuō)我怎么就攤上這事》酵ィ” “怎么了厕吉?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)二鳄。 經(jīng)常有香客問(wèn)我赴涵,道長(zhǎng),這世上最難降的妖魔是什么订讼? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任髓窜,我火速辦了婚禮,結(jié)果婚禮上欺殿,老公的妹妹穿的比我還像新娘寄纵。我一直安慰自己,他們只是感情好脖苏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布程拭。 她就那樣靜靜地躺著,像睡著了一般棍潘。 火紅的嫁衣襯著肌膚如雪恃鞋。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,554評(píng)論 1 305
  • 那天亦歉,我揣著相機(jī)與錄音恤浪,去河邊找鬼。 笑死肴楷,一個(gè)胖子當(dāng)著我的面吹牛水由,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播赛蔫,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼砂客,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了呵恢?” 一聲冷哼從身側(cè)響起鞠值,我...
    開(kāi)封第一講書(shū)人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瑰剃,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡粤剧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年歇竟,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抵恋。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡焕议,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出弧关,到底是詐尸還是另有隱情盅安,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布世囊,位于F島的核電站别瞭,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏株憾。R本人自食惡果不足惜蝙寨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嗤瞎。 院中可真熱鬧墙歪,春花似錦、人聲如沸贝奇。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)掉瞳。三九已至毕源,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間陕习,已是汗流浹背脑豹。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留衡查,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓必盖,卻偏偏與公主長(zhǎng)得像拌牲,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子歌粥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容