公司要開發一個小程序,面向用戶分爲3種角色,因此要本身手寫個tabbar(文章編輯中,屆時將連接放過來)
由於也是時隔好久寫小程序,就選擇了跟vue相近的mpvue來寫,或多或少也遇到了點問題,現總結一下。vue
開發環境:
系統:MAC,版本10.14.6;
微信開發者工具:Nightly v1.02.1908222;git
VUE: 日常咱們遍歷數據可能這麼寫,key屬性寫到被包裹的dom上github
<template v-for="item in 10"> <span :key="item">數字: {{item}}</span> </template>
mpVue:小程序他會要求把key屬性直接寫到遍歷的標籤上,若是咱們還像上邊同樣的寫法,開發者工具會提示:json
這樣一來,template標籤就用不成了,由於key寫到template上會直接編譯報錯,咱們只能用實際的標籤來代替template小程序
mpVue里正確的寫法:微信
<div v-for="item in 10" :key="item"> <span>{{item}}</span> </div>
例如:微信開發
<!-- 子組件 --> <card class="fatherClass" style="color: red;"></card>
終端會直接報錯:app
mpVue里正確的寫法應該把class/style當成屬性傳給子組件dom
VUE: 咱們給dom動態綁定class可能會這樣寫:工具
<p :class="setClass">我是文字</p> data() { return { setClass: { classOne:true, classTwo:false }}} //最終渲染: <p class="classOne">我是文字</p>
這樣的寫法在mpvue是不支持的,
mpVue里正確的寫法:
<p :class="{classOne:setClass.classOne}">我是文字</p> data() { return { setClass: { classOne:true, classTwo:false }}}
小程序的組件,當咱們滾動到必定範圍了,咱們想返回頂部,
按理說只要給屬性‘setScroll’設置爲''或者0便可,
但mpvue使用的時候只設置0不會有效果,必須設置兩遍,例如:
<scroll-view scroll-y class="sc_wapper" :scroll-top="setScroll"></scroll-view> //返回頂部 backTop() { this.setScroll = '2'//隨便設置一個不爲空、不爲0的值 this.setScroll = ''//回到頂部效果實現 },
vantUi官網:vant,我是這麼使用的,直接下載他的靜態資源放到本地mpVue項目裏的static目錄下,結構以下:
引入的時候這樣,在對應目錄下建立main.json文件,
main.json裏寫入:
{ "navigationBarTitleText": "首頁", "usingComponents": { "van-button": "/static/vant/button/index" } }
而後頁面上便可正常使用,
使用當中發現一個vant的坑,就是設置button的禁用效果失效,只是樣式樣改變了,實際上仍然還可點擊,例如:
<van-button disabled="disabled" type="primary" @click="changeSome">按鈕</van-button> changeSome: function() { //button設置了disabled,但方法仍能進來 console.log(123) }
想到的解決方案只能是在方法里加上判斷,決定到底要不要執行
網上搜索相關問題並無獲得答案,你們有遇到嗎
若有不足還請各位補充和指正😁