javascript - 如何在 vue-class-component 中使用动态组件
问题描述
我使用 vue vue-class-component 并且它工作正常:
import vuetify from '@/plugins/vuetify'
@Component({
components: {
vue2Dropzone
},
vuetify
})
但是当我尝试为生产添加新组件时:
import store from '../store/Index'
let storeTmp = process.env.NODE_ENV === 'production' ? store : null
@Component({
components: {
vue2Dropzone
},
vuetify,
storeTmp
})
我有错误:
'{ components: { vue2Dropzone: any }; 类型的参数 Vuetify:Vuetify;storeTmp: 存储<...> | 无效的; }' 不可分配给“VueClass”类型的参数。对象字面量只能指定已知属性,但“VueClass”类型中不存在“组件”。您的意思是写“组件”吗?
我该如何解决?
解决方案
您可以在此使用计算。当您想根据某些条件加载组件时
在模板中
<component v-bind:is="importComponent" :anyPropsYouWantToPas="props" />
在计算中
importComponent() {
if (process.env.NODE_ENV === 'production) {
return () => import(`@/components/app/componentpath`)
}
},
推荐阅读
- linker-errors - C 中未定义的引用和链接器错误
- angular - $any() 类型转换成角度的用途和目的是什么
- javascript - 如何以角度显示每小时前的数据
- python - 从数据框的单元格中删除特定值并将值向左移动
- java - 使用 ActiveDirectoryLdapAuthenticationProvider 和嵌入式 ldif 的 Spring 身份验证
- javascript - node.js 13 - 导入无法正常工作
- java - Sping Webflux 使所有连接保持活动状态
- python - 使用 Pandas query() 过滤时间戳列上的数据帧
- java - 找到两个列表的交集并根据频率创建包含元素的新列表
- laravel - Laravel 从具有一对一关系的 2 列中获取值