Vue 不支持 IE8 及以下版本,因為 Vue 使用了 IE8 無法模擬的 ECMAScript 5 特性。但它支持所有兼容 ECMAScript 5 的瀏覽器。使用Vuex和axios時需要瀏覽器支持:Promise,而IE並不支持Promise。
Tip:如果項目需要支持IE用戶,不建議使用Vue構建。
如何使用Vue支持更多的瀏覽器版本?
方法一、babel-polyfill 模擬ES2015+
要用 babel-polyfill 來將 ES6 的語法轉成ES5,模擬整個 ES2015+ 環境。可以使用Promise 和WeakMap,方法Array.from,Object.assign ,Array.prototype.includes。
npm install --save babel-polyfill
require("babel-polyfill");
import "babel-polyfill";
方法二、es6-promise 支持 Promise
npm install es6-promise
require('es6-promise').polyfill();
Tip:雖然這些polyfill 滿足了一些需求,但無形中增加了項目的大小。
方法三、低版本瀏覽器提示
兼容低版本瀏覽器本身就是一件很痛苦的事情,同時IE瀏覽器已經基本成為過去時了,如果再為了兼容這些瀏覽器做過多的工作的話,實在是一種浪費。
提示用戶升級瀏覽器也是一個不錯方法。推薦網站:快樂瀏覽。
快樂瀏覽:提供常用的瀏覽器下載,包括谷歌、火狐、360瀏覽器等。在VUE項目中的public\index.html文件里添加如下Js代碼:
提示升級瀏覽器
(function(w){if(!("WebSocket"in w&&2===w.WebSocket.CLOSING)){var d=document.createElement("div");d.className="browsehappy";d.innerHTML='<div style="width:100%;height:100px;font-size:20px;line-height:100px;text-align:center;background-color:#E90D24;color:#fff;margin-bottom:40px;">\u4f60\u7684\u6d4f\u89c8\u5668\u5b9e\u5728<strong>\u592a\u592a\u65e7\u4e86</strong>\uff0c\u592a\u592a\u65e7\u4e86 <a target="_blank" href="http://browsehappy.osfipin.com/" style="background-color:#31b0d5;border-color: #269abc;text-decoration: none;padding: 6px 12px;background-image: none;border: 1px solid transparent;border-radius: 4px;color:#FFEB3B;">\u7acb\u5373\u5347\u7ea7</a></div>';var f=function(){var s=document.getElementsByTagName("body")[0];if("undefined"==typeof(s)){setTimeout(f,10)}else{s.insertBefore(d,s.firstChild)}};f()}}(window));
直接跳轉
(function(w){if(!("WebSocket"in w&&2===w.WebSocket.CLOSING)){w.location.replace("http://browsehappy.osfipin.com/");}}(window));
綜合來講,目前IE用戶已經基本很少了,沒有必要為了兼容IE用戶做出很多妥協。或許強制用戶升級瀏覽器是一個不錯的選擇。