手順
Vue3 プロジェクトの構築プロセスを記録します。この記事は vue3.2.6 および vite2.51 バージョンに基づいており、UI ライブラリ Element plus、vue-router4、Layout レイアウトのカプセル化、axios リクエストのカプセル化、エイリアス設定などを使用しています。
Start
1. vscode 開発ツールを使用して、vue3 プラグイン Volar をインストールします。vue2 では Vetur を使用します。
vue3 オンライン コード ツール ポータル sfc.vuejs.org/
2.
初期化およびインストール コマンドを実行します。#npm init vite
vite を初期化するこのプロセスでは、プロジェクト名を入力し、vue/react プロジェクトを選択し、js/ts 環境を選択できます。Vue3 は ts を完全にサポートしています。この記事では、 js. npm install
依存関係をインストールします。最後に npm run dev
を実行してプロジェクトを実行します。
プロセスの実行中に上記のエラー メッセージが表示された場合は、手動で node node_modules/esbuild/install.js
を実行してから、## を実行してください。 # npm run dev
3. vue-router のインストール
実行npm install vue-router@4、vue- に対応vue3 router と vuex のバージョンは両方とも 4.0 です。インストールコマンド実行後、ディレクトリ内に src/router/index.js を作成し、
import { createRouter, createWebHistory } from 'vue-router' const routes = [ // ... ] export default createRouter({ history: createWebHistory(), routes, })main.js は
// ...+ import router from './router/index' createApp(App).use(router).mount('#app')vue-router4 を使用する設定を記述します。差分ハッシュモード
createWebHashHistory ヒストリーモード
createWebHistory 詳細は公式サイトをご確認ください。
4. グローバル スタイルと sass のインストール (@ パスを使用するにはエイリアスの設定が必要です。対応する手順は後で説明します)
コマンドを実行しますnpm i sass -D を実行し、ディレクトリに src/styles/index.scss を作成します。
// @import './a.scss'; // 作为出口组织这些样式文件,同时编写一些全局样式mian.js で
import '@/styles/index.scss'
tips を紹介します: でスタイル貫通を使用します。 vue3 ::deep(.className) または deep(.className)
5. 要素とオンデマンドの導入およびグローバル導入
実行npm i element3 -S コマンド インストール。内部のほとんどのコンポーネントを使用できる場合は、次のようにグローバル インポート メソッドを使用します。
// main.js import element3 from "element3"; import "element3/lib/theme-chalk/index.css"; createApp(App).use(router).use(element3).mount('#app')少数のコンポーネントのみを使用する場合は、それらをオンデマンドでロードして最適化できます。パフォーマンスを向上させ、次のように src/plugins/element3.js を作成します。
// 按需引入 plugins/element3.js import { ElButton, ElMenu, ElMenuItem } from 'element3' import 'element3/lib/theme-chalk/button.css' import 'element3/lib/theme-chalk/menu.css' import 'element3/lib/theme-chalk/menu-item.css' export default function (app) { app.use(ElButton) app.use(ElMenu) app.use(ElMenuItem) } // main.js中引用 import element3 from '@/plugins/element3.js' createApp(App).use(router).use(element3).mount('#app')
6. レイアウト レイアウト、ファイル src/layout/index.vue// src/layout/index.vue
<template>
<!-- 顶部导航 -->
<Navbar />
<!-- 页面内容部分、路由出口 -->
<AppMain />
<!-- 底部内容 -->
<Footer />
</template>
<script setup>
import Navbar from './Navbar.vue'
import AppMain from './AppMain.vue'
import Footer from './Footer.vue'
</script>
を作成します。 Layout を使用する場合は、親ルートとして Layout.vue を使用することに注意する必要があります。ルーティング設計は大まかに次のとおりです: // src/router/index.js import { createRouter, createWebHistory } from 'vue-router' import Layout from '@/layout/index.vue' import Home from '@/views/home/Home.vue' import Test from '@/views/test/Test.vue' const routes = [ { path: '/', component: Layout, children: [{ path: '', component: Home }], }, { path: '/test', component: Layout, children: [{ path: '', component: Test }], }, ] export default createRouter({ history: createWebHistory(), routes, })
7. axios request encapsulation
コマンドを実行npm i axios axios をインストール
import axios from 'axios' // 可以导入element plus 的弹出框代替alert进行交互操作 // create an axios instance const service = axios.create({ baseURL: import.meta.env.VITE_APP_BASEURL, // 使用设置好的全局环境 timeout: 30 * 1000, // request timeout }) // request interceptor service.interceptors.request.use( (config) => { // 此处可以执行处理添加token等逻辑 // config.headers["Authorization"] = getToken(); return config }, (error) => { console.log(error) return Promise.reject(error) } ) // response interceptor service.interceptors.response.use( (response) => { const res = response.data // 根据接口返回参数自行处理 if (res.code !== 200) { if (res.code === 50000) { // 根据状态码自行处理 alert('服务器内部出现异常,请稍后再试') } return Promise.reject(new Error(res.msg || 'Error')) } else { // 调用成功返回数据 return Promise.resolve(res) } }, (error) => { console.log('err' + error) // 出现异常的处理 return Promise.reject(error) } ) export default serviceAPI の管理とメンテナンスを容易にするために、src/ に API を作成できます。API ディレクトリ内のモジュールまたはページごとに個別の JS ファイルを作成します。ここで例を示すには、src/api/home.js というファイルを作成し、そのファイルにコードを書き込みます。
// 引入封装好的 request.js import request from '@/utils/request' export function getList(query) { return request({ url: '/list', method: 'get', params: query, }) }home.vue で
<script setup> import { getList } from '@/api/home.js' const query = { pagenum: 1 } getList(query) .then((res) => { console.log(res) // 调用成功返回的数据 }) .error((err) => { console.log(err) // 调用失败要执行的逻辑 }) </script>
8 を使用します。環境変数関連プロジェクトのルートディレクトリに3つのファイルを作成
.env.production本番環境.env.development
開発環境.env.staging
テスト環境では、次のコードをそれぞれ追加します。異なるコンパイル環境では、パッケージ化時に現在の環境でコードが自動的に実行されます。 <pre class='brush:php;toolbar:false;'># .env.production
VITE_APP_BASEURL=https://www.prod.api/</pre><pre class='brush:php;toolbar:false;'># .env.development
VITE_APP_BASEURL=https://www.test.api/</pre><pre class='brush:php;toolbar:false;'># .env.staging
VITE_APP_BASEURL=https://www.test.api/</pre>
使用:
console.log(import.meta.env.VITE_APP_BASEURL) // 在不同编译环境下控制台会输出不同的url路径
In
package In .json、--mode
オプション フラグを渡して、コマンド <pre class='brush:php;toolbar:false;'> "scripts": {
"dev": "vite",
"build:stage": "vite build --mode staging",
"build:prod": "vite build --mode production",
"serve": "vite preview"
},</pre>
で使用されるデフォルト モードをオーバーライドします。この方法で、運用環境がパッケージ化され、実行されます。
、テスト/プレリリース環境のパッケージ化npm run build:stage
##9.
vite でのエイリアス構成。ルート ディレクトリの config.js ファイルに codeimport { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue()],
resolve: {
alias: [{ find: '@', replacement: resolve(__dirname, 'src') }],
},
base: './',
})
を追加します
以上がvue3 プロジェクトを最初から構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Vue.jsとReactには、それぞれ独自の利点と短所があります。選択するときは、チームのスキル、プロジェクトの規模、パフォーマンス要件を包括的に検討する必要があります。 1)VUE.JSは、学習曲線が低い高速開発や小規模プロジェクトに適していますが、ネストされたオブジェクトはパフォーマンスの問題を引き起こす可能性があります。 2)Reactは、豊富なエコシステムを備えた大規模で複雑なアプリケーションに適していますが、頻繁に更新するとパフォーマンスのボトルネックにつながる可能性があります。

