vue項目中遇到的問題匯總

前:項目用到的技術(shù)棧為webpack+vue2.x+pug+stylus+elementUI

1、IE9中辖佣, 請求服務(wù)器數(shù)據(jù)并用v-for渲染option標(biāo)簽出現(xiàn)只顯示第一個字的問題

解決方法:

/**
 * 強制重繪頁面的select 輸入框缨恒,解決IE9只顯示單個字符串問題
 * @param useNextTick {Boolean} 使用在vm next tick 處理谴咸, 默認(rèn)true
 */
forceRedrawSelect: function (useNextTick) {
    useNextTick = useNextTick !== false;
    if (!browser.isIE)
        return;
    var _this = this;
    var redraw = function () {
        var $select = _this.$("select");
        $select.css('width', 0);
        $select.css('width', '');  // remove from style tag
    };
    if(useNextTick)
        this.$nextTick(redraw);
    else
        redraw()
},

2、IE9中骗露,elementUI的el-input刪除操作無法觸發(fā)數(shù)據(jù)變動監(jiān)聽

解決辦法:加入ie9input事件墊片
cnpm install --save ie9-oninput-polyfill

3岭佳、vue自定義指令判斷時機問題

// 錯誤寫法
'null' (el) {
    if (el.innerHTML === '' || el.innerHTML === '--') {
      addClass(el, 'null-handler')
    } else {
      removeClass(el, 'null-handler')
    }
  },

因為無法控制標(biāo)簽內(nèi)容的渲染時機導(dǎo)致判斷出錯,所以應(yīng)該去判斷value

// 正確寫法
'null' (el, { value, oldValue }) {
  if (oldValue === value) return
  if (value === '' || value === '--') {
    addClass(el, 'null-handler')
  } else {
    removeClass(el, 'null-handler')
  }
},

4萧锉、el-input手動獲取焦點問題

情景:輸入框一開始是隱藏的珊随,點擊按鈕顯示輸入框并獲取焦點
把手動獲取焦點那段代碼寫在$nextTick()就好了
手動獲取焦點這個操作我也記錄一下:
首先給標(biāo)簽加個屬性ref="searchBox"(名字隨便起),然后點擊按鈕把控制顯示的字段賦值true,接著寫下這幾行代碼就好了

this.$nextTick(() => {
  this.$refs.searchBox.focus()
 })
image.png

image.png

5、mounted鉤子函數(shù)中請求數(shù)據(jù)導(dǎo)致頁面閃屏問題

其實就是加載時機問題叶洞,放在created里會比mounted觸發(fā)早一點鲫凶,如果在頁面掛載完之前請求完成的話就不會看到閃屏了

6、IE9中template標(biāo)簽使用問題

之前在tr標(biāo)簽里面用template標(biāo)簽包裹td標(biāo)簽衩辟,出現(xiàn)了比較嚴(yán)重的UI錯亂螟炫,
所以。艺晴。IE9不能在tr標(biāo)簽中使用template標(biāo)簽

7昼钻、純色svg轉(zhuǎn)換成字體(用了panda這個軟件),跟預(yù)期不符

這個應(yīng)該是跟svg的描繪路徑什么的有關(guān)封寞,讓設(shè)計師同學(xué)重新出一個圖吧然评。。

8狈究、一個奇葩bug碗淌,開發(fā)環(huán)境elementUI的表格排序圖標(biāo)不顯示,但是在線上環(huán)境和其他同事的開發(fā)環(huán)境沒問題

// 是由于mac沒安裝xcode導(dǎo)致依賴包install出錯(出錯了居然還能啟動抖锥。贯莺。)
// 輸入以下命令,如果沒安裝xcode系統(tǒng)就會提示你安裝了
// npm rebuild node-sass --force
后來又出現(xiàn)了問題宁改, 然后我升級了npm版本解決

9缕探、el-table用v-if隱藏顯示列和預(yù)期不符問題

給el-table-column加一個key屬性,:key="Math.random()"或者其他的还蹲,確保每列的key值不同就可以了

10爹耗、在使用el-table的時候有的時候需要對表格中的數(shù)據(jù)做處理,需要用到filter潭兽,雖然官方也有提供過濾的方法(filter-method),但是還是用自定義列山卦,然后用filter復(fù)用性好一些

<el-table-column label="日期">
  <template slot-scope="scope">
    <span>{{scope.row.date | dateConvert}}</span>
  </template>
</el-table-column>

11诵次、在使用el-table的時候账蓉,有時候需要自定義表頭,比如在表頭中加個問號逾一,然后hover有個提示信息

這里就需要用到官方提供的render-header屬性了铸本,首先給需要自定義表頭的列加一個屬性遵堵,綁定一個方法
HTML中

<el-table-column label="日期",  :render-header="renderDate">
  <template slot-scope="scope">
    <span>{{scope.row.date | dateConvert}}</span>
  </template>
</el-table-column>

methods中

renderDate (createElement, { column }) {
  return createElement('div', {style: {'margin-top': '5px'}}, [
    column.label,
    createElement(
       'el-tooltip',
        {
          class: 'header-tip',
          props: {
            effect: 'light',
            placement: 'bottom-end',
            enterable: false,
            content: '日期'
          }
        }, [
          createElement('i', {
            class: 'el-icon-question'
          })
        ]
    )
  ])
}

12怨规、用forEach遍歷NodeList,ie報錯“nodelist為對象锡足,不支持forEach屬性”

因為ie認(rèn)為NodeList是一個對象波丰,不支持forEach方法遍歷,解決方法很簡單

// es6寫法
let nodeList = [...this.$el.querySelectorAll('[id^=productItem]')]
// es5寫法
let nodeList = Array.prototype.slice.call(this.$el.querySelectorAll('[id^=productItem]'))
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末呀舔,一起剝皮案震驚了整個濱河市扩灯,隨后出現(xiàn)的幾起案子霜瘪,更是在濱河造成了極大的恐慌,老刑警劉巖颖对,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異顾患,居然都是意外死亡个唧,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門徙歼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來犁河,“玉大人魄梯,你說我怎么就攤上這事∶鹣瑁” “怎么了辣苏?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長狭园。 經(jīng)常有香客問我,道長糊治,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任绎谦,我火速辦了婚禮,結(jié)果婚禮上包个,老公的妹妹穿的比我還像新娘冤留。我一直安慰自己,他們只是感情好纤怒,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著熄驼,像睡著了一般烘豹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上携悯,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天憔鬼,我揣著相機與錄音,去河邊找鬼逊彭。 笑死,一個胖子當(dāng)著我的面吹牛避矢,可吹牛的內(nèi)容都是我干的囊榜。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼砂沛,長吁一口氣:“原來是場噩夢啊……” “哼曙求!你這毒婦竟也來了映企?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤堰氓,失蹤者是張志新(化名)和其女友劉穎苹享,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體囤攀,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡宫纬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年哪怔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片认境。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡挟鸠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出硼身,到底是詐尸還是另有隱情覆享,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布丑罪,位于F島的核電站,受9級特大地震影響吩屹,放射性物質(zhì)發(fā)生泄漏拧抖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一擦盾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧厌衙,春花似錦、人聲如沸婶希。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽筒饰。三九已至,卻和暖如春瓷们,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背碘裕。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工攒钳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人文兢。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓焕檬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親实愚。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

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