Vite2.x に基づく Vue 3.x プロジェクトの実装

Vite2.x に基づく Vue 3.x プロジェクトの実装

Vue 3.x プロジェクトの作成

npm init @vitejs/app my-vue-app --template
 

ルーター 4.x の紹介

npm インストール vue-router@4 --save

ルートの設定

ディレクトリにルーターフォルダを追加し、index.jsを作成します。

Router 4.x では、ルートを作成するために、Router 3.x の new VueRouter の代わりに createRouter が提供されます。

// ルーター 4.x
「vue-router」から createRouter、createWebHashHistory、RouteRecordRaw をインポートします。
const ルート: Array<RouteRecordRaw> = [
  {
    パス: "/"、
    名前: "ホーム",
    コンポーネント: () => import("../views/Home/index.vue"),
  },
  {
    パス: "/login",
    名前: "ログイン",
    コンポーネント: () => import("../views/Login/index.vue"),
  },
];
const ルーター = createRouter({
  履歴: createWebHashHistory(),
  ルート
});
デフォルトルーターをエクスポートします。

Router 4.x では、ハッシュ モードと履歴モードを設定するための createWebHashHistory メソッドと createWebHistory メソッドが提供されます。

const ルーター = createRouter({
  history: createWebHashHistory(), // ハッシュ モード history: createWebHistory(), // 履歴モード });

相対パスの設定

以前の VueCli では、WebPack パッケージング ツールのメリットを活用し、特定のシンボルを直接使用して現在のパスを表すことができました。同様に、Vite は、resolve.alias プロパティも提供します。

// vite.config.ts
'vite' から {defineConfig} をインポートします
'@vitejs/plugin-vue' から vue をインポートします
const { 解決 } = require('path')

// https://vitejs.dev/config/
デフォルトのdefineConfigをエクスポートする({
  プラグイン: [vue()],
  // 相対パスを定義します。@ は、resolve: { に置き換えられます。
    エイリアス: {
      '@': 解決(__dirname, 'src')
    }
  }
})

Vuexをインポートする

Vuex を導入したら、ディレクトリ内に src/store/index.ts という新しいファイルを作成します。

npm i vuex@next --save

ヴァントの紹介

ダウンロード

npm インストール vant@next --save

vite バージョンでは、Vant 3.0 内のすべてのモジュールが ESM に基づいて記述されており、当然オンデマンドで導入できる機能があるため、コンポーネントのオンデマンド ロードを構成する必要はありませんが、すべてのスタイルを導入する必要があります。

//メイン.ts
「vue」から createApp をインポートします。
「./App.vue」からアプリをインポートします。
「./router」からルーターをインポートします。
「./store」からストアをインポートします。
「Vant」からVantをインポートします。
import "vant/lib/index.css"; // グローバルインポートスタイル createApp(App).use(router).use(store).use(Vant).mount("#app");

Vue 3.x では setup 関数が追加されましたが、setup 内の this は undefined を参照するため、Vant の一部のグローバル メソッドは使用できません。

<テンプレート>
   <div>
      <van-nav-bar title="タイトル" left-text="戻る" right-text="ボタン" 左矢印固定 @click-left="onClickLeft" @click-right="onClickRight" />
      <van-nav-bar title="タイトル" left-text="戻る" right-text="ボタン" 左矢印 @click-left="onClickLeft" @click-right="onClickRight" />
   </div>
</テンプレート>

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

エクスポートデフォルトdefineComponent({
   設定() {
      const onClickLeft = () => Toast("Return");
      const onClickRight = () => Toast("ボタン");
      戻る {
         左クリック時、
         右クリック時、
      };
   },
});
</スクリプト>

上記の例では、Toast は定義されていません。これは、Vant をグローバルに適用した後、ローカルで参照できないためです。そうしないと、Vite はエラーを報告します。

この問題は、Toast を再度カプセル化するツール クラスを作成することで解決できます。

// ユーティリティ/util.ts
// シンプルなポップアップウィンドウ import { Toast } from "Vant";
エクスポート const toast = (テキスト: 文字列) => {
  トースト(テキスト);
};
「vue」からdefineComponentをインポートします。
"@/utils/util" から { toast } をインポートします。

エクスポートデフォルトdefineComponent({
   設定() {
      const onClickLeft = () => toast("Return");
      const onClickRight = () => toast("ボタン");
      戻る {
         左クリック時、
         右クリック時、
      };
   }
});

これで、Vite2.x に基づく Vue 3.x プロジェクトの構築と実装に関するこの記事は終了です。より関連性の高い Vite 構築 Vue3 プロジェクト コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Vite+ElectronでVUE3デスクトップアプリケーションを素早く構築
  • 古い Vue プロジェクトに Vite サポートを追加する方法
  • vite2.0+vue3 モバイルプロジェクトの詳細な説明
  • vite を使用して vue3 アプリケーションを構築する方法
  • Vue3とViteについて

<<:  Windows での自動展開に Jenkins を使用するチュートリアル図

>>:  MySQL 5.7.21 winx64 無料インストールバージョン設定方法グラフィックチュートリアル

推薦する

WeChatミニプログラムQRコード生成ツール weapp-qrcode 詳細説明

WeChat ミニプログラム - QR コード ジェネレーターダウンロード: weapp-qrcod...

Centos7 で crontab + シェル スクリプトによる定期的な自動ファイル削除の問題を解決する

問題の説明:最近、rsyncで毎回同期するデータ量が多いが、データベースのbakファイルを保持する必...

MySQL 5.7.23 のインストールと設定方法のグラフィックチュートリアル

この記事では、参考として MySQL 5.7.23 のインストール チュートリアルを記録します。 1...

CentOS 6.5 の設定 ssh キーフリーログインで pssh コマンドを実行する方法の説明

1. psshを確認してインストールします。yum list pssh 2. キーレスログインが設定...

初心者でもjsのtypeofとinstanceofの違いを理解できます

目次1. 型2. インスタンス3. 違い1. 型typeof 演算子は、評価されていないオペランドの...

WeChat アプレット wxss で外部 CSS ファイルとアイコンフォントを参照する方法

原因外部ファイルをミニプログラムにインポートする方法は次のとおりです: @import "...

MySQL の中国語文字化け問題の解決方法

1. LinuxのMySQLで中国語の文字化けが発生する。以下の操作を実行する。 vi /etc/m...

Docker を使用した Redis マスタースレーブレプリケーションの実践の詳細説明

目次1. 背景2. 操作手順3. Dockerをインストールする4. 主なサービス構成5. サービス...

pagodaを使用してionCube拡張機能をインストールする方法

1. まずパゴダを設置するインストール要件: Python バージョン: 2.6/2.7 (Pago...

Tomcat でのサーブレットの作成と実装に関する深い理解

1. サーブレットとは何か1.1. 正式な言葉で説明する:サーブレットは、動的な Web リソースを...

Ubuntu 20.04 に GitLab をインストールして設定する方法

導入GitLab CE または Community Edition は、主に Git リポジトリのホ...

Apache Webサーバーのインストールと設定方法

信頼性が高く、人気があり、簡単に構成できる Web サーバーである Apache で独自の Web ...

カルーセル効果を作成するためのjs

カルーセルはフロントエンド開発において比較的重要なポイントだと思います。ネイティブjsの知識ポイント...

フィールドの文字セットの違いによる MySQL のインデックス失敗の解決策

インデックスとは何ですか?なぜインデックスを作成するのですか?インデックスは、列に特定の値を持つ行を...

MySQL データ定義言語 DDL の基本ステートメント

MySQL DDL ステートメントDDL、DMLとは何ですか。 DDL はデータ定義言語であり、CR...