vue在ie9中碰到的問題
最近我們的項目選擇用vue來做開發,在這個過程我們還要兼容ie9這個坑,在這里我寫一點我碰到的坑
- 開發選用:vue+vue-cli+axios+router+iview+mock
首先我們按照步驟來安裝vue-cli
創建項目運行
npm install npm run dev
- 1
- 2
然后我們在ie9下打開發現沒有用但是vue官網告訴我們他是兼容ie9的
官網地址:https://github.com/vuejs/vue
下圖是錯誤提示ie9:
然后就找資料查文檔,總算給我找到了。
要實現其實很簡單,只需要我們下載一個babel-polyfill,
npm install babel-polyfill --save-dev
- 1
下載完成后我們怎么用它
這時我們要找到build文件夾下webpack.base.conf.js在里面修改一下就行了
module.exports = { entry: { app: './src/main.js' },
- 1
- 2
- 3
- 4
改成
module.exports = { entry: { 'babel-polyfill': 'babel-polyfill', app: './src/main.js' },
- 1
- 2
- 3
- 4
- 5
就ok了 是不是很簡單
第二問題就是axios的請求在ie下沒有用
這個怎么解決?
也是就是下載一個js的問題
下面就直接貼代碼
npm install es6-promise --save-dev
- 1
/*main.js下*/ import promise from 'es6-promise' promise.polyfill()
- 1
- 2
- 3
辛辛苦苦把項目寫好了,然后再Chrome跑的天衣無縫。然后經理告訴我要兼容ie9及以上。信心滿滿的拿出來試了試。GG思密達!!!
一、Pormise的問題,原來是Axios不能直接兼容IE9
先去項目里下載es6-promise
npm install es6-promise
然后去頁面導入
import promise from 'es6-promise';
promise.polyfill();
二、URLSearchParams未定義的問題,原來是IE9不支持URLSearchParams。(千萬別用一些不被大眾瀏覽器兼容的東西,都是坑)
先去項目里下載qs
npm install qs
然后去Axios放參數的時候這樣放
import qsfrom 'qs';
var params = {
'param1':1,
'param2':2
}
qs.stringify(params)
三、GET方法在IE9會直接默認去拿緩存,返回的是304而不是正常拿到數據后的200.
這個就在GET方法的params中加個時間戳就行了。
time:new Date().getTime()