为什么 vue.js 和 IE8 不兼容? 下面本篇文章就来给大家介绍一下. 有一定的参考价值, 有需要的朋友可以参考一下, 希望对大家有所帮助.
vue.JS 是一款流行的 JavaScript 前端框架, 一个用于创建用户界面的开源 JavaScript 框架, 旨在更好地组织与简化 web 开发. Vue 所关注的核心是 MVC 模式中的视图层, 同时, 它也能方便地获取数据更新, 并通过组件内部特定的方法实现视图与模型的交互.
为什么 vue.JS 不兼容 IE8 及其以下版本?
* 官方给出的解释是:
因为 Vue.JS 使用了 IE8 不能模拟的 ECMAScript 5 特性.
Vue 的数据代理实现使用了 ECMASCript 5 的 Object.defineProperties(obj, props) 方法, 由于 IE8 不支持此方法, 所以 Vue 自然也不支持 IE8.
Object.defineProperty()
该方法允许精确添加或修改对象的属性. 一般情况下, 我们为对象添加属性是通过赋值来创建并显示在属性枚举中 (for...in 或 Object.keys 方法), 但这种方式添加的属性值可以被改变, 也可以被删除. 而使用 Object.defineProperty() 则允许改变这些额外细节的默认设置. 例如, 默认情况下, 使用 Object.defineProperty() 增加的属性值是不可改变的.
在 vue 源码中搜索 "Object.defineProperty" :
可以看到有 5 个匹配的地方, 也就是说 vue 中有 5 处使用了 "Object.defineProperty()".
搜索的版本是: Vue.JS v1.0.26
Object.defineProperty() 的浏览器支持情况:
可以看出支持情况是 IE9 及以上. 所以...
vue 官方有对这个的说明:
vue 文档 - 深入响应式原理 https://cn.vuejs.org/v2/guide/reactivity.html
更多 Web 前端开发 https://www.html.cn/ 知识, 请查阅 HTML 中文网 !!
来源: http://www.css88.com/qa/vue-js/16329.html