vue.extend创建的组件 在实例化后调用$mount()挂载 组件内不能共享原项目vue根实例挂载时注入的store、router等实例。
问题描述:
var MyComponent = Vue.extend({
template: '<div>Hello!</div>'
})
// 创建并挂载到 #app (会替换 #app)
new MyComponent().$mount()
此时MyComponent组件内部是无法使用以下根实例化时挂载注入的
new Vue({ router, store }).$mount('#app')
store、router等实例的。 并且最外层dom使用的a-locale-provider 之类的国际化功能 MyComponent组件内也不生效。
最终方案:
new MyComponent({parent: this}).$mount()
指定已创建的实例之父实例,在两者之间建立父子关系。