Evan You 9 роки тому
батько
коміт
6c1e48a00a
1 змінених файлів з 18 додано та 2 видалено
  1. 18 2
      src/override.js

+ 18 - 2
src/override.js

@@ -1,13 +1,29 @@
 import { getWatcher, getDep } from './util'
 
 export default function (Vue) {
-  Vue.mixin({ init })
+  var version = Number(Vue.version.split('.')[0])
+
+  if (version >= 2) {
+    Vue.mixin({
+      init: vuexInit
+    })
+  } else {
+    // override init and inject vuex init procedure
+    // for 1.x backwards compatibility.
+    const _init = Vue.prototype._init
+    Vue.prototype._init = function (options = {}) {
+      options.init = options.init
+        ? [vuexInit].concat(options.init)
+        : vuexInit
+      _init.call(this, options)
+    }
+  }
 
   /**
    * Vuex init hook, injected into each instances init hooks list.
    */
 
-  function init () {
+  function vuexInit () {
     const options = this.$options
     const { store, vuex } = options
     // store injection