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 には独自のイベント スケジューラもあり、これは Linux の crontab ジョ...

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

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

MySQL 全文インデックスガイド

全文インデックスには特別なクエリ構文が必要です。全文検索はインデックスの有無にかかわらず実行できます...

LinuxシステムでのSystemC環境設定方法

以下はcentos7での設定方法ですsystemc ソース パッケージをダウンロード: System...

Linux での VMWare15.5 のインストールに関するチュートリアル

Linux に VMWare をインストールするには、公式 Web サイト https://www....

WeChat アプレット uniapp は左スワイプによる削除効果を実現します (完全なコード)

WeChatアプレットuniappは左スワイプで削除効果を実現成果を達成する1. スワイプしてリス...

CSS3 を使用して 3D テキスト ホバー効果を実装するサンプル コード

この記事では、3D テキストのホバー変更効果を実現するための CSS3 のサンプル コードを紹介しま...

主要ブラウザとそのカーネルの紹介

トライデント コア: IE、MaxThon、TT、The World、360、Sogou Brows...

CSS3を使用してヘッダーアニメーション効果を作成する

Netease Kanyouxi公式サイト(http://kanyouxi.163.com/)(棚...

MySQL 学習: 初心者のための 3 つのパラダイム

目次1. パラダイム基盤1.1 パラダイムの概念2. 3つの主要なパラダイム2.1 3つの主要なパラ...

Mysql でよく使用される時間、日付、変換関数の概要

この記事では、主に実際のアプリケーションでよく使用されるMySQLの時刻と日付、および変換関数につい...

HTML ドキュメントに CSS を埋め込む一般的な 3 つの方法

HTMLでCSSを定義するには、埋め込み、リンク、インラインの3つの方法が一般的に使用されます。 1...

Tencent インタビュー: SQL ステートメントの実行が非常に遅くなる理由は何ですか? ---後悔シリーズは見ないで(推奨)

正直に言うと、この質問には MySQL のコア知識がかなり必要で、コンピュータ ネットワークの知識を...

Linux サーバーと Windows システム間でファイルをアップロードおよびダウンロードする方法

背景: Linux サーバーのファイルのアップロードとダウンロード。 XShell+Xftp インス...

メモリ構成が過剰でMySQLが起動できない問題の解決方法

問題の説明MySQL の起動時にエラーが報告されます。エラー ログを確認してください。 [エラー] ...