vue.js - 在 Vue JS 中的组件内自动导入组件
问题描述
我想知道在 vue 3 的另一个组件中自动导入组件的最佳实践。
解决方案
自动导入src/components
以“Base”开头的目录中的所有组件,例如 BaseInput.vue、BaseSelect.vue 等(使用 Vue CLI 创建的项目)
src/views/EventCreate.vue
<template>
//template data here
</template>
<script>
import upperFirst from "lodash/upperFirst";
import camelCase from "lodash/camelCase";
//require.context function from webpack
const requireComponents = require.context(
"../components",
false,
/Base[A-Z]\w+\.(vue|js)$/
);
let comps = {};
requireComponents.keys().forEach((fileName) => {
//removing extension converting to valid component name e.g. "./base-input.vue" to "BaseInput"
const componentConfig = requireComponents(fileName);
const componentName = upperFirst(
camelCase(fileName.replace(/^\.\/(.*)\.\w+$/, "$1"))
);
//add it to comps object with dynamic name
comps[componentName] = componentConfig.default || componentConfig;
});
export default{
components:{ ...comps }
//remaining exports here
}
</script>
<style scoped>
//style here
</style>
推荐阅读
- ios - 为什么在 UIScrollView 中看不到 UIStackView?
- python-3.x - python: 在 python 文档中 / 和 * 是什么意思?
- c# - 如何在 C# 项目中收听设备的消息
- git - 如何让 git 添加我的代码而不将其识别为子模块?
- python - 如何在 python2 中执行显式相对导入?
- android - 导出视图时如何包含背景图像
- c# - 在 .NET Core 控制台应用程序中使用带有 NUnit3 的 app.config 文件
- excel - Powershell - 在 Excel 中创建数据透视表
- angular - 如何将复选框添加到 ionic 4 alercontroller
- visual-studio - 按任意键继续---控制台应用程序