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

推薦する

MySQL 起動エラーを解決する: エラー 2003 (HY000): 'localhost' の MySQL サーバーに接続できません (10061)

このエラーは初心者によく発生します。この記事では主に、エラー 2003 (HY000): '...

document.getElementBy系メソッドがオブジェクトを取得できない問題を解決する

getElementByIdはオブジェクトを取得できませんブラウザがドキュメントを解析するときにはシ...

JavaScript の静的スコープと動的スコープを例を使って説明します

目次序文静的スコープと動的スコープ静的スコープ実行プロセス動的スコープ実行プロセスエクササイズ練習1...

JSはリクエストディスパッチャーを実装する

目次抽象化と再利用シリアルセグメントシリアル、セグメントパラレル要約するはじめに: JS は当然並列...

Linuxで相対パスを表現する方法

たとえば、現在のパスが /var/log で、/usr ディレクトリに移動する場合は、次のコマンドを...

select count() と select count(1) の違いと実行方法

Count(*) または Count(1) または Count([column]) は、おそらく S...

MySQL マルチテーブル結合クエリの詳細な説明

目次複数テーブル結合クエリ内部結合左結合右結合サブクエリ要約する複数テーブル結合クエリテーブル間の接...

VMware 仮想マシンの 3 つの接続方法の例の分析

NATこのようにして、仮想マシンのネットワーク カードはホストの VMnet8 に接続されます。この...

HTML テーブル マークアップ チュートリアル (40): ヘッダーの暗い境界線の色属性 BORDERCOLORDARK

テーブルヘッダーでは、暗い境界線の色を個別に定義できます。基本的な構文<TH 境界線の色を暗く...

Vue Routerはバックグラウンドデータに応じて異なるコンポーネントをロードします

目次実際のプロジェクトで遭遇する要件実装が間違っているところもある私は個人的に、実装するより良い方法...

jsプロジェクトでの双方向データバインディングの簡単な実装方法

目次序文パブリッシュ・サブスクライバ・パターン結果電話要約する序文双方向データ バインディングとは、...

高品質なJavaScriptコードの書き方

目次1. 読みやすいコード1. 統一コード形式2. マジックナンバーを削除する3. 単一機能原則2....

Zookeeper&Kafka クラスターを構築するための Docker の実装

最近Kafka勉強しています。クラスタの状態をテストする準備をしていたときに、仮想マシンを 3 つ開...

MySQL slow_log テーブルを InnoDB エンジンに変更することはできません。詳細な説明

背景mysql.slow_log からスロー クエリ ログを取得するのは遅く、テーブルは csv テ...

MySQLチュートリアルではストアドプロシージャを徹底的に理解します

目次1. ストアドプロシージャに関連する概念2. ストアドプロシージャの使用1) ストアドプロシージ...