Element組件庫踩過的坑(持續(xù)更新...)

(ps:僅以此文記錄項(xiàng)目中使用過的element組件經(jīng)驗(yàn)及某些坑鼎姊。Let‘s beigin...)
<!-- 選項(xiàng)數(shù)據(jù)是固定寫死的  -->
<el-select v-model="position" placeholder="位置" @change="change">
        <el-option label="首頁" value='1'></el-option>
        <el-option label="發(fā)現(xiàn)" value='2'></el-option>
        <el-option label="我的" value='3' :disabled=true></el-option>
</el-select>

<!-- 選項(xiàng)數(shù)據(jù)由接口提供,循環(huán)創(chuàng)建  -->
<el-select v-model="position" placeholder="請(qǐng)選擇" 
           @change='change' 
           @visible-change="clickedSeletion">
    <el-option
      v-for="item in options"
      :key="item.id"
      :label="item.name"
      :value="item.id">
    </el-option>
 </el-select>

<script>
export default {
  data() {
    return {
        options: [
            {id: 1, name:'首頁'},
            {id: 2, name:'發(fā)現(xiàn)'},
            {id: 3, name:'我的'},
        ],
        position: 2, // 這個(gè)字段名跟v-model綁定的是同一個(gè)苗缩,會(huì)自動(dòng)選擇與:value中對(duì)應(yīng)相同的值
    }
  },
  methods: {
     change(value) {
         // 這里的值默認(rèn)是當(dāng)前選擇:value中的值,可在這個(gè)方法里處理相應(yīng)邏輯
         console.log(value)
     },
    clickedSeletion() {
        // 只要點(diǎn)擊了選擇框就會(huì)觸發(fā)
    }
  }
}
</script>
el-select@change方法堰氓,默認(rèn)只能傳:value的值挤渐,那如何傳自定義參數(shù)呢?
<div v-for="(item,index) in details">
   <el-select v-model="item.articleTitle" placeholder="" @change="(val)=>selected(val,item)">
      <el-option
          v-for="ele in articleList"
          :key="ele.id"
          :label="ele.articleTitle"
          :value="ele.id">
       </el-option>                                            
    </el-select>
</div>
屆時(shí)selected(val, item) {}方法中可直接打印出兩個(gè)參數(shù)双絮。
<el-upload
  class="upload-demo"
  action="后端上傳文件接口"
  :on-remove="handleRemove"
  :on-success="handleSuccess"
  :before-upload="beforeImgUpload"
  :file-list="fileList"
  name="upfile"  // 上傳的文件字段名 默認(rèn)是file 記得跟后端保持一致
  list-type="picture">
  <el-button size="small" type="primary">選擇上傳圖片</el-button>
  <div slot="tip" class="el-upload__tip">只能上傳jpg/png格式文件浴麻,文件不能超過2M</div>
</el-upload>

<script>
export default {
  data() {
    return {
        // 圖片列表,組件規(guī)定一定要按照 name囤攀、url的字段名來
        fileList: [
            {"name":"", "url":""},
            {"name":"", "url":""}
        ],
    }
  },
  methods: {
      // 上傳文件之前的函數(shù)
      beforeImgUpload() {
         // 限制文件格式和大小
         const isJPG_PNG = file.type == ('image/jpeg' || 'image/png');
         const isLt2M = file.size / 1024 / 1024 < 2;
         if (!isJPG_PNG) {
             this.$message.error('上傳圖片格式錯(cuò)誤');
         }
         if (!isLt2M) {
             this.$message.error('圖片大小不能超過2M');
         }
         return isJPG_PNG && isLt2M;
     }
  }
}
</script>
坑點(diǎn)來了......
Part 1


handleSucce這個(gè)鉤子函數(shù)里帶的fileList并不是我們?cè)?code>data中定義的fileList善镰。在視覺效果上上傳成功后組件會(huì)自動(dòng)更新UI知举,但最后提交數(shù)據(jù)時(shí),this.fileList并沒有更新數(shù)據(jù),需要我們手動(dòng)添加狰住。

另外递沪,添加文件數(shù)據(jù)時(shí)帘腹,文件的url值一定要取file.response.result嚎研。因?yàn)橹苯哟?code>file.url的時(shí)候,這個(gè)值時(shí)好時(shí)壞噩斟,有時(shí)是以http:開頭的(正確的地址)曹锨,也可能是以blob:開頭的地址。(如果有大神知道原因剃允,望告知沛简。)

同理,在handleRemove這個(gè)鉤子函數(shù)也會(huì)存在這個(gè)問題斥废。文件刪除之后一定要記得手動(dòng)更新this.fileList椒楣。另外,對(duì)于被刪除圖片的url牡肉,這里需要加一層判斷捧灰。

同樣打印的都是被刪除的那張圖片,返回的對(duì)象數(shù)據(jù)并不一樣统锤,一個(gè)含有response凤壁,一個(gè)不含吩屹。而含有response字段的跪另,url的值就是blob:開頭的拧抖,最后取值要以response.result為準(zhǔn)。不含有response字段的數(shù)據(jù)中免绿,url的值就可以直接拿來用唧席。(如果有大神知道原因,望告知嘲驾。)

Part 2

beforeImgUpload這個(gè)鉤子函數(shù)中淌哟,return false 后有時(shí)會(huì)自動(dòng)觸發(fā)handleRemove這個(gè)函數(shù),導(dǎo)致圖片被誤刪辽故。需要加以判斷徒仓,代碼如下。

handleRemove(file, fileList) {
   if (file && file.status==="success") {
        // 處理刪除操作
   }         
}
  • el-input 和 el-select 寬度不一致的問題

.el-form-item .el-select {
   width:100%;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末誊垢,一起剝皮案震驚了整個(gè)濱河市掉弛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌喂走,老刑警劉巖殃饿,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異芋肠,居然都是意外死亡乎芳,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門帖池,熙熙樓的掌柜王于貴愁眉苦臉地迎上來奈惑,“玉大人,你說我怎么就攤上這事睡汹‰鹊椋” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵帮孔,是天一觀的道長(zhǎng)雷滋。 經(jīng)常有香客問我,道長(zhǎng)文兢,這世上最難降的妖魔是什么晤斩? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮姆坚,結(jié)果婚禮上澳泵,老公的妹妹穿的比我還像新娘。我一直安慰自己兼呵,他們只是感情好兔辅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布腊敲。 她就那樣靜靜地躺著,像睡著了一般维苔。 火紅的嫁衣襯著肌膚如雪碰辅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天介时,我揣著相機(jī)與錄音没宾,去河邊找鬼。 笑死沸柔,一個(gè)胖子當(dāng)著我的面吹牛循衰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播褐澎,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼会钝,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了工三?” 一聲冷哼從身側(cè)響起迁酸,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎徒蟆,沒想到半個(gè)月后胁出,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡段审,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年全蝶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寺枉。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抑淫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出姥闪,到底是詐尸還是另有隱情始苇,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布筐喳,位于F島的核電站催式,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏避归。R本人自食惡果不足惜荣月,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望梳毙。 院中可真熱鬧哺窄,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至生年,卻和暖如春婴程,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背晶框。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國打工排抬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人授段。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像番甩,于是被迫代替她去往敵國和親侵贵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

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