2

vuejs/vue-hot-reload-api对于 Vue2 接受带有组件选项的简单对象。

Vue3 有内置的 HMR 支持,它需要一种不同的方法。我无法弄清楚如何正确更新组件。

需要什么样的数据__VUE_HMR_RUNTIME__.createRecord()

以及如何再次编译更新的组件__VUE_HMR_RUNTIME__.reload()

我认为这两个功能都需要render功能。但是它是在组件加载到dom或其他东西时创建的。当我使用类似下面的东西时,render()函数不存在于cmp.

let cmp = defineComponent({template: '<div>test</div>})
let inst = Vue.component('test', cmp)

当我在父组件中使用组件时,render() 被编译并包含在cmp.

但是我不能以同样的方式注册更改的组件,因为 Vue3 显示警告该组件已经注册。

如何在下面编译更新的组件并在其中使用它__VUE_HMR_RUNTIME__.reload()

let updatedCmp = defineComponent({template: '<div>test Me!</div>'})

我尝试了vue的compile()功能,但它对我不起作用......

我认为这是在运行时用修改版本替换组件的唯一方法?:)

4

0 回答 0