Vue3コンポーネントの開発詳細

Vue3コンポーネントの開発詳細

1. はじめに

当然ですが、長時間座ったり立ったりしていると腰にかなりの負担がかかります。はっきり言って、私は腰が脱臼しているわけではなく、穿刺手術を受けたばかりで、体に縫合した跡がまだよく治っていないので、お腹や腰に一定の負担がかかります。

前回の記事ではレイアウトの開発について書きましたので、「Vue3 (III) ウェブサイトのホームページレイアウト開発」を参照してください。ただし、コードを書く際には、優れたコードスタイルとカプセル化特性を継承する必要があるため、ここでは再度コードを修正し、公開部分のfooterheader部分を抽出します。

2. コンポーネント開発

headerfooter共通の部分であり、すべてのページに存在するため、抽出してApp.vueで管理する必要があります。

1. コンポーネントの構成

componentsの下にコンポーネントを作成します。基本構造は次のようになります。

これは、 templatescript 2つのタグのペアで構成されています。

2. ヘッダーコンポーネントの開発

上図の赤丸で示したように、これが抽出したい共通部分、つまりコンポーネントの展開になります。

コンポーネントの下にコンポーネントを作成します。ヘッダーのコンポーネント コードは次のとおりです。

html
<テンプレート>
    <a-layout-headerクラス="header">
      <div class="logo" />
      <a-メニュー
          テーマ="ダーク"
          モード="水平"
          v-model:selectedKeys="選択されたキー1"
          :style="{ 行の高さ: '64px' }"
      >
        <a-menu-item key="1">ナビゲーション 11122</a-menu-item>
        <a-menu-item key="2">ナビゲーション 2</a-menu-item>
        <a-menu-item key="3">ナビゲーション 3</a-menu-item>
      </a-メニュー>
    </a-レイアウト-ヘッダー>
</テンプレート>

<script lang="ts">
'vue' から defineComponent をインポートします。

エクスポートデフォルトdefineComponent({
  名前: 'TheHeader',
});
</スクリプト>

3. フッターコンポーネントの開発

上の図に示すように、フッター コンポーネントを開発する必要があります。サンプル コードは次のとおりです。

html
<テンプレート>
  <a-layout-footer スタイル="text-align: center">
    ソフトウェアテスター©2021 Liuge20211017作成
  </a-レイアウト-フッター>
</テンプレート>

<script lang="ts">
'vue' から defineComponent をインポートします。

エクスポートデフォルトdefineComponent({
  名前: 'TheFooter',
});
</スクリプト>


4. App.vueを変更する

サンプルコードは次のとおりです。

html
<テンプレート>
  <a-レイアウト>
    <ヘッダー></ヘッダー>
    <ルータービュー/>
    <フッター></フッター>
  </a-レイアウト>
</テンプレート>

<スタイル>
#コンポーネントレイアウトデモトップサイド2.ロゴ{
  フロート: 左;
  幅: 120ピクセル;
  高さ: 31px;
  マージン: 16px 24px 16px 0;
  背景: rgba(255, 255, 255, 0.3);
}

.ant-row-rtl #components-layout-demo-top-side-2 .logo {
  フロート: 右;
  マージン: 16px 0 16px 24px;
}

.サイトレイアウト背景 {
  背景: #fff;
}
</スタイル>
<スクリプト>
"@/components/the-header" から TheHeader をインポートします。
"@/components/the-footer" から TheFooter をインポートします。

エクスポートデフォルト{
  コンポーネント:
    ヘッダー、
    フッター
  }
}
</スクリプト>

5. Hellowordコンポーネントと関連コードを削除する

ホームは次のように変更されます。

