vite2.0+vue3 モバイルプロジェクトの詳細な説明

vite2.0+vue3 モバイルプロジェクトの詳細な説明

1. 関連する技術的なポイント

  • バイト版
  • ヴュー3
  • ts
  • 統合ルーティング
  • vuexを統合する
  • Axiosを統合する
  • Vant3 を設定する
  • モバイル端末の適応
  • エージェントをリクエスト

2. 手順

vite+ts+vue3 はコマンド1行だけ必要です

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

ルートの設定

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

srcの下に新しいルーターディレクトリを作成し、新しいindex.tsファイルを作成します。

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

main.tsにルートをマウントする

'vue' から {createApp} をインポートします。
'./App.vue' からアプリをインポートします。
「./router」からルーターをインポートします。createApp(App)
.use(ルーター)
.mount('#app')

データセンター vuex (4.x) を構成する

インストール

npm i vuex@next --save

構成

srcの下にstoreディレクトリを作成し、storeの下にindex.tsを作成します。

「vuex」から createStore をインポートします。
エクスポートデフォルトcreateStore({
 州: {
 リストデータ:{1:10},
 番号:10
 },
 突然変異:
 setData(状態、値){
  state.listData=値
 },
 addNum(状態){
  状態.num = 状態.num + 10
 }
 },
 アクション: {
 setData(コンテキスト、値){
  context.commit('setData',値)
 },
 },
 モジュール: {}
});

マウント

main.tsにデータセンターをマウントする

'vue' から {createApp} をインポートします。
'./App.vue' からアプリをインポートします。
「./router」からルーターをインポートします。
「./store」からストアをインポートします。
アプリを作成します(アプリ)
.use(ルーター)
.use(ストア)
.mount('#app')

ヴァント3

インストール

npm と vant@next -S

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

main.ts でスタイルをグローバルにインポートする

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

モバイル端末の適応

postcss-pxtoremをインストールする

npm インストール postcss-pxtorem -D

ルートディレクトリにpostcss.config.jsを作成します。

モジュール.エクスポート = {
 「プラグイン」: {
 "postcss-pxtorem": {
  ルート値: 37.5, 
  // Vant 公式ルートフォントサイズは 37.5 です
  プロパティリスト: ['*'],
  セレクタブラックリスト: ['.norem'] 
  // .norem- で始まるクラスを除外し、rem 変換を実行しません}
 }
}

ルート ディレクトリ src の util ディレクトリに新しい rem.ts ファイルを作成します。

// rem 比例適応設定ファイル // 基本サイズ const baseSize = 37.5 
// この値は postcss.config.js ファイルの rootValue と一致している必要があることに注意してください // rem 関数を設定する function setRem () {
 // 現在のページ幅は 375 幅の拡大縮小率を基準としており、必要に応じて変更できます。一般的に、設計図は 750 幅です (設計図を入手して、都合に合わせて変更できます)。
 定数スケール = document.documentElement.clientWidth / 375
 // ページのルート ノードのフォント サイズを設定します ("Math.min(scale, 2)" は最大拡大率が 2 であることを意味します。実際のビジネス ニーズに応じて調整できます)
 document.documentElement.style.fontSize = baseSize * Math.min(scale, 2) + 'px'
}
// setRem() を初期化する
// ウィンドウサイズを変更するときに rem をリセットする
window.onresize = 関数 () {
 console.log("実行しました")
 リセット()
}

main.ts にインポートする

「./utils/rem」をインポートします

ネットワークリクエストaxiosを構成する

インストール

npm i -s アクシオス

Axios を設定する

srcにutilsフォルダを作成し、utilsの下にrequest.tsを作成します。

「axios」からaxiosをインポートします。
constサービス = axios.create({
 ベースURL、
 タイムアウト: 5000 // リクエストタイムアウト
});
//リクエストを開始する前のインターセプター service.interceptors.request.use(
 設定 => {
 // トークンがある場合はトークンを繰り越す
 定数トークン = window.localStorage.getItem("accessToken");
 if (トークン) {
  config.headers.common.Authorization = トークン;
 }
 設定を返します。
 },
 エラー => Promise.reject(エラー)
);
// レスポンスインターセプター service.interceptors.response.use(
 レスポンス => {
 レスポンスデータを返します。
 
 応答ステータスが 200 の場合
  Promise.reject(new Error(res.message || "Error")) を返します。
 } それ以外 {
  res を返します。
 }
 },
 エラー => {
 Promise.reject(error) を返します。
 }
);
デフォルト サービスをエクスポートします。

使用

「../utils/request」からリクエストをインポートします。
リクエスト({url: "/profile ",メソッド: "get"})
.then((res)=>{
 コンソール.log(res)
})

リクエストエージェントの設定

vite.config.ts

'vite' から {defineConfig} をインポートします
'@vitejs/plugin-vue' から vue をインポートします
'path' からパスをインポートします。
 