VUE.JSは中小企業から中規模のプロジェクトに適していますが、Reactは大規模なプロジェクトや複雑なアプリケーションシナリオに適しています。 1)Vue.jsは使いやすく、迅速なプロトタイピングや小規模アプリケーションに適しています。 2)Reactは、複雑な州の管理とパフォーマンスの最適化を処理する上でより多くの利点があり、大規模なプロジェクトに適しています。

Vue.jsとReactにはそれぞれ独自の利点があります。Vue.jsは小さなアプリケーションと迅速な発展に適していますが、Reactは大規模なアプリケーションと複雑な国家管理に適しています。 1.Vue.jsは、小さなアプリケーションに適したレスポンシブシステムを通じて自動更新を実現します。 2.反応は、大規模で複雑なアプリケーションに適した仮想DOMおよびDIFFアルゴリズムを使用します。フレームワークを選択するときは、プロジェクトの要件とチームテクノロジースタックを検討する必要があります。

Vue.jsとReactにはそれぞれ独自の利点があり、選択はプロジェクトの要件とチームテクノロジースタックに基づいている必要があります。 1。Vue.jsはコミュニティに優しいものであり、豊富な学習リソースを提供しており、エコシステムには公式チームとコミュニティによってサポートされているVuerouterなどの公式ツールが含まれています。 2. Reactコミュニティは、強力なエコシステムを備えたエンタープライズアプリケーションに偏っており、Facebookとそのコミュニティが提供するサポートを頻繁に更新しています。

NetflixはReactを使用してユーザーエクスペリエンスを強化します。 1)Reactのコンポーネント機能は、Netflixが複雑なUIを管理可能なモジュールに分割するのに役立ちます。 2)Virtual DomはUIの更新を最適化し、パフォーマンスを向上させます。 3)ReduxとGraphQLを組み合わせて、Netflixはアプリケーションのステータスとデータフローを効率的に管理します。

Vue.jsはフロントエンドフレームワークであり、バックエンドフレームワークはサーバー側のロジックを処理するために使用されます。 1)VUE.JSは、ユーザーインターフェイスの構築に焦点を当て、コンポーネントおよびレスポンシブデータバインディングを介して開発を簡素化します。 2)ExpressやDjangoなどのバックエンドフレームワークは、HTTPリクエスト、データベース操作、ビジネスロジックを処理し、サーバーで実行します。

VUE.JSは、開発効率とユーザーエクスペリエンスを向上させるために、フロントエンドテクノロジースタックと密接に統合されています。 1)建設ツール:Webpackおよびロールアップと統合して、モジュール開発を実現します。 2)国家管理:VUEXと統合して、複雑なアプリケーションステータスを管理します。 3)ルーティング:Vuerouterと統合して、単一ページのアプリケーションルーティングを実現します。 4)CSSプリプロセッサ:SASSをサポートし、スタイル開発効率を改善するために少なくなります。

Netflixは、Reactのコンポーネント設計と仮想DOMメカニズムが複雑なインターフェイスと頻繁な更新を効率的に処理できるため、ユーザーインターフェイスを構築するためにReactを選択しました。 1)コンポーネントベースの設計により、Netflixはインターフェイスを管理可能なウィジェットに分解し、開発効率とコード保守性を向上させることができます。 2)仮想DOMメカニズムは、DOM操作を最小化することにより、Netflixユーザーインターフェイスの滑らかさと高性能を保証します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ホットトピック









