WeChat アプレットのカスタム下部ナビゲーション バー コンポーネント

WeChat アプレットのカスタム下部ナビゲーション バー コンポーネント

この記事の例では、WeChatアプレットの下部ナビゲーションバーコンポーネントの具体的な実装コードを参考までに共有しています。具体的な内容は次のとおりです。

1. 独自のプロジェクトのパブリックコンポーネントのファイル価格の下に、新しいtabbar.vue(定義されたカスタムナビゲーションバーコンポーネント)を作成します。

<テンプレート>
  <view v-if="showTabbar" class="tabbar">
    <表示
      v-for="(item, index) in tabList"
      :key="インデックス"
      クラス="アイコン"
      @click="switchTabBar(item.path, index)"
    >
      <image :src="index == 現在の ? item.iconActivePath : item.iconPath"></image>
      <text :class="index == current ? 'active_text' : 'text'" bindtap = 'go'>{{ item.name }}</text>
    </ビュー>
  </ビュー>
</テンプレート>
 
<スクリプト>
  // '@/channelMessage/get-container' からコンテナをインポートします
 
  エクスポートデフォルト{
    小道具: {
      タブバーを表示: {
        タイプ: ブール値、
        デフォルト: true、
      },
      current:{ // 現在のページインデックス
    タイプ:数値、
    デフォルト:0
   },
    },
    データ() {
      戻る {
        選択されたインデックス: 0,
        タブリスト: [
          {
            名前: "ホーム",
            アイコンパス: require("../../../static/image/img/tab-home-nor.png"),
            iconActivePath: require("../../../static/image/img/tab-home-sel.png"),
          パス: "/pages/index/index",
          },
          {
            名前:「ショッピングカート」
            アイコンパス: require("../../../static/image/img/tab-cart-nor.png"),
            iconActivePath: require("../../../static/image/img/tab-cart-sel.png"),
            パス: "/pages/cart/cartEdit",
          },
          {
            名前: 「私の」
            アイコンパス: require("../../../static/image/img/tab-my-nor.png"),
            iconActivePath: require("../../../static/image/img/tab-my-sel.png"),
            パス: "/pages/mine/mine",
          },
        ]、
    }
    },
 
    オンショー() {
      // 定数コンテナId = container.getContainerId()
      // コンテナID == '1000'の場合{
      // this.showTabbar = false
      // }
    },
    メソッド: {
    switchTabBar(パス、インデックス) {
      this.item_index = インデックス
      wx.switchTab({
          url: パス、
      })
        // this.$router.replace(パス)
      },
    
    },
}
</スクリプト>
 
<style lang="scss" スコープ>
  .タブバー{
    位置: 固定;
    下部: 0;
    zインデックス: 10;
    ディスプレイ: フレックス;
    アイテムの位置を中央揃えにします。
    コンテンツの両端揃え: スペースを空ける;
    幅: 100%;
    高さ: 100rpx;
    背景色: #ffffff;
    パディング下部: 定数(セーフエリアインセット下部);
    パディング下部: env(セーフエリアインセット下部);
 
    .アイコン {
      ディスプレイ: フレックス;
      flex-direction: 列;
      アイテムの位置を中央揃えにします。
 
      画像 {
        幅: 50rpx;
        高さ: 50rpx;
      }
  }
  .active_text{
        フォントサイズ: 20rpx;
        上マージン: 5rpx;
    色: #d81e06;
      }
  。文章{
    フォントサイズ: 20rpx;
    上マージン: 5rpx;
    }
  }
</スタイル>

2. プロジェクトの pages.json ファイルにコードを追加して、tabbar.vue の wx.switchTab が正常に使用できることを確認します。コードは次のとおりです。

"タブバー": {
    "選択された色": "#EE2F51",
    「リスト」: [{
      "ページパス": "ページ/インデックス/インデックス",
      "テキスト": "ホーム",
      "アイコンパス": "static/image/img/tab-home-nor.png",
      "選択されたアイコンパス": "static/image/img/tab-home-sel.png"
    },{
      "pagePath": "pages/cart/cartEdit",
      "text": "ショッピングカート",
      "アイコンパス": "static/image/img/tab-cart-nor.png",
      "selectedIconPath": "static/image/img/tab-cart-sel.png"
    },{
      "pagePath": "pages/mine/mine",
      "テキスト": "私の",
      "アイコンパス": "static/image/img/tab-my-nor.png",
      "選択されたアイコンパス": "static/image/img/tab-my-sel.png"
    }]
  },

3. main.js にカスタムコンポーネントをグローバルに登録する

「./customComponents/commonComponents/tabBar/index.vue」からtabBarをインポートします。

//コンポーネントの位置を変更します。ここでのindex.vueは前述のtabbar.vueです。
Vue.component("タブバー", タブバー);

4. ナビゲーションバーが必要なページに、登録したコンポーネントを導入する

// ページにナビゲーション バー コンポーネントを導入します <tabBar :current=item_index></tabBar>
 
//ステータスをマークします。ナビゲーションバーはページデータに応じて異なるアクティベーションステータスを表示できます。
      戻る {
        アイテムインデックス: 0,
      }
}
 
//WeChatの組み込みナビゲーションバーを非表示にする onLoad() {
      タブバーを非表示にする
},

5. 表示効果

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

以下もご興味があるかもしれません:
  • WeChat ミニプログラムチュートリアルシリーズ: タイトルバーとナビゲーションバーの設定 (7)
  • WeChat アプレット開発トップナビゲーションバーのサンプルコード
  • WeChatアプレットの下部ナビゲーション列を設定する方法の詳細な説明
  • WeChat アプレットのカスタム ヘッダー ナビゲーション バーとナビゲーション バーの背景画像 navigationStyle の問題
  • WeChatアプレットのトップナビゲーションバーの実装コード
  • WeChatアプレットカプセルボタンリターンの詳細な説明|ホームページカスタムナビゲーションバー機能
  • WeChatアプレットのトップナビゲーションバーのスライドタブ効果
  • WeChat アプレットのカスタムナビゲーションバートップナビゲーションバーはすべてのモデルに適応します (完全なケース付き)
  • WeChatアプレットが左スライドナビゲーションバーを実装
  • WeChatアプレットはナビゲーションバータブの効果を実現します

<<:  HTML テーブル マークアップ チュートリアル (37): 背景画像属性 BACKGROUND

>>:  MySQLクエリインターセプトの詳細な分析

推薦する

CSS 要素の非表示の原則と display:none および visibility:hidden

1. CSS 要素の非表示<br />CSS では、要素を非表示にする (つまり、画面の...

Node.js管理ツールnvmの詳細なインストール手順

いいえnvmはnodejsの複数のバージョンを管理する役割を担っています。インストール: https...

dockerコンテナは直接実行され、pingを介してパブリックIP操作を取得します。

コンテナを通じてローカル パブリック IP アドレスを取得します。ローカル IP アドレスを使用して...

Vueはカウントダウン機能を実装する

この記事の例では、カウントダウン機能を実装するためのVueの具体的なコードを参考までに共有しています...

システム エラー 1067 のため、MySQL 5.6 解凍バージョン サービスを開始できません

今日午後ずっと私を悩ませたバグを記録する半月前から始めましょう。それから.................

さまざまな MySQL テーブルソートルールのエラーの分析

MySQL が複数のテーブルを結合するときに、次のエラーが報告されます: [Err]1267 – 操...

MySql8.0以降のバージョンでROOTパスワードを正しく変更する方法

展開環境:インストールバージョン Red Hat Cent 7.0 MYSQL バージョン 8.0....

HTML+CSS ボックスモデルの例 (円、半円など) 「border-radius」はシンプルで使いやすい

多くの友人は、フロントエンドを学習するときに、ボックス モデルがデフォルトで正方形であることに気付き...

VMware Workstationはデバイス/資格情報ガードと互換性がありません

仮想マシンをインストールするときに、「VMware ワークステーションはデバイス/資格情報ガードと互...

HTMLコードに基づく画像断片化読み込み機能の実装

今日は断片化された画像の読み込み効果を実装します。効果は次のとおりです。 これを 3 つのステップで...

現在のマウススライドの座標を取得するVue+openlayer5メソッド

序文: Vue プロジェクトで現在のマウスの座標を取得するにはどうすればよいでしょうか。ここで共有す...

Vue3は独自のページングコンポーネントをカプセル化します

この記事の例では、vue3 が独自のページングコンポーネントをカプセル化する具体的なコードを参考まで...

div 内の img と span の垂直方向の中央揃えの問題について

以下のように表示されます。 XML/HTML コードコンテンツをクリップボードにコピー<htm...

JS のディープコピーとシャローコピーの詳細

目次1. 浅いコピーとはどういう意味ですか? 2. ディープコピーとはどういう意味ですか? 3. デ...

MySQL ビュー管理ビューの例の詳細説明 [追加、削除、変更、クエリ操作]

この記事では、例を使用して MySQL ビューの管理ビュー操作について説明します。ご参考までに、詳細...