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

推薦する

HTML における li タグの水平配置の例

ほとんどのナビゲーション バーは、下の図に示すように水平に配置されていますが、これはどのように実現さ...

Docker での Redis のマスタースレーブ構成チュートリアルの詳細説明

1. Redisイメージを取得するdocker pull redis 2. それぞれポート6379、...

MySQLにインデックスを追加する方法

インデックスの簡単な紹介は次のとおりです。インデックスを追加する目的は、データベース クエリのパフォ...

React NativeのstartReactApplicationメソッドの簡単な分析

今回は、 RNの起動処理を整理しました。最後のstartReactApplication比較的複雑で...

Windows での MySQL 8.0.18 インストール チュートリアル (図解)

ダウンロードダウンロードアドレス: https://dev.mysql.com/downloads/...

ウェブページの読み込み速度を上げる25の方法とヒント

はじめに<br />誰もが高速インターネット接続にアクセスできるわけではありません。たと...

Mysql5.7 サービスを開始できません。グラフィカル ソリューション チュートリアル

p>「サービス」で手動で起動すると、 コンソールから起動します: 次に、...\MySQL S...

Vueはタブ切り替えを実装します

この記事では、タブ切り替えを実装するためのVueの具体的なコードを例として紹介します。具体的な内容は...

JavaScript におけるブラウザ互換性の問題について簡単に説明します

ブラウザの互換性は、実際の開発では見落とされがちな最も重要な部分です。古いバージョンのブラウザの互換...

Vue3はJingdong製品詳細ページの虫眼鏡効果コンポーネントをカプセル化します

この記事では、Jingdong製品詳細ページの虫眼鏡効果コンポーネントに似たvue3カプセル化の具体...

SQL Server の完全バックアップに関する珍しいエラーと解決策

1. エラーの詳細一度、データベース全体のバックアップを手動で実行したときに、次のエラーが発生しまし...

Tomcat の一般的な例外と解決コードの例

弊社のプロジェクトは Java で開発され、ミドルウェアは Tomcat でした。運用中に、Tomc...

Linuxはsttyを使用して端末の回線設定を表示および変更します。

Sttty は、Linux で端末設定を変更および印刷するための一般的なコマンドです。 1. パラ...

mysql 5.7.20 win64 のインストールと設定方法

mysql-5.7.20-winx64.zipインストール手順のないインストール パッケージ: ht...

Vueはアップロードコンポーネントを実装します

目次1. はじめに2. アイデアファイルをアップロードする2つの方法3. ライフサイクル4. コード...