Vue中的shim是什么?
Vue响应式原理中:Object.defineProperty是Es5中无法shim的特性,那么这里的shim是什么呢?
定义:shim可以将新的API引入到旧的环境中,而且仅靠就环境中已有的手段实现。
文章中说的意思就是,Object.defineProperty这个特性是无法使用低级浏览器中的方法来实现的,所以Vue不支持IE8以及更低版本的浏览器。
整理后理解:当你把一个 JS 对象传给 Vue 实例的 data 属性时,Vue 将遍历此对象的所有属性,并使用 Object.defineProperty 把这些属性全部转为 getter/setter。Object.defineProperty 是 ES5 中一个无法 shim 的特性,这也就是为什么 Vue 不支持 IE8 以及更低版本的浏览器。
es5-shim可以让一些低级的浏览器支持最新的ecmascript5的一些特性。支持浏览器或node.js,已经测试的功能见https://github.com/es-shims/es5-shim