この記事の例では、Vueドロップダウンメニューのコンポーネント開発の具体的なコードを参考までに共有します。具体的な内容は次のとおりです。 カスタムコンポーネントを作成します。非常にシンプルなドロップダウンメニュー、つまりアイデア全体です。 ステップ 1:プロジェクト内にカスタム コンポーネントを保存するためのフォルダーを作成します (コンポーネントの直下の common 内) dropdown.vueは第一レベルのボックスです dropdownMenu.vueはセカンダリボックスです dropdownItem.vueはセカンダリボックスコンテンツです ステップ2: dropdown.vue の操作 <テンプレート> <div class="box"> <!-- ボタンにクリック イベントを追加します --> <div @click="表示M"> <!-- 第 1 レベルのボタン --> <スロット名="タイトル"></スロット> </div> <!-- セカンダリ ボックス --> <!-- 表示効果を非表示にするために v-if 操作を追加します --> <slot v-if="show" name="dropdown"></slot> </div> </テンプレート> <スクリプト> エクスポートデフォルト{ 名前:「ドロップダウン」、 データ() { 戻る { // デフォルトのセカンダリボックスは閉じられています show: false } }, メソッド: { 表示M() { this.show = !this.show }, commitClick(値) { // ドロップダウン イベントを親に公開し、値を this.$emit('change-item',value) に渡します。 } } } </スクリプト> <スタイルスコープ> 。箱 { display: inline-block; /* インラインブロック */ position: relative; /* 相対的な位置指定*/ 上:100ピクセル; 左余白:100px } </スタイル> ドロップダウンメニューの場合は、ボックスとして扱います。スロットを追加してボックスを構築するだけです。 <テンプレート> <div class="ドロップダウンメニュー"> <スロット></スロット> </div> </テンプレート> <スクリプト> エクスポートデフォルト{ 名前: "ドロップダウンメニュー" } </スクリプト> <スタイルスコープ> .ドロップダウンメニュー{ padding: 8px 0; /* ボックスの内側の余白は上が 8px、左右が 0px です */ border-radius: 4px; /* ボックスの角を丸くする*/ border: 1px solid #f2f6fc; /* 境界線は 1px のグレーです*/ position: absolute; /* 絶対位置指定*/ right: 0; /* 右側 */ top: 110%; /* ボックスはボタンの下にあります */ background-color: #fff; /* 背景色は白です*/ ボックスの影: 0 2px 4px rgba(0,0,0,0.12),0 0 6px rgba(0,0,0,.04); /* ボックスに影を追加します */ } </スタイル> ドロップダウンアイテムの操作 <テンプレート> <div class="dropdown-item" @click="itemClick(値)"> <スロット></スロット> </div> </テンプレート> <スクリプト> エクスポートデフォルト{ 名前: "ドロップダウンアイテム", プロパティ:['値'], データ() { 戻る {}; }, メソッド: { アイテムクリック(値) { // console.log(値) // 現在のコンポーネントの親の親、つまりドロップダウンの showM() メソッドを呼び出して、これを閉じます。this.$parent.$parent.showM(); // 親の親 (ドロップダウン) の commitClick メソッドを呼び出し、値を渡します this.$parent.$parent.commitClick(value); }, }, }; </スクリプト> <スタイルスコープ> .ドロップダウン項目{ line-height: 40px; /* 行の高さ 40px */ white-space: nowrap; /* 改行なし*/ padding: 0 20px; /* 内側の余白は上下が 0、左右が 20px です */ color: #606266; /* フォントの色はグレーです*/ カーソル: ポインター; /*マウスをクリックして移動します*/ } .ドロップダウンアイテム:ホバー{ color: #409eff; /* フォントの色は青です*/ background-color: #ecf5ff; /* 背景色は明るい青にしてください*/ } </スタイル> 次にApp.vueファイルを操作します <テンプレート> <div id="アプリ"> <ドロップダウン @change-item="変更項目"> <button slot="title">ボタン</button> <ドロップダウンメニュースロット="ドロップダウン"> <dropdown-item value="食べ物">食べ物</dropdown-item> <dropdown-item value="ドリンク">ドリンク</dropdown-item> <dropdown-item value="再生">再生</dropdown-item> </ドロップダウンメニュー> </ドロップダウン> </div> </テンプレート> <スクリプト> './components/common/dropdown' からドロップダウンをインポートします 「./components/common/dropdownMenu」からドロップダウンメニューをインポートします。 「./components/common/dropdownItem」からdropdownItemをインポートします。 エクスポートデフォルト{ 名前: 'アプリ'、 コンポーネント: ドロップダウン、ドロップダウンメニュー、ドロップダウンアイテム }, 方法:{ 変更項目(e){ コンソール.log(e) } } } </スクリプト> main.jsにコンポーネントをインポートする 「@/components/common/dropdown」からzgDropdownをインポートします。 「@/components/common/dropdownMenu」からzgDropdownMenuをインポートします。 「@/components/common/dropdownItem」からzgDropdownItemをインポートします。 Vue.component('zgDropdownItem',zgDropdownItem) Vue.component('zgDropdown',zgDropdown) Vue.component('zgDropdownMenu',zgDropdownMenu) app.vueもそれに応じて変更する必要があります <テンプレート> <div id="アプリ"> <zg-dropdown @change-item="変更項目"> <button slot="title">ボタン</button> <zg-dropdown-menu slot="ドロップダウン"> <zg-dropdown-item value="食べ物">食べ物</zg-dropdown-item> <zg-dropdown-item value="ドリンク">ドリンク</zg-dropdown-item> <zg-dropdown-item value="再生">再生</zg-dropdown-item> </zg-ドロップダウンメニュー> </zg-dropdown> </div> </テンプレート> <スクリプト> エクスポートデフォルト{ 名前: 'アプリ'、 方法:{ 変更項目(e){ コンソール.log(e) } } } </スクリプト> <スタイルスコープ> </スタイル> 大体こんな感じです。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
スタートアップ企業は、型破りな仕事のやり方、ユニークなビジネスモデル、特徴的な製品やサービス、パーソ...
で+ 時間 17:23に at> touch /mnt/file{1..9} ##アクションを...
1. 透明度を変更してテキストを徐々に点滅させると、次のような効果が得られます。 <!DOCT...
削除する方法はいくつかあります:リンクを直接追加するonfocus="this.blur(...
目次序文1. 共通オブジェクトを反復処理するには for...of を使用します2. 通常のオブジェ...
MySQL ストアド プロシージャ1. ストアドプロシージャ構文(フォーマット)を作成する 区切り文...
マイクロソフトIIS (Internet Information Server) は、Microso...
目次概要1. jsの位置づけを明確に理解する2. 明確な学習パス3. 自己規律と粘り強さ4. 練習し...
イベントでは、SQL コードを 1 回または一定の間隔で実行することを指定できます。通常、複雑な S...
Apache Superset は、データを表示および探索する方法を提供する強力な BI ツールで...
DockerでRedisをデプロイするまずLinuxにDockerをインストールし、次にDocker...
この記事では、参考までにmysql5.6.29のシェルスクリプトを共有します。具体的な内容は次のとお...
負荷リクエスト成功リクエストに失敗しました cmdをクリックし、ファイルパスでEnterキーを押しま...
序文馬を書いていたとき、水平方向と垂直方向の中央揃えの方法について、誰もあまり知らなかったと思います...
ページをデザインするときには、ログイン ウィンドウを中央に配置するなど、DIV を中央に配置し、ペー...