Heim > Web-Frontend > View.js > vue3+vite2+ts4 Build-Projektumgebungsspezifikationen

vue3+vite2+ts4 Build-Projektumgebungsspezifikationen

青灯夜游
Freigeben: 2022-04-25 10:40:01
nach vorne
2850 Leute haben es durchsucht

Dieser Artikel stellt Ihnen eine Reihe standardisierter vue3+vite2+ts4-Front-End-Engineering-Projektumgebungen vor. Ich hoffe, dass er für alle hilfreich sein wird!

vue3+vite2+ts4 Build-Projektumgebungsspezifikationen

Eine standardisierte vue3+vite2+ts4-Front-End-Engineering-Projektumgebung https://webvueblog.github.io/vue3-vite2-ts4/

(Lernvideo-Sharing: vuejs-Tutorial)

Vue 3 + Typescript + Vite

vue3-vite2-ts4

npm init @vitejs/app
vue
vue-ts
npm install
npm run dev
Nach dem Login kopieren

vue3+vite2+ts4 Build-Projektumgebungsspezifikationen

Die Verzeichnisstruktur ist wie folgt

├── public              静态资源
├── src
│   ├── assets           资源目录(图片、less、css等)
│   ├── components       项目组件
│   ├── App.vue          主应用
│   ├── env.d.ts         全局声明
│   └── main.ts          主入口
├── .gitignore           git忽略配置
├── index.html           模板文件
├── package.json        依赖包/运行脚本配置文件
├── README.md
├── tsconfig.json        ts配置文件
├── tsconfig.node.json   ts配置文件
└── vite.config.ts       vite配置
Nach dem Login kopieren

Die Rolle jedes Verzeichnisses wird später erwähnt

├── src
│   ├── router           路由配置
│   ├── stores           状态管理
│   ├── typings          ts公共类型
│   ├── utils            工具类函数封装
│   └── views            页面视图
Nach dem Login kopieren

Das Pfadmodul wird zur Angabe des Analysepfadbedarfs verwendet muss zuerst installiert werden@type/node

npm install @types/node --save-dev
Nach dem Login kopieren

Packaging-Funktion

build: {
      outDir: 'dist',   // 指定打包路径,默认为项目根目录下的 dist 目录
      terserOptions: {
          compress: {
              keep_infinity: true,  // 防止 Infinity 被压缩成 1/0,这可能会导致 Chrome 上的性能问题
              drop_console: true,   // 生产环境去除 console
              drop_debugger: true   // 生产环境去除 debugger
          },
      },
      chunkSizeWarningLimit: 1500   // chunk 大小警告的限制(以 kbs 为单位)
}
Nach dem Login kopieren

Zugriff auf Codespezifikationen

ESlint wird als JS-Linter-Tool der nächsten Generation bezeichnet, das JS-Code in einen abstrakten AST-Syntaxbaum analysieren und dann erkennen kann, ob das AST hält sich an die festgelegten Regeln.

yarn add eslint @typescript-eslint/parser @typescript/eslint-plugin eslint-plugin-vue
Nach dem Login kopieren

TypeScirpt hat offiziell beschlossen, ESLint vollständig als Code-Inspektionstool zu übernehmen und ein neues Projekt typescript-eslint erstellt, das einen TypeScript-Dateiparser @typescript-eslint/parser und zugehörige Konfigurationsoptionen @typescript-eslint/eslint-plugin usw. bereitstellt .

Verwenden Sie scss, um die grammatikalischen Fähigkeiten von CSS zu verbessern.

yarn add sass
yarn add stylelint
yarn add stylelint-scss
Nach dem Login kopieren

Zugriff auf die Naive-UI-Bibliothek /zh-CN/os-theme)

Mit Vue-Router verbinden

npm install vue-router --save
Nach dem Login kopieren
import {
    createRouter, createWebHashHistory, RouteRecordRaw,
} from 'vue-router'

const routes: Array<RouteRecordRaw> = [
    { path: &#39;/&#39;, name: &#39;Home&#39;, component: () => import(&#39;views/home/index.vue&#39;)}
]

const router = createRouter({
    history: createWebHashHistory(),    // history 模式则使用 createWebHistory()
    routes,
})

export default router
Nach dem Login kopieren
import { createApp } from &#39;vue&#39;
import App from &#39;./App.vue&#39;
import router from &#39;./router/index&#39;

const app = createApp(App as any)
app.use(router)
Nach dem Login kopieren
Mit dem Statusverwaltungstool pinia verbinden

pinia ist eine leichtgewichtige Statusverwaltungsbibliothek

npm install pinia --save
Nach dem Login kopieren
Einführung

Vorstellen

import { createPinia } from &#39;pinia&#39;

app.use(createPinia())
Nach dem Login kopieren
in main.ts

Erstellen Sie eine neue counters.ts-Datei unter src/stores

import { defineStore } from &#39;pinia&#39;

export const useCounterStore = defineStore(&#39;counter&#39;, {
    state: () => {
        return {
            count: 0
        }
    },
    getters: {
        count() {
            return this.count
        }
    },
    actions: {
        increment() {
            this.count++
        }
    }
})
Nach dem Login kopieren
import { defineStore } from &#39;pinia&#39;

