将Vue组件扩展到模态时,将生成一个新的Vue实例。这会导致丢失所有预先导入的助手/ Vuex商店等。
有没有办法将所有数据复制到新的扩展Vue组件?
为清楚起见,请看一下jsfiddle。
它以警告的形式面对您。当您单击按钮时,将打开模态。但是,如果您查看我的代码,则应该触发另一个警报。但是$ hi()在其他Vue实例中不可用。
我创建了这样的组件:
const createComponent = (props) => {
const wrapper = document.createElement('div');
const Component = Vue.extend(MyComponent);
return new Component({
propsData: {
props,
},
}).$mount(wrapper);
};
我正在使用SweetAlert作为模式。
所以我这样添加:
swal({
content: createComponent(props).$el,
})
答案 0 :(得分:0)
如果您移动直线
Vue.prototype.$hi = () => alert('hi');
上方
let component = new TestComponent().$mount(wrapper)
它将起作用。在定义之前,第一个组件引用了$hi()
。