elementui升級遇到的問題

1. 引入的css文件路徑變了

原來是:

  import 'element-ui/lib/theme-default/index.css'

現(xiàn)在需要修改成:

  import 'element-ui/lib/theme-chalk/index.css'

2. 樣式引入的優(yōu)先級問題

之前遇到這樣一個(gè)問題,有的組件樣式需要進(jìn)行定制覆蓋,于是就在組件里面用css scoped進(jìn)行了同類名的樣式替換,這樣在開發(fā)環(huán)境下效果是符合預(yù)期的,但是打包編譯后,優(yōu)先級就變了。于是發(fā)現(xiàn)是在main.js引入文件路徑順序的問題,之前一度以為不需要順序,但其實(shí)還是有影響的。

原來的配置:

import Vue from 'vue'
import App from './App.vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI)

修改后的:

import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import App from './App.vue' //這里要把App的引用順序放到最后
Vue.use(ElementUI)

3. Icon的變化

原來在input組件中可以用icon這個(gè)屬性指定icon,例如

<el-input
  icon="search">
</el-input>

現(xiàn)在的話,這樣寫是不生效的:

可以通過prefix-icon 和 suffix-icon 屬性在 input 組件首部和尾部增加顯示圖標(biāo),也可以通過 slot 來放置圖標(biāo)。

所以如果你在項(xiàng)目中的input里用到了icon的屬性,需要改成prefix-icon 或 suffix-icon:

<el-input
    suffix-icon="el-icon-search">
</el-input>

但是button組件就還是可以使用icon屬性,但需要傳入完整的圖標(biāo)類名:

  <el-button type="primary" icon="el-icon-search">搜索</el-button>

原因是:
為了方便使用第三方圖標(biāo),Button 的 icon 屬性、Input 的 prefix-icon 和 suffix-icon 屬性、Steps 的 icon 屬性現(xiàn)在需要傳入完整的圖標(biāo)類名


4. modal的變化

之前給不需要寬度的modal設(shè)了width: auto;,這樣如果里面內(nèi)容為空的時(shí)候基本沒有寬度,更新后,如果沒有內(nèi)容,默認(rèn)會(huì)鋪滿整個(gè)屏幕。


5. NavMenu 導(dǎo)航菜單

原來的menu是有兩個(gè)樣式供選擇的,theme有兩個(gè)可選值light, dark,現(xiàn)在沒有這個(gè)屬性了,默認(rèn)就是chalk主題的白色,如果想要定制,需要另外設(shè)置。

參數(shù) 說明 類型 可選值 默認(rèn)值
background-color 菜單的背景色(僅支持 hex 格式) string #ffffff
text-color 菜單的文字顏色(僅支持 hex 格式) string #409EFF
active-text-color 當(dāng)前激活菜單的文字顏色(僅支持 hex 格式) string #409EFF

但是這樣設(shè)置會(huì)有弊端,如果項(xiàng)目經(jīng)過定制樣式改過主題顏色,那么這里就需要進(jìn)行單獨(dú)設(shè)置,而且還僅支持 hex 格式,這就需要計(jì)算出來顏色的具體值,而不能通過scss變量來控制。


6. slot-scope

這其實(shí)是vue在2.5.0里的變化
把scope換成了slop-scope
所以在element里面升級后,也把相應(yīng)的用到scope的地方做修改就行了


7. checkbox change事件的參數(shù)變化

版本 事件名稱 說明 回調(diào)參數(shù)
1.0 change 當(dāng)綁定值變化時(shí)觸發(fā)的事件 event事件對象
2.0 change 當(dāng)綁定值變化時(shí)觸發(fā)的事件 更新后的值

所以,原來1.0判斷change函數(shù)里面是這么寫的:

handleCheckAllChange(event) {
    this.checkedCities = event.target.checked ? cityOptions : [];
    this.isIndeterminate = false;
  },

