Skip to content
/ vm Public

从零实现mvvm框架,重写一个轻量的vue兼容ie所有版本

Notifications You must be signed in to change notification settings

wushufen/vm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vm.js

这是一个独立自研的 mvvm 框架,只是语法跟 vue 一致,底层原理跟 vue 是完全不一样的, vue 无法兼容 ie8 及以下。 本框架没有用到 Object.defineProperty()es5, es6 特性,基于 es3,兼容性强,可用于需要兼容 ie 的项目。 超轻量,可考虑用于 活动页、广告投放页 等轻量的项目。

实现原理如下:
从零实现mvvm框架,重写一个轻量的vue并兼容ie

特性

  • 兼容 ie 所有版本
  • 超轻量压缩gzip才 3k
  • vue 语法完全一致,实现了常用的功能

示例

<!DOCTYPE html>
<html>
<head>
  <title>hello world</title>
  <script src="../vm.js"></script>
</head>
<body>
  <div id="app">
    <input v-model="model"> {{model}}
  </div>
  <script>
    var vm = new Vue({
      el: '#app',
      data: {
        model: 'hello vm.js'
      }
    })
  </script>
</body>
</html>

演示

可在ie6下测试

已实现的功能列表

  • {{插值表达式}}
  • v-model
  • v-if
  • v-for
  • v-bind:prop :prop
  • v-on:event @event
    • .prevent.stop.self.ctrl.alt.shift.meta.enter.(keycode)
  • :class
  • :style
  • options
    • el
    • template
    • render
    • data
    • methods
    • created
    • mounted
  • VM.prototype.$mount
  • VM.directive

About

从零实现mvvm框架,重写一个轻量的vue兼容ie所有版本

Resources

Stars

Watchers

Forks

Packages

No packages published