export const useCounterStore = defineStore(&#39;counter&#39;, () => {
    const count = ref(0)
    function increment() {
      count.value++
    }

    return { count, increment }
})
Nach dem Login kopieren
<script setup>
    import { useCounterStore } from &#39;@/stores/counter&#39;

    const counter = useCounterStore()
</script>
<template>
    <div @click="counter.increment()">
        {{ counter.count }}
    </div>
</template>
Nach dem Login kopieren
const counter = useCounterStore()
const { count } = counter

<div @click="counter.increment()">{{ count }}</div>
Nach dem Login kopieren

pinia stellt die StoreToRefs-Methode sorgfältig zur Verfügung, damit wir den Spaß am Dekonstruieren genießen können:

const { count } = storeToRefs(counter)
Nach dem Login kopieren

Verbinden Sie sich mit der Diagrammbibliothek echarts5

Installation & Einführung

npm install echarts --save
Nach dem Login kopieren
Erstellen Sie eine neue echarts.ts unter src/utils/, um die Komponenten vorzustellen, die wir verwenden müssen

import * as echarts from &#39;echarts/core&#39;
import {
    BarChart,
    // 系列类型的定义后缀都为 SeriesOption
    BarSeriesOption,
    // LineChart,
    LineSeriesOption
} from &#39;echarts/charts&#39;
import {
    TitleComponent,
    // 组件类型的定义后缀都为 ComponentOption
    TitleComponentOption,
    TooltipComponent,
    TooltipComponentOption,
    GridComponent,
    GridComponentOption,
    // 数据集组件
    DatasetComponent,
    DatasetComponentOption,
    // 内置数据转换器组件 (filter, sort)
    TransformComponent,
    LegendComponent
} from &#39;echarts/components&#39;
import { LabelLayout, UniversalTransition } from &#39;echarts/features&#39;
import { CanvasRenderer } from &#39;echarts/renderers&#39;

// 通过 ComposeOption 来组合出一个只有必须组件和图表的 Option 类型
export type ECOption = echarts.ComposeOption<
    | BarSeriesOption
    | LineSeriesOption
    | TitleComponentOption
    | TooltipComponentOption
    | GridComponentOption
    | DatasetComponentOption
>

// 注册必须的组件
echarts.use([
    TitleComponent,
    TooltipComponent,
    GridComponent,
    DatasetComponent,
    TransformComponent,
    BarChart,
    LabelLayout,
    UniversalTransition,
    CanvasRenderer,
    LegendComponent
])

// eslint-disable-next-line no-unused-vars
const option: ECOption = {
    // ...
}

export const $echarts = echarts
Nach dem Login kopieren

Dann können Sie sie auf der Seite verwenden:

<script setup>
    import { onMounted } from &#39;vue&#39;
    import { $echarts, ECOption } from &#39;@/utils/echarts&#39;

    onMounted(() => {
        // 测试echarts的引入
        const ele = document.getElementById(&#39;echarts&#39;) as HTMLCanvasElement
        const myChart = $echarts.init(ele)
        const option: ECOption = {
            title: {
                text: &#39;ECharts 入门示例&#39;
            },
            tooltip: {},
            legend: {
                data: [&#39;销量&#39;]
            },
            xAxis: {
                data: [&#39;衬衫&#39;, &#39;羊毛衫&#39;, &#39;雪纺衫&#39;, &#39;裤子&#39;, &#39;高跟鞋&#39;, &#39;袜子&#39;]
            },
            yAxis: {},
            series: [
                {
                    name: &#39;销量&#39;,
                    type: &#39;bar&#39;,
                    data: [5, 20, 36, 10, 10, 20]
                }
            ]
        }     
</script>
Nach dem Login kopieren

Konfigurieren Sie die einheitliche Axios-Verarbeitung

Installation & Einführung von

npm install axios --save
Nach dem Login kopieren
Screenshot:

(Lernvideo-Sharing:

Web-Frontend-Entwicklungvue3+vite2+ts4 Build-Projektumgebungsspezifikationen,

Einführung in die Programmierung

)

Das obige ist der detaillierte Inhalt vonvue3+vite2+ts4 Build-Projektumgebungsspezifikationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
vue
Quelle:juejin.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage