component :is 报错 Vue received a Component which was made a reactive object
时间: 2023-11-17 19:03:44 浏览: 81
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
5星 · 资源好评率100%
这个错误是因为在使用 `component :is` 时,你传递了一个响应式对象作为组件,这会导致不必要的性能开销。为了解决这个问题,你可以使用 `markRaw` 函数或者使用 `shallowRef` 替代 `ref`。
下面是两种解决方法的示例代码:
1. 使用 `markRaw` 函数
```javascript
import { markRaw } from 'vue'
const MyComponent = markRaw({
// 组件的选项
})
export default {
components: {
'my-component': MyComponent
}
}
```
2. 使用 `shallowRef`
```javascript
import { shallowRef } from 'vue'
import MyComponent from './MyComponent.vue'
export default {
setup() {
const componentRef = shallowRef(MyComponent)
return {
componentRef
}
}
}
```
阅读全文