// https://vitejs.dev/config/
デフォルトのdefineConfigをエクスポートする({
 プラグイン: [vue()],
 base:"./",//パッケージパス解決: {
 エイリアス:{
  '@': path.resolve(__dirname, './src') //エイリアスを設定}
 },
 サーバー: {
 port:4000, //ポートオープン開始: true,
 プロキシ: {
  // オプションの書き込み '/api': 'http://123.56.85.24:5000'//プロキシ URL},
 コア:true
 }
 
})

以上で、基本的なモバイル端末開発の構成は完了です。

3. Viteは<script setup>と<style vars>に特に優しい

通常の書き込み

<script lang="ts">
「vue」からdefineComponentをインポートします。
「vue-router」から useRouter をインポートします。
エクスポートデフォルトdefineComponent({
 設定() {
 定数ルーター = useRouter();
 const goLogin = () => {
  ルーターをプッシュします。
 };
 戻り値: { goLogin };
 },
});
</スクリプト>
<script setup> <script lang="ts" setup="props"> の記述
「vue-router」から useRouter をインポートします。
定数ルーター = useRouter();
const goLogin = () => {
 ルーターをプッシュします。
};
</スクリプト>

もっと簡単じゃないですか?

<style vars> の使い方は?
<script lang="ts" setup="props">
定数状態 = リアクティブ({
 色: "#ccc",
});
</スクリプト>
<スタイル>
。文章 {
 色: v-bind("state.color");
}
</スタイル>

とても簡単です!

コード

元のアドレス: zhuanlan.zhihu.com/p/351888882

オンラインプレビュー: http://123.56.85.24/vite/#/

コードアドレス: github.com/huoqingzhu/vue3-vite-ts-Vant

vitejs 中国語ウェブサイト: https://cn.vitejs.dev/

これで、vite2.0+vue3 モバイル プロジェクトの実践的な詳細に関するこの記事は終了です。vite2.0+vue3 プロジェクトの実践的な内容の詳細については、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vite+ElectronでVUE3デスクトップアプリケーションを素早く構築
  • 古い Vue プロジェクトに Vite サポートを追加する方法
  • Vite2.x に基づく Vue 3.x プロジェクトの実装
  • vite を使用して vue3 アプリケーションを構築する方法
  • Vue3とViteについて

<<:  Linux コマンドラインのワイルドカードとエスケープ文字の実装

>>:  Centos7 で Java8 と MySQL をインストールしてデプロイする

推薦する

ウェブサイトのデザイン体験のための7つの異なるカラースキーム

ウェブサイト構築におけるカラーマッチングは非常に特殊であり、ウェブサイトのテーマ、感情、雰囲気などの...

Windows ホストと Docker コンテナに共有フォルダを設定してマウントする手順

Docker コンテナ内のプログラムは、ホスト ディレクトリ内のデータにアクセスして呼び出す必要があ...

Linux 構成で MySQL データベースへのリモート接続が失敗する問題の解決方法

今日は、Linux でリモート アクセス用に MySQL データベースを構成する方法について質問があ...

Navicat でストアド プロシージャ、トリガーを作成し、カーソルを使用する簡単な例 (画像とテキスト)

1. テーブルを作成する<br /> まず、2 つのテーブル (users テーブルと...

CentOS7 で Jenkins+Maven+Git 継続的インテグレーション環境を構築する方法

この記事では、Spring boot + Maven プロジェクトのデプロイメントを例に、Code ...

クラウド CentOS で Docker リモート サービス リンクを有効にするための実装手順

ここでは、dockerがインストールされたcentosサーバーを紹介し、リモートリンクサービスを開始...

MySQL マスタースレーブレプリケーション切断の一般的な修復方法

目次01 問題の説明02 ソリューション1. 他のスレーブライブラリを見つけてすぐに置き換える2. ...

ZabbixはLinuxシステムサービスのプロセスを監視

Zabbix は Linux システムのサービス ユニットを監視するためのルールを自動的に検出します...

Linux gzipコマンドの使用

1. コマンドの紹介gzip (GNU zip) コマンドは、ファイルの圧縮と解凍に使用されます。こ...

Reactのコンポーネント共同利用実装

目次ネスティング親子コンポーネント通信ブラザーコンポーネント通信撤回するReact の Linked...

MySQL は制限を使用してページング例メソッドを実装します

1. 制限の基本的な実装一般的に、クライアントは、pageNo (ページ番号) と pageSize...

Docker コンテナのマウントディレクトリ操作の表示

Dockerコンテナのマウントディレクトリ情報のみを表示する docker 検査 --format ...

画像の一時停止を実現するjQueryプラグイン

この記事では、画像の一時停止を実現するためのjQueryプラグインの具体的なコードを参考までに共有し...

Vueは2つのルーティング許可制御メソッドを実装しています

目次方法 1: ルーティング メタ情報 (meta)方法 2: ルーティング テーブルを動的に生成す...

VUE+Canvasは、インゴットを受け取る富の神のゲームを実装します

前回のキャンバス ゲーム シリーズへようこそ: 《VUEがFlappy Birdを実装しました〜〜〜...