1234567891011121314151617181920212223242526272829303132 |
- export default function (Vue) {
- const version = Number(Vue.version.split('.')[0])
- if (version >= 2) {
- const usesInit = Vue.config._lifecycleHooks.indexOf('init') > -1
- Vue.mixin(usesInit ? { init: vuexInit } : { beforeCreate: 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 vuexInit () {
- const options = this.$options
- // store injection
- if (options.store) {
- this.$store = options.store
- } else if (options.parent && options.parent.$store) {
- this.$store = options.parent.$store
- }
- }
- }
|