序文コンポーネント ライブラリは基本的にプロジェクト開発で使用されますが、特にメッセージ プロンプト ポップアップや確認ポップアップの場合、設計案のスタイルや機能はコンポーネント ライブラリのものと同じではない場合があります。プロジェクトやデザイナーごとに独自のスタイルがあります。ただし、コンポーネント ライブラリ内のコンポーネントを使用してスタイルをオーバーライドすることは可能です。ただし、一部のカスタマイズされた機能は、変更が簡単ではありません。この場合、カスタム コンポーネントを選択し、コンポーネント属性を通じてページに導入し、タグ呼び出しを明示的に記述します。ユーザーに簡単なプロンプトや操作を提供するメッセージ プロンプトの場合、最も一般的に使用される UI ライブラリは、js 呼び出しを通じて同様の機能をサポートしています。 UI ライブラリの呼び出しメソッドを参照して、js 関数によって呼び出されるカスタム コンポーネントを実装することもできます。 1. 従来のVueコンポーネント確認ボックスを実装し、ボタンをクリックして確認ボックスを開き、確認ボックスの [OK] ボタンと [キャンセル] ボタンをクリックして確認ボックスを閉じ、対応するメソッドを呼び出す必要があるとします。 1. メインコンポーネントコード:src/components/Confirm/Confirm.vue 2. 使用方法3. 成果を達成する 2. js呼び出しコンポーネントへの変更上記のコンポーネント呼び出し方法は非常に面倒です。さまざまな操作のコールバックの導入と処理の両方が必要です。また、コンポーネントの DOM ノードが現在のページの下に挿入され、スタイルがコンポーネントの内容によって上書きされたり、他の要因の影響を受けたりする可能性があります。 達成したい結果は、js 関数を介してコンポーネントを呼び出し、関数が promise を返し、then を確認して、catch をキャンセルすることです。次に例を示します。 確認する({ タイトル: ''、 メッセージ: '' }).then(() => { // クリックして確認}).catch(() => { // クリックしてキャンセル }) 1. 実装手順:
2. 具体的な実装コード:Confirm コンポーネントの js 部分を変更し、props から onConfirm と onCancel を渡して、コンポーネント インスタンスの使用を容易にします。 // src/components/Confirm/Confirm.vue <スクリプト> エクスポートデフォルト{ 名前: '確認'、 小道具: { タイトル: タイプ: 文字列、 デフォルト: 'prompt' }, メッセージ: { タイプ: 文字列、 デフォルト: 'デフォルトのプロンプトメッセージ' }, 確認ボタンテキスト: { タイプ: 文字列、 デフォルト: 「確認」 }, キャンセルボタンテキスト: { タイプ: 文字列、 デフォルト: 'キャンセル' }, 確認時: { タイプ: 関数、 デフォルト: () => {} }, キャンセル時: { タイプ: 関数、 デフォルト: () => {} } } } </スクリプト> 同じディレクトリに新しい index.js ファイルを作成し、props を通じて onConfirm や onCancel などのパラメータをコンポーネントに渡すと、インスタンス内でイベント コールバックを受け取ることができます。 // src/components/Confirm/index.js 'vue' から {createApp} をインポートします。 './Confirm' から Confirm をインポートします 関数 confirm ({ タイトル、メッセージ、confirmBtnText、cancelBtnText }) { 新しい Promise を返します ((resolve, reject) => { // コンポーネントをインスタンス化します。createApp の 2 番目のパラメータは props です。 const confirmInstance = createApp(確認、{ タイトル: タイトル || 'ヒント', メッセージ: メッセージ || 'メッセージを確認', confirmBtnText: confirmBtnText || '確認', cancelBtnText: cancelBtnText || 'キャンセル', 確認時: () => { アンマウント() 解決する() }, キャンセル時: () => { アンマウント() 拒否(新しいエラー()) } }) // コンポーネントをアンマウントする const unmount = () => { インスタンスのアンマウントを確認します。 document.body.removeChild(親ノード) } // マウントコンテナを作成する const parentNode = document.createElement('div') document.body.appendChild(親ノード) //コンポーネントをマウントする confirmInstance.mount(parentNode) }) } エクスポートデフォルト確認 コンポーネントの使用 設定 () { const showConfirm = () => { 確認する({ タイトル: 'タイトル', メッセージ: 'コンテンツ' }).then(() => { console.log('クリックして確認') }).catch(() => { console.log('キャンセルするにはクリックしてください') }) } 戻る { 表示確認 } } 3. エフェクト表示を実現する要約するこれで、Vue3 を使用して js から呼び出せるコンポーネントを実装する方法についての記事は終了です。Vue3 を使用して js から呼び出せるコンポーネントを実装する方法についてさらに詳しく知りたい場合は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Linux ユーザーとグループのコマンド例分析 [切り替え、ユーザーの追加、権限制御など]
>>: MySQL 文字列インデックスのより合理的な作成ルールに関する議論
その理由はモッカー プラットフォームを導入したかったので、友人の勧めで既成のプロジェクト api-m...
序文JavaScript では、これは関数呼び出しコンテキストです。この動作が非常に複雑であるからこ...
CSS を使ってさまざまなグラフィックを実現できるのは素晴らしいことです。画像を切り取る必要はなく、...
フレーム ウィンドウの関連付けを実現するには、次に示すように、ハイパーリンクの「ターゲット」ウィンド...
目次1. Bootstrap5 ブレークポイント1.1 モバイルファースト1.2 ブートストラップブ...
今日、jsp ページを書きました。<div style="margin:0 auto...
文字列を配列に分割するには、次の 3 つの MySQL 関数を使用する必要があります。 REVERS...
この記事の例では、計算機機能を実装するためのjsの具体的なコードを参考までに共有しています。具体的な...
順序なしリストでは、順序なしリストのシンボルは各リストの前に表示されるドットです。順序付きリスト o...
これ以上無駄話をして時間を無駄にしないので、今日の話題を始めましょう。 HTML のメタタグ1. メ...
XiaobaiはVueについて学び、次にwebpackについて学び、そしてさまざまなものをインストー...
CSS 属性セレクターは素晴らしいです。大量のクラス名を追加することを回避し、コード内の問題を指摘す...
Web ページを作成するときに、クールでスムーズなドロップダウン メニューが必要になることがあります...
では、GIF、PNG、JPG のどの形式を候補形式として選択すればよいのでしょうか。また、どの画像形...
RDF と OWL は、2 つの重要なセマンティック ウェブ テクノロジーです。 RDF と OWL...