由于组件内引入了多个组件,想把单个文件引入改成同时引入多个组件。
// table/index.vue
import CustomDatePicker from '@/components/date-picker/index.vue'
import CustomSelect from '@/components/select/index.vue'
import CustomTable from './table/index.vue'
改为:
// table/index.vue
import { CustomDatePicker, CustomSelect, CustomTable } from '@/components/index'
但是改成以上引入方式后,控制台却报错 Cannot access 'CustomDatePicker' before initialization。
检查components/index 文件,感觉上也没错
// components/index.js
import CustomTable from './table/index.vue'
import CustomDatePicker from './date-picker/index.vue'
import CustomSelect from './select/index.vue'
export {
CustomTable,
CustomSelect,
CustomDatePicker
}
查资料,是因为CustomTable组件中,引入了CustomSelect和CustomDatePicker两个组件,而在导出的时候需要把这两个组件提升到CustomTable组件之前。
// components/index.js
import CustomDatePicker from './date-picker/index.vue'
import CustomSelect from './select/index.vue'
import CustomTable from './table/index.vue'
export {
CustomSelect,
CustomDatePicker,
CustomTable
}
这样就不报错了。
但是建议尽量不要把CustomTable和另外两个放在同一个文件里面导出,这样会在块之间产生循环依赖关系。