序文コンポーネントは、非常に頻繁に使用されるものです。多くの人は、コンポーネントを 1 つのファイルごとに参照して登録することで使用します。この記事では、Vue でコンポーネントを一括導入、登録、使用する方法を紹介します。 1. 使用シナリオ日常の開発では、次のような状況がよく発生します。 'components/A' から A をインポートします 'components/B' から B をインポートします 'components/C' から C をインポートします 'components/D' から D をインポートします このような繰り返しコードに遭遇したとき、次のような最適化を行って、一度にすべてインポートできるのではないかと考えました。そこで、webpack API を見つけて、require.context を呼び出して処理しました。具体的なコードは次のとおりです。 2. 使用手順関連するもの:
詳細な説明はコード内にあります: 1. ファイルディレクトリ 2. HTMLコード <テンプレート> <div class="水分析"> <div class="content-box" ref="contentbox"> <a-tabs:default-active-key="activeComponent" @change="tabChangeHandle"> <タブペイン v-for="tabList 内の項目" :key="アイテムキー" :tab="アイテム.タブ" </タブペイン> </a-タブ> <div class="タブペインボックス"> <!-- is 属性を通じて、対応するコンポーネント名をバインドし、対応するコンポーネントを表示します--> <コンポーネント:is="アクティブコンポーネント"></コンポーネント> </div> </div> </div> </テンプレート> 3.jsコード 構文:
戻り値: 2 つのメソッドと 1 つのプロパティ
<スクリプト> // 中央の水平線をキャメルケースに変換します var camelCase = function (s) { s.replace(/-\w/g, 関数(x) {を返す x.slice(1).toUpperCase() を返します。 }); }; // サブコンポーネントをバッチでインポートします。上記の構文を参照してください。const allComponents = require.context("./comp", false, /\.vue$/); コンソールログ(allComponents.keys()) // ["./tem-a.vue", "./tem-b.vue", "./tem-c.vue", "./tem-d.vue"] コンソールログ(allComponents.id) //./src/views/tempManage/comp 同期 \.vue$ // コンポーネント配列を作成し、以下のコンポーネントに登録します。let resComponents = {}; allComponents.keys().forEach(comName => { name = camelCase(comName); とします。 const comp = allComponents(comName); resComponents[name.replace(/^\.\/(.*)\.\w+$/, "$1")] = comp.default; }); エクスポートデフォルト{ 名前: "WaterQuery", コンポーネント: resComponents、 データ() { 戻る { アクティブコンポーネント: "temA", タブリスト: [ { キー: "temA", タブ:「コンポーネントA」、 }, { キー: "temB"、 タブ:「Bコンポーネント」、 }, { キー: "temC", タブ: 「C コンポーネント」、 }, { キー: "temD", タブ:「Dコンポーネント」、 }, ]、 }; }, 作成された() { if (this.$route.query["val"]) { this.activeComponent = this.$route.query["val"]; } }, メソッド: { // タブバーを切り替える tabChangeHandle(val) { const {path} = this.$router; this.$router.push({ パス、 クエリ: {val}, }); this.activeComponent = val; }, }, }; </スクリプト> 4. CSS コード (読む必要はありません。コードの完全性のためだけに書かれており、直接実行して表示できます) <スタイルスコープ> .水分析{ 高さ: 100%; オーバーフロー:自動; } .コンテンツボックス{ 高さ: 100%; } .タブペインボックス{ 高さ: calc(100% - 62px); } </スタイル> 結論Vue コンポーネントのバッチインポート、登録、使用方法についてはこれで終わりです。Vue コンポーネントのバッチインポートに関する関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
デフォルトでは、 /etc/default/docker 設定は有効になりません。docker 環境...
スタートアップ企業は、型破りな仕事のやり方、ユニークなビジネスモデル、特徴的な製品やサービス、パーソ...
目次導入:感情のインストール:一般的な CSS コンポーネントを追加します。既存のコンポーネントにス...
デザイナーは世界で最も繊細で感情的な人々だと私はいつも感じています。私がこう言うときに優越感を感じる...
目次1. ピニアとは何ですか? 2. Piniaは使いやすい3. ユーザーエクスペリエンス1. ピニ...
目次【コード背景】 【コード実装】 #1# -> コード再利用の基本は、再利用可能なコンポーネ...
目次MVCCとはMVCC 実装MVCC はファントム リードを解決しますか? MVCCとはMVCC ...
背景色と透明度の設定上記のように、最初の画像の場合は、灰色の背景と左上隅に白い「カバー」という文字を...
序文MySQL は、myisam、innodb、memory、archive、example など、...
表示するデータが多い場合、1 つのチャートに表示しても効果はよくありません。このとき、2 つのチャー...
こんなことがありました。今日はGitHubで遊んでいました。最初はログインせずにいくつかのページを閲...
問題の説明:コードをコピーコードは次のとおりです。 <meta http-equiv=&quo...
<br />ウェブサイトを科学的にデザインする: アイトラッキング研究から学ぶ 23 の...
簡単に言えば、遅延レプリケーションとは、スレーブ データベースがマスター データベースより 1 時間...
ソフトウェア開発者であれば、Subversion に精通している必要があります。 Subversio...