2.0是這樣的:

 handleCheckAllChange(val) {
    this.checkedCities = val ? cityOptions : [];
    this.isIndeterminate = false;
  },

8、table的默認(rèn)樣式 及很多tabpane時(shí)隱藏-->顯示時(shí)的格局縮放的bug

可以封裝一個(gè)樣式文件

  export default {
      methods:{
        overrideHeaderStyle(){
            return {"background":'#eef1f6','color':'#1f2d3d'
         }
      }
    }

然后引用到table的文件里mixins這個(gè)樣式文件

  <el-table class="table" :data="pictureBookData" :header-cell-style="overrideHeaderStyle" >

隱藏-->顯示時(shí)的格局縮放的bug:
可以結(jié)合vuex技術(shù)解決 + table的doLayout方法

  • store/doLayout/index.js:

    const state = {
      doLayoutValue: false
    }
    const mutations = {
        changeDoLayoutValue(state,value){
          state.doLayoutValue = value
        }
    }
    const actions = {}
    export default {
      state,
      mutations,
      actions
    }
    
  • table頁面: table加上ref屬性

     import {mapState} from 'vuex'
     computed:{
        ...mapState({
             layoutValue :state => state.doLayout.doLayoutValue
       }),
     },
     watch:{
       layoutValue(){
            if( this.$refs.tableRefName) {
               this.$refs.tableRefName.doLayout()
           }
       }
     }
    
  • tabpane切換時(shí)或者其他觸發(fā)條件需要改變值

     this.$store.commit('changeDoLayoutValue', value)
    

ps:會(huì)存在值變化了 但doLayout()未起作用,可以通過延遲執(zhí)行解決


9、dialog 不存在size屬性了 改width="80%" ......


10、日期選擇器

  • 日期選擇器有了value-format屬性 value-format=“yyyy-MM-dd”

  • 去掉了placeholder屬性 增加start-placeholder="開始日期" end-placeholder="結(jié)束日期"

  • 初始化值只需 this.form.dataRange = [startTime,endTime] //yyyy-MM-dd形式

  • 值變化,@change事件

     if (dateRange){
           vm.startDate = dateRange[0];
           vm.endDate = dateRange[1];
       }else {
           vm.startDate = '';
           vm.endDate = '';
       }
    
  • :picker-options="pickerOptions"

    ## 上個(gè)月的快捷實(shí)現(xiàn)
    data(){
       retutn{
         pickerOptions:{
           shortcuts:[{
           text:'上個(gè)月',
           onClick(picker){
             //picker.value 當(dāng)前篩選框日期
             var nowdays = (picker.value && picker.value[0]) || new Date();
             var nowyear = nowdays.getFullYear();
             var nowmonth = nowdays.getMonth();
             if(nowmonth==0){
               nowmonth = 12;
               nowyear = nowyear -1;
             }
             if(nowmonth<10){
               nowmonth = "0"+nowmonth
             }
           let larststart = nowyear +'-'+nowmonth +'-'+'01';
           var myDate = new Date(nowyear,nowmonth,0);
           let larstend = nowyear + "-" + nowmonth + "-" + myDate.getDate();
           picker.$emit('pick', [larststart, larstend]);
           }
         }]
       },
      }
    }
    
贊贊哇.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

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

  • 1、通過CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地?cái)?shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,171評論 3 119
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程,因...
    小菜c閱讀 7,295評論 0 17
  • Page 72 of 365,chapter 2018。時(shí)間不會(huì)等你 1、混亂的一天 “跟著我左手右手一起慢動(dòng)作....
    迷死她張閱讀 555評論 0 1
  • 這是一個(gè)物欲橫流的社會(huì),這是一個(gè)信息大爆炸的時(shí)代,一切都要求著“快”,快節(jié)奏的生活已然成了時(shí)下主流,時(shí)間就是...
    墨羲臨閱讀 232評論 0 0

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