Vue カプセル化 TabBar コンポーネントの完全なステップ記録

Vue カプセル化 TabBar コンポーネントの完全なステップ記録

実装のアイデア:

ステップ 1: TabBar と TabBarItem のコンポーネント カプセル化

この時点で、ページの基本的なレイアウトは実装されていますが、アイテムのクリックのアクティブ状態は実装されていないことがわかります。

ステップ2: アクティブな画像をTabBarItemに渡す

置き換えられたコンテンツがスロット全体を直接置き換えて、スロットに定義されたスタイルも置き換えられるのを防ぐには、スロットの外側にdivラッパーを定義するのが最適です。

ステップ3: TabBarItemとルーティングの組み合わせ

ステップ4: TabBarItemのカラーコントロール

基本的には完了していますが、ルート内のクリックパスを繰り返し実行するとエラーが発生することがわかりました

エラーの原因:

これは、vue-router ≥ 3.0 のコールバック形式が promise に変更されたためです。エラーがキャッチされない場合は、このようなエラー警告がコンソールに表示されます。

解決策1: vue-routerをバージョン3.0にダウングレードする

[email protected] を npm で実行します -S 

解決策2:

メソッドを呼び出すたびに catch を追加する必要がないように、ルーター プロトタイプ チェーンの push メソッドと replace メソッドを書き直します。

main.js に次の内容を記述します。

'vue-router' から Router をインポートします。
 
const originalPush = Router.prototype.push
Router.prototype.push = 関数push(location, onResolve, onReject) {
  if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject)
  元のPush.call(this, location).catch(err => err) を返します
}

プッシュの変更がまだ有効にならない場合は、次の例のように、置換メソッドを試してください。

Router.prototype.replace をオーバーライドします。
Router.prototype.replace = 関数 replace(location) {
  originalReplace.call(this, location).catch(err => err) を返します。
};

フォントアイコンで実装

フォントアイコンの紹介

使用

要約する

これで、TabBar コンポーネントの vue カプセル化に関するこの記事は終了です。TabBar コンポーネントの vue カプセル化に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vueはタブルーティング切り替えコンポーネントのメソッド例を実装します
  • Vue.js モバイルタブコンポーネントのカプセル化実践例
  • Vueコンポーネントタブバーの使い方の詳細な説明
  • Vueはコンポーネントルーティングジャンプメソッドを使用してタブバーコンポーネントをカプセル化します

<<:  HTML テーブル境界制御実装コード

>>:  4つの柔軟なScssコンパイル出力スタイル

推薦する

CSS3 変換遷移ジッター問題の解決

transform: scale(); スケーリングするとIEブラウザでジッターが発生します変換スケ...

CentOS インストール mysql5.7 詳細チュートリアル

この記事では、参考までに、centOSにmysql5.7をインストールする詳細な手順を紹介します。具...

Angular の 12 の典型的な問題について簡単に説明します

目次1. Angular 2 アプリケーションのライフサイクル フックとは何ですか? 2. Angu...

MySQLデータベースの基礎知識

目次1. データベースを理解する1.1 データベースとデータ構造の関係1.2 なぜデータベースが必要...

VueはCanvasを使用してランダムなサイズで重なり合わない円を生成します

目次キャンバス関連文書エフェクト画像表示ケースの完全なコード親コンポーネントコードサブコンポーネント...

MySQL マルチインスタンス構成ソリューション

1.1 MySQL マルチインスタンスとは何ですか?簡単に言うと、MySQL マルチインスタンスとは...

CentOS 上の Docker に Jupyter をインストールしてポートを開く方法

目次jupyterをインストールするDocker ポートマッピングjupyterをインストールするp...

Linux で特定の時間にコマンドを実行する方法

先日、rsync を使用して LAN 上の別のシステムに大きなファイルを転送していました。非常に大き...

Docker /var/lib/docker/aufs/mnt ディレクトリのクリーニング方法

会社のサービスはdockerを使用しており、ディスクマンが見つかりました。その後、次のコマンドを実行...

Tencent Cloud Server Centosにデータディスクをマウントする方法

まず、ハードディスクデバイスにデータディスクがあるかどうかを確認します # まずfdisk -lを実...

HTML のテキストエリアの改行問題の概要

最近、Textrea に転送したときに、データが本当に行ごとに保存できるかどうかという問題に遭遇しま...

MySQL UPDATE ステートメントの「典型的な」落とし穴

目次1. 問題のあるSQL文たとえば、次の図のような質問をした人がいました。 問題は次のように要約で...

vue3ソースコード解析の簡単な実装方法

目次序文🍹準備🍲vue3 の使い方🍖 実装要約する序文最近、私の最初の公式 vue3 + ts プロ...

ウェブページ入力ボックスのスタイルトリガー効果

<br />この例では、主に onblur と onFocus という 2 つのパラメー...

Reactは一般的なスケルトン画面コンポーネントの例を実装します

目次スケルトンスクリーンとは何ですか?デモデザインのアイデア具体的な実装スケルトンスクリーンとは何で...