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 をインストールしてデプロイする

推薦する

Docker を使用して Jenkins をインストールするためのサンプル コード

Dockerコンテナのインストール時に遭遇しやすい2つの問題1.ポートはすでに割り当てられています(...

Vue のループフォーム項目例の詳細な説明

場合によっては、ユーザーがボタンをクリックして同様のフォームを追加し、クリックごとに 1 回追加でき...

画像ブラインド表示の効果を実現するための純粋な CSS の例

まず、完成した効果をお見せしましょう 主なアイデア: 実際、このブラインドは一種の手品を使用していま...

CentOS7.4 起動時の緊急モードへようこそメッセージに対する解決策

今日は仮想マシンを使って実験をしました。システムをインストールし、いくつかのオプションを最適化した後...

Alibaba Cloud Serverにプログラムをデプロイし、ドメイン名を使用して直接アクセスする方法の詳細な説明

何もすることがなかったので、学習用に最も安いAlibaba Cloudサーバーを購入しました。年間3...

CSS で画像アダプティブ コンテナを実装するいくつかの方法 (要約)

多くの場合、画像をコンテナのサイズに合わせて調整する必要があります。 1. imgタグ方式幅と高さを...

一般的なテーブルコンポーネントの Vue カプセル化の完全な手順記録

目次序文テーブル コンポーネントをカプセル化する必要があるのはなぜですか?ステップ1: 共通コンポー...

MySQL データベース内の数十億のデータを素早くクリーンアップする方法

今日、ディスクアラーム例外を受け取りました。50G ディスクが爆発しました。分析と解決のプロセスは次...

MySQL5.7.03 上位バージョンから MySQL 5.7.17 への置き換えインストール プロセスと見つかった問題の解決策

1. インストール方法は? 1. [実行] -> [cmd] と入力して、小さな黒いウィンドウ...

Linuxシステムの操作レベルの詳細な紹介

目次1. Linuxシステムの操作レベルの概要2. 実行レベルを確認する3. 現在のシステムの動作レ...

Jenkins + Docker + ASP.NET Core の自動デプロイメントの問題について (落とし穴を避ける)

このブログを書くつもりはなかったのですが、実際の操作中に、ネットワークの問題に圧倒されたこと (ネッ...

Linux で scp コマンドを使用してファイルをリモートでコピーする方法の詳細な説明

序文scp は secure copy の略です。scp は、Linux システムの ssh ログイ...

Vue Element フロントエンドアプリケーション開発の動的メニューとルーティングの関連付け処理

目次概要1. メニューとルーティング処理2. メニューとルートリスト3. ログインプロセスの処理概要...

CentOS 7 での Docker プロキシの設定 (Linux での Systemd サービスの環境変数設定)

Docker デーモンは、 HTTP_PROXY 、 HTTPS_PROXY 、およびNO_PRO...