html
<テンプレート>
  <a-レイアウト>
    <a-layout-sider width="200" style="background: #fff">
      <a-メニュー
          モード="インライン"
          v-model:selectedKeys="selectedKeys2"
          v-model:openKeys="openKeys"
          :style="{ 高さ: '100%', 右境界線: 0 }"
      >
        <a-サブメニューキー="sub1">
          <テンプレート #タイトル>
                <span>
                  <ユーザーによるアウトライン />
                  サブナビ1
                </span>
          </テンプレート>
          <a-menu-item key="1">オプション1</a-menu-item>
          <a-menu-item key="2">オプション2</a-menu-item>
          <a-menu-item key="3">オプション3</a-menu-item>
          <a-menu-item key="4">オプション4</a-menu-item>
        </a-サブメニュー>
        <a-サブメニューキー="sub2">
          <テンプレート #タイトル>
                <span>
                  <ラップトップのアウトライン />
                  サブナビ2
                </span>
          </テンプレート>
          <a-menu-item key="5">オプション5</a-menu-item>
          <a-menu-item key="6">オプション6</a-menu-item>
          <a-menu-item key="7">オプション7</a-menu-item>
          <a-menu-item key="8">オプション8</a-menu-item>
        </a-サブメニュー>
        <a-サブメニューキー="sub3">
          <テンプレート #タイトル>
                <span>
                  <通知の概要 />
                  サブナビ3
                </span>
          </テンプレート>
          <a-menu-item key="9">オプション9</a-menu-item>
          <a-menu-item key="10">オプション10</a-menu-item>
          <a-menu-item key="11">オプション11</a-menu-item>
          <a-menu-item key="12">オプション12</a-menu-item>
        </a-サブメニュー>
      </a-メニュー>
    </a-layout-sider>
    <レイアウトコンテンツ
        :style="{ 背景: '#fff', パディング: '24px', マージン: 0, 最小高さ: '280px' }"
    >
      コンテンツ
    </a-レイアウトコンテンツ>
  </a-レイアウト>
</テンプレート>

<script lang="ts">
'vue' から defineComponent をインポートします。

エクスポートデフォルトdefineComponent({
  名前: 'ホーム'、
});
</スクリプト>

6. サービスを再起動して表示する

再コンパイルしてページに再度アクセスします。結果は次のようになります。

3. 最後に

Vue3 (IV) コンポーネントの開発に関するこの記事はこれで終わりです。Vue3 コンポーネント開発に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue開発の一般的な手法の詳細な説明
  • 実践的なVue開発スキル
  • Vue Element フロントエンドアプリケーション開発は ABP フレームワークのフロントエンドログインを統合します
  • Vue.js を使用して WeChat アプレットを開発するオープンソース フレームワーク mpvue 分析
  • Vueフレームワークでの商品コンポーネント開発の詳細説明
  • Vueフレームワークとフロントエンドおよびバックエンド開発の詳細な説明

<<:  コピー&ペーストはパッケージングの敵です

>>:  CSS 透明ボーダー背景クリップマジック

推薦する

MySQL で大文字と小文字を区別しないように設定する方法

mysql は大文字と小文字を区別しないように設定されていますウィンドウズmysqlがインストールさ...

Docker を使用して Nginx+Flask+Mongo アプリケーションをデプロイする

サーバーにはNginx、データベースサポートにはMongo、Python言語のWebフレームワークに...

Centos7.4 サーバーへの Apache のインストールとインストール プロセス中に発生した問題の解決策

この記事では、CentOS 7.4 サーバーに Apache をインストールする方法と、インストール...

MySQL接続がハングする理由の詳細な説明

目次1. 背景建築問題現象2. 分析プロセス接続プール不安に陥る雲を晴らして光を見よう3. 解決策I...

マージンのマージの問題を解決する

1. 兄弟要素の余白を結合する効果は次のようになります: (2 つの間の間隔は 150 ピクセルでは...

MYSQLは、ショッピングカートに追加する際に重複追加を防ぐためのサンプルコードを実装します。

序文最近、仕事の都合で、APP ショッピングカートの注文支払いに取り組んでいました。テスト中にバグが...

指定したディレクトリに nginx をインストールする方法の例

会社の要件により、異なる場所にある 2 つの nginx サーバーを同じマシンにインストールする必要...

MySQL 8.0.22.0 のダウンロード、インストール、設定方法のグラフィックチュートリアル

MySQL 8.0.22のダウンロード、インストール、設定方法、参考までに具体的な内容は次のとおりで...

Webデザインチュートリアル(6):デザインへの情熱を持ち続ける

<br />前の記事:Webデザインチュートリアル(5):Webビジュアルデザイン。 1...

Docker を使用して ELK ログ システムを構築する例

以下のインストールではすべて、インストール ルート ディレクトリとして ~/ ディレクトリが使用され...

Nodejs がイントラネット侵入サービスを実装

目次1. LAN内のプロキシ2. イントラネットの浸透イントラネット侵入とは何ですか?橋プロキシサー...

Xtrabackup を使用した MySQL バックアップ プロセスの詳細な説明

目次01 背景02 はじめに03 ワークフロー04 いくつかの質問05 ファイルをバックアップする0...

Linux自動ログイン例の説明

インターネット上には、expect を使用して自動ログインを実現するスクリプトが多数存在しますが、明...

Linuxホスト名変更コマンドの詳しい説明

Linux ホスト名変更コマンド1. ホスト名を一時的に変更するだけの場合は、hostname コマ...