Vueパンくずコンポーネントのカプセル化方法

Vueパンくずコンポーネントのカプセル化方法

Vueはパンくずコンポーネントをカプセル化して参照します。具体的な内容は次のとおりです。

効果を達成するには

序文

多くの電子商取引製品では、ユーザーエクスペリエンスを最適化するためにパンくずナビゲーションを実装する必要があります。

1. 主要なブレッドクラムパッケージのコンポーネント

1. インフラストラクチャコンポーネントBread.vueをカプセル化する

<テンプレート>
  <div class='xtx-bread'>
    <div class="xtx-bread-item">
      <RouterLink to="/">ホーム</RouterLink>
    </div>
    <i class="iconfont icon-angle-right"></i>
    <div class="xtx-bread-item">
      <RouterLink to="/category/10000">セカンダリナビゲーション</RouterLink>
    </div>
    <i class="iconfont icon-angle-right"></i>
    <div class="xtx-bread-item">
      <span>第 3 レベルのナビゲーション</span>
    </div>
  </div>
</テンプレート>

<スタイル スコープ lang='less'>
.xtx-パン{
  ディスプレイ: フレックス;
  パディング: 25px 10px;
  &-アイテム {
    {
      色: #666;
      遷移: すべて .4;
      &:ホバー{
        色: @xtxColor;
      }
    }
  }
  私 {
    フォントサイズ: 12px;
    左マージン: 5px;
    右マージン: 5px;
    行の高さ: 22px;
  }
}
</スタイル>

2. parentPath parentNameプロパティ、デフォルトスロットを公開し、コンポーネントを動的にレンダリングするためのpropsを定義する

<div class='xtx-bread'>
     <div class="xtx-bread-item">
       <RouterLink to="/">ホーム</RouterLink>
     </div>
     <i class="iconfont icon-angle-right"></i>
    <テンプレート v-if="親名">
     <div class="xtx-bread-item" v-if="親名">
       <RouterLink v-if="parentPath" to="/category/10000">{{parentName}}</RouterLink>
       <span v-else>{{親名}}</span>
     </div>
    </テンプレート>
    <i v-if="親名" class="iconfont icon-angle-right"></i>
    <div class="xtx-bread-item">
      <span> <スロット/> </span>
    </div>
  </div>
// propsを使用してデータを受け取ります props: {
    親名: {
      タイプ: 文字列、
      デフォルト: ''
    },
    親パス: {
      タイプ: 文字列、
      デフォルト: ''
    }
  }

3. コンポーネントを登録し、検証効果を使用する

'./Bread' から Bread をインポートします
エクスポートデフォルト{
  インストール(アプリ){
    // Vue2 では、パラメータは Vue コンストラクターです // Vue3 では、パラメータはルート コンポーネントのインスタンス オブジェクトです // グローバル コンポーネントを構成する app.component(Bread.name, Bread)
  }
}

4. コンポーネントを使用する

<Bread parentPath="/category/1005000" parentName="Apparel">フライングニットシリーズ</Bread>
<Bread parentName="Apparel">Flying Weave Series</Bread> //parentPath を削除した後はジャンプできません

2. 高度なパッケージングInfinitusナビゲーション

element-ui のパンくずコンポーネントを参照してください。

<el-breadcrumb セパレーター="/">
  <el-breadcrumb-item :to="{ path: '/' }">ホーム</el-breadcrumb-item>
  <el-breadcrumb-item><a href="/" rel="external nofollow" >アクティビティ管理</a></el-breadcrumb-item>
  <el-breadcrumb-item>アクティビティ リスト</el-breadcrumb-item>
  <el-breadcrumb-item>イベントの詳細</el-breadcrumb-item>
</el-breadcrumb>

1. インフラストラクチャコンポーネントBrendItem.vueをカプセル化する

<テンプレート>
  <div class="xtx-bread-item">
    <RouterLink v-if="to" :to="to"><スロット /></RouterLink>
    <span v-else><スロット /></span>
    <i class="iconfont icon-angle-right"></i>
  </div>
</テンプレート>
<スクリプト>
エクスポートデフォルト{
  名前: 'XtxBreadItem',
  小道具: {
    に:
      type: [String, Object] //toの値は文字列またはオブジェクトのいずれかになります}
  }
}
</スクリプト>
//<bread-item to="/xxx/id"></bread-item> を使用する場合
<bread-item :to='{path:"/xxx/id"}'></bread-item>

2. Brend.vueをカプセル化する

<テンプレート>
  <div class='xtx-bread'>
    <スロット />
  </div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
  名前: 'XtxBread'
}
</スクリプト>

<スタイル スコープ lang='less'>
.xtx-パン {
  ディスプレイ: フレックス;
  パディング: 25px 10px;
  :deep(&-item) {
    {
      色: #666;
      遷移: すべて 0.4 秒;
      &:ホバー{
        色: @xtxColor;
      }
    }
  }
  :深い(i) {
    フォントサイズ: 12px;
    左マージン: 5px;
    右マージン: 5px;
    行の高さ: 22px;
  }
}
</スタイル>

3. 登録

'./BreadItem' から BreadItem をインポートします。
'./Bread' から Bread をインポートします
エクスポートデフォルト{
  インストール(アプリ){
    // Vue2 では、パラメータは Vue コンストラクターです // Vue3 では、パラメータはルート コンポーネントのインスタンス オブジェクトです // グローバル コンポーネントを構成する app.component(Bread.name, Bread)
    app.component(BreadItem.name、BreadItem) の
  }
}

4. 使用

// パンくずリスト
    <BreadItem to="/">ホーム</XtxBreadItem>
    <BreadItem to="/category/1005000">衣類</XtxBreadItem>
    <BreadItem >フライングウィーブシリーズ</XtxBreadItem>
</XtxBread>

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Vue3 でパンくず関数コンポーネントをカプセル化するいくつかの方法
  • Vue カプセル化パンくずリスト コンポーネント チュートリアル
  • vue+element-ui テーブルカプセル化タグラベルスロットの使用
  • Vueトップタグ閲覧履歴の実装
  • キャッシュナビゲーションプロセスを作成するための実用的なvueタグ
  • Vue の基本パンくずリストとタグの詳細な説明

<<:  Linux gzip コマンドのファイル圧縮実装原理とコード例

>>:  MySQL パフォーマンス最適化のヒント

推薦する

MySQL マスタースレーブレプリケーションの実践の詳細説明 - ログポイントに基づくレプリケーション

ログポイントベースのレプリケーション1. マスターデータベースとスレーブデータベースに専用のレプリケ...

Ubuntu 12.04 でカーネルツリーを構築する実装プロセスの詳細な説明

まず使用しているカーネルのバージョンを確認してくださいlin@lin-仮想マシン:~$ uname ...

mysqlreplicate を使って MySQL マスタースレーブを素早く構築する方法

導入mysql-utilities ツールセットは、DBA のツールボックスとも言えるさまざまなツー...

CSS3 境界効果

CSSとは# CSS (Cascading Style Sheets の略) は、「カスケーディング...

イメージのアップロードとダウンロードに docker をプロキシするためのプライベート ライブラリとして nexus を使用する

1. Nexusの設定1. Dockerプロキシを作成する外部ネットワーク ウェアハウスからローカル...

XHTML 1.0 リファレンス

機能別に並べ替えNN: このタグをサポートする Netscape の以前のバージョンを示しますIE:...

Jenkins の docker-compose デプロイメントと構成に関する詳細なチュートリアル

Docker-compose デプロイメント構成 Jenkins 1. Docker-compose...

MySQL 制約の種類と例

制約制約によりデータの整合性と一貫性が確保される制約はテーブルレベルの制約と列レベルの制約に分けられ...

Linux リモート開発に vs2019 を使用する方法

通常、Linux プログラムを開発する場合、次の 2 つのオプションがあります。 Linux上で直接...

MySQLのパラメータについてお話しましょう

序文:以前の記事では、特定のパラメータの機能についてよく紹介してきました。しかし、MySQL パラメ...

Vue h関数の使い方の詳しい説明

目次1. 理解2. 使用1. h() パラメータ2. 使い方が簡単3. カウンターケースを実装する4...

CSS ボックスを中央揃えするためのよく使われるいくつかの方法 (要約)

最初のもの: CSSの位置プロパティの使用 <スタイル タイプ="text/css&...

Linux Centos でスクリプトを使用して Docker をインストールする方法

Dockerの主な機能は何ですか?現在、Docker には少なくとも次のアプリケーション シナリオが...

Reactでコンポーネントがどのように通信するかの詳細な説明

1. 何ですかコンポーネント間の通信は、次の 2 つの単語に分けることができます。コンポーネントコ...

CentOS 7 でゲートウェイを変更して IP を設定する方法の例

Centos7 バージョンをインストールするときに、外部ネットワークへの接続を選択すると、外部ネット...