el-dialogをコンポーネントとしてカプセル化するelement-ui を使用する場合、ポップアップ ウィンドウに多くのコンテンツが含まれている場合は、次のようにポップアップ ウィンドウをコンポーネントにカプセル化することがよくあります。 <!-- 詳細ダイアログ.vue html --> <テンプレート> <el-dialog title="タイトル" :visible.sync="表示" width="720px" > <p>ポップアップコンテンツ</p> </el-ダイアログ> </テンプレート> // 詳細ダイアログ.vue.js <スクリプト> 小道具: { 見える: タイプ: ブール値、 デフォルト: false } } </スクリプト> el-dialogはプロパティを変更し、エラーを報告しますしかし、問題があります。ポップアップシャドウをクリックするなど、el-dialog 内の終了イベントがトリガーされると、現在のコンポーネントの props [visible] を変更するイベントが発行されます。コンポーネントは prop 属性を直接変更できないため、エラーが報告されます。 props [visible]の変更と取得をインターセプトするための中間変数innerVisibleを追加しました。 <!-- 詳細ダイアログ.vue html --> <テンプレート> <el-dialog title="タイトル" :visible.sync="innerVisible" width="720px" > <p>ポップアップコンテンツ</p> </el-ダイアログ> </テンプレート> // 詳細ダイアログ.vue.js <スクリプト> エクスポートデフォルト{ 小道具: { 見える: タイプ: ブール値、 デフォルト: false } }, 計算: { 内部表示: { 取得: 関数() { this.visible を返す }, 設定: 関数(val) { this.$emit('update:visible', val) } } } } </スクリプト> このように、el-dialog内でprop[visible]を変更する場合、propsを直接変更しないように、emit('update:')を介して親コンポーネントに通知します。もちろん、親コンポーネントは変更を受け入れるために sync 修飾子を追加する必要があります。 <!-- father.vue html --> <詳細ダイアログ:visible.sync="詳細表示" /> これまでのところ、カプセル化されたポップアップ コンポーネントに問題はありません。 引き続き最適化し、v-modelを使用して表示と非表示を制御します。// 詳細ダイアログ.vue.js <スクリプト> エクスポートデフォルト{ モデル: { prop: 'visible', // v-model にバインドされた props 名を変更します event: 'toggle' // v-model にバインドされたカスタム イベント名を変更します }, 小道具: { 見える: タイプ: ブール値、 デフォルト: false } }, 計算: { 内部表示: { 取得: 関数() { this.visible を返す }, 設定: 関数(val) { this.$emit('update:toggle', val) } } } } </スクリプト> v-model に接続すると、よりエレガントですっきりとした使用感になります。 <!-- father.vue html --> <詳細ダイアログ v-model="詳細表示可能" /> 最適化とミックスインへのカプセル化を継続ポップアップコンポーネントが頻繁にカプセル化される場合、上記のロジックも常にコピーされる必要があるため、上記のコントロールの表示と非表示のロジックをmxinに最適化してカプセル化し、直接再利用できるようにします。 // vModelDialog.js エクスポートデフォルト{ モデル: { プロパティ: '表示'、 イベント: 'トグル' }, 小道具: { 見える: タイプ: ブール値、 デフォルト: () => { 偽を返す } } }, 計算: { 内部表示: { 取得: 関数() { this.visible を返す }, 設定: 関数(val) { this.$emit('toggle', val) } } } } 次に、ポップアップ プラグインをカプセル化するときに、表示と非表示のロジックを完了するためにミックスインを導入するだけで済みます。 // 詳細ダイアログ.vue js <スクリプト> './vModelDialog.js' から vModelDialog をインポートします。 エクスポートデフォルト{ ミックスイン: [vModelDialog], } </スクリプト> 上記は、element-ui ポップアップ コンポーネントのパッケージ化手順の詳細な内容です。element-ui ポップアップ コンポーネントのパッケージ化の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Mysql5.7.14 インストールと設定方法操作グラフィックチュートリアル(パスワード問題解決)
>>: Linux コマンドラインターミナルで画面を分割するための 2 つのツール
いわゆるスライディングドアテクノロジーとは、さまざまな長さのテキストに合わせてボックスの背景を自動的...
この記事では、主にnginxのフロントエンドとバックエンドに同じドメイン名を設定する方法を紹介し、皆...
LAN 内のマシンは外部ネットワークにアクセスできますが、外部ネットワークは内部ネットワークにアクセ...
この記事では、Jiugonggeモバイルパズルゲームを実装するためのJavaScriptの具体的なコ...
SASS を使用する開発者が増えるにつれて、SASS コードの数に注意する必要があります。 SASS...
この記事では、例を使用して、MySQL で複数のトリガー操作を作成する方法について説明します。ご参考...
コードをコピーコードは次のとおりです。 <!DOCTYPE html> <html...
目次バックグラウンドで10,000個のデータが失われた再帰法非再帰的方法要約するバックグラウンドで1...
まず効果図を見てみましょう: 完全なコードは添付されています <テンプレート> <...
1. nginx仮想ホストの設定仮想ホストを使用すると、実行する Web サイトごとに個別の Ngi...
素敵なフリップログインと登録インターフェースを作成する序文最近、ネットワーク ディスクを構築しようと...
UI デザインにおける多くの概念は言葉で言えば似ているように見えるかもしれませんが、実際には大きく異...
UPDATE はロックしますか?以下のような場合、SQL文はロックされますか? テーブル1を更新しま...
スタートアップ企業は、型破りな仕事のやり方、ユニークなビジネスモデル、特徴的な製品やサービス、パーソ...
HTML と CSS は誰もが知っていると思います。HTML の構造と CSS の表現の分離も知って...