vueにおける一括コンポーネントのグローバルおよびローカル導入方法
2086 ワード
前言:Dalinは開発時にダイナミックコンポーネントを使用していますが、切り替えが必要なコンポーネントが多すぎて、どのような切り替えが必要なコンポーネントがあるのか分からないため、importを使って一つ一つ導入するのは望ましくありません.公式サイトでコンポーネントを大量に導入する方法を提供していると思うと、やはり便利で効率的です.
一、グローバル一括導入
作成します.jsファイル、main.jsに導入すればよい.
(このように導入されたコンポーネントはグローバルコンポーネントとなり、直接使用できます.不要なコンポーネントの導入を避けるために、自分のニーズに応じてフィルタリングを行うことができます.)
(この.vueファイルにこれらのコンポーネントが導入されていることに相当し、他のページを使用するには再導入する必要があります.)
イベントによってisバインドのisWhich値を変更すると、異なるコンポーネントに切り替えることができます.isWhichの値はコンポーネント名です.
一、グローバル一括導入
作成します.jsファイル、main.jsに導入すればよい.
(このように導入されたコンポーネントはグローバルコンポーネントとなり、直接使用できます.不要なコンポーネントの導入を避けるために、自分のニーズに応じてフィルタリングを行うことができます.)
import Vue from "vue"
import upperFirst from "lodash/upperFirst"
import camelCase from "lodash/camelCase"
const requireComponent = require.context(
'./', //
false, //
/Base[A-Z]\w+\.(vue|js)$/ //
)
requireComponent.keys().forEach(fileName=>{
//
var names = fileName.split("/").pop().replace(/\.\w+$/,"");//BaseBtn
//
const componentConfig = requireComponent(fileName);
// "export default" , ".default",
//
Vue.component(names,componentConfig.default || componentConfig);
})
二、局部ロット導入(この.vueファイルにこれらのコンポーネントが導入されていることに相当し、他のページを使用するには再導入する必要があります.)
//
const requireComponent = require.context(
"./", //
true, //
/\w+\.vue$/ //
);
var comObj = {};
requireComponent.keys().forEach(fileName => {
//
var names = fileName
.split("/")
.pop()
.replace(/\.\w+$/, "");
//
const componentConfig = requireComponent(fileName);
// "export default" , ".default",
comObj[names] = componentConfig.default || componentConfig;
});
export default {
data() {
return {
isWhich: ""
}
},
mounted() {},
components: comObj
};
三、ダイナミックコンポーネントの使用方法
ラベルを使用してステータスを保存します.つまり、切り替えコンポーネントが再び戻ってきても元のままで、ページはリフレッシュされません.必要でなければ削除できます.イベントによってisバインドのisWhich値を変更すると、異なるコンポーネントに切り替えることができます.isWhichの値はコンポーネント名です.