如何使用Vue3+Vite+TS快速搭建一套实用的脚手架

下面我将对如何使用Vue3+Vite+TS快速搭建一套实用的脚手架进行详细讲解。

1. Vite简介

Vite是一个由Vue.js作者尤雨溪开发的基于ESM(ES模块)的构建工具,可以快速地搭建现代化的前端开发环境。它不像Webpack那样打包,而是通过利用浏览器原生支持ES模块的能力,直接加载ES模块的源代码,在开发中无需打包就能够快速地启动调试和热更新。

2. Vue3+Vite+TS脚手架搭建步骤

2.1 初始化项目

我们首先需要在电脑上安装Node.js和npm。安装完成后,在终端中输入以下命令来初始化一个新的Vue3项目:

# 全局安装Vue CLI
npm install -g @vue/cli

# 初始化一个新的Vue项目
vue create my-vue-app

然后,进入到my-vue-app目录中,并使用以下命令安装Vite:

cd my-vue-app
npm install -D vite

2.2 配置Vite

接下来,我们需要在项目根目录中创建一个vite.config.js文件并进行一些基本配置,例如:

import { defineConfig } from 'vite'

export default defineConfig({
  base: './',
  server: {
    port: 3000,
  },
  resolve: {
    alias: {
      '@': '/src'
    }
  }
})

这里,我们设置了基础路径,端口号为3000,以及设置了别名@,让我们在组件中可以方便地使用@/代替/src

2.3 添加TypeScript支持

我们可以使用Vue CLI提供的TypeScript模板来快速地添加TypeScript支持。在终端中运行以下命令来添加:

vue add typescript

运行完毕后,我们可以看到src目录下多了一个shims-vue.d.ts文件,这个文件用于描述Vue模块的类型。

2.4 集成Vue3

我们可以使用Vue CLI提供的Vue3模板来搭建一个Vue3项目,只需要在初始化项目时加上--template vue3参数即可:

vue create my-vue-app --template vue3

2.5 集成Vue Router

在终端中运行以下命令来添加Vue Router支持:

npm install vue-router@4.0.0-beta.2

然后,在src目录下创建一个router文件夹,在其中新建一个index.ts文件,添加以下内容:

import { createRouter, createWebHashHistory } from 'vue-router'
import Home from '@/views/Home.vue'

const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home,
  },
]

const router = createRouter({
  history: createWebHashHistory(),
  routes,
})

export default router

这里,我们定义了一个路由表,包含了默认路由/,并将路由器导出为默认模块。

然后,在main.ts文件中引入路由并将其挂载到Vue实例上:

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'

createApp(App).use(router).mount('#app')

2.6 集成Vuex

在终端中运行以下命令来添加Vuex支持:

npm install vuex@next

然后,在src目录下创建一个store文件夹,在其中新建一个index.ts文件,添加以下内容:

import { InjectionKey } from 'vue'
import { createStore, Store } from 'vuex'

export interface State {
  count: number
}

export const key: InjectionKey<Store<State>> = Symbol()

export const store = createStore<State>({
  state() {
    return {
      count: 0,
    }
  },
  mutations: {
    increment(state) {
      state.count++
    },
  },
  actions: {
    increment(context) {
      context.commit('increment')
    },
  },
})

这里,我们定义了一个计数器状态和两个操作状态的mutation和action函数,然后将其封装为一个Vuex Store,并将其导出为默认模块。

接着,在main.ts文件中引入Store并将其挂载到Vue实例上:

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import { key, store } from './store'

createApp(App).use(router).use(store, key).mount('#app')

至此,我们就完成了Vue3+Vite+TypeScript+Vue Router+Vuex的脚手架搭建。

3. 示例说明

示例1:异步组件

我们来看一个异步组件的例子。在src/views目录下,新建一个Async.vue文件,添加以下内容:

<template>
  <div>{{ message }}</div>
</template>

<script lang="ts">
import { ref } from 'vue'

export default {
  name: 'Async',
  setup() {
    const message = ref('')

    setTimeout(() => {
      message.value = 'Hello, Async!'
    }, 2000)

    return {
      message,
    }
  },
}
</script>

这个组件将在2秒后显示一个消息。

然后,在src/router/index.ts中添加路由:

import { createRouter, createWebHashHistory } from 'vue-router'
import Home from '@/views/Home.vue'
const Async = () => import('@/views/Async.vue')

const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home,
  },
  {
    path: '/async',
    name: 'Async',
    component: Async,
  },
]

const router = createRouter({
  history: createWebHashHistory(),
  routes,
})

export default router

在浏览器中访问http://localhost:3000/#/async,就能看到异步组件的效果了。

示例2:使用Ant Design Vue

我们来看一个使用Ant Design Vue的例子。在终端中运行以下命令来安装Ant Design Vue:

npm install ant-design-vue@next -S

然后,在src/main.ts中引入Ant Design Vue组件:

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import { key, store } from './store'
import { Button } from 'ant-design-vue'

import 'ant-design-vue/dist/antd.css'

createApp(App)
  .use(router)
  .use(store, key)
  .use(Button)
  .mount('#app')

现在,在src/views目录下,我们可以创建一个使用Ant Design Vue组件的视图:

<template>
  <div>
    <a-button type="primary" @click="handleClick">{{ count }}</a-button>
  </div>
</template>

<script lang="ts">
import { defineComponent, computed } from 'vue'
import { useStore } from 'vuex'

export default defineComponent({
  name: 'AntdDemo',
  setup() {
    const store = useStore()
    const count = computed(() => store.state.count)

    const handleClick = () => {
      store.dispatch('increment')
    }

    return {
      count,
      handleClick,
    }
  },
})
</script>

<style scoped></style>

这个视图将显示一个按钮和一个计数器。当按钮被点击时,计数器会加1。此时,我们就成功地集成了Ant Design Vue组件。

总结一下,我们在本次攻略中详细介绍了如何使用Vue3+Vite+TS快速搭建一套实用的脚手架,其中包含了初始化项目、配置Vite、添加TypeScript支持、集成Vue3、集成Vue Router、集成Vuex等步骤。并且,我们还提供了两个示例来帮助大家更好地了解如何使用该脚手架。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何使用Vue3+Vite+TS快速搭建一套实用的脚手架 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 前端项目中的Vue、React错误监听

    前端项目中的Vue、React错误监听,是一项非常重要的工作。在开发过程中,难免会出现各种错误,有些错误不及时解决可能会导致应用程序崩溃或无法正常运行。因此,为了尽可能地避免这种情况的发生,在Vue和React项目中及时监听错误,并及时处理和提醒用户是非常必要的。 Vue错误监听的完整攻略: Vue提供了一个全局错误处理函数,可以用来处理项目中的错误,通过在…

    Vue 2023年5月28日
    00
  • vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件

    使用vue-cli 3来集成vue-bootstrap-datetimepicker日期插件,需要使用以下步骤: 步骤一:安装依赖 在命令行中进入项目根目录,然后运行以下命令来安装需要的依赖: npm install vue-bootstrap-datetimepicker –save 步骤二:引入CSS和JS文件 在你的Vue组件之前,需要引入CSS和J…

    Vue 2023年5月29日
    00
  • 解析如何自动化生成vue组件文档

    下面是我给出的“解析如何自动化生成vue组件文档”的完整攻略,包含以下四个步骤: 步骤一:安装依赖 首先,我们需要安装一些必要的依赖: vue-docgen-api:生成 vue 组件的元数据 vue-styleguidist:将 vue 组件元数据输出为文档网站 你可以使用以下命令安装依赖: npm install vue-docgen-api vue-s…

    Vue 2023年5月27日
    00
  • 基于Vue的文字跑马灯组件(npm 组件包)

    这里是针对“基于Vue的文字跑马灯组件(npm 组件包)”的详细攻略: 简介 这个组件是一个可以在Vue项目中使用的文字跑马灯组件,它可以让文字在固定区域内不断滚动显示,并支持设置滚动速度、字体颜色、字号等样式参数。 安装 你可以通过npm来安装这个组件:npm install vue-marquee-text-component 使用方法 在Vue组件中引…

    Vue 2023年5月28日
    00
  • webpack构建vue项目的详细教程(配置篇)

    下面是“webpack构建vue项目的详细教程(配置篇)”的完整攻略: 1. 安装webpack和相关插件 在开始配置webpack之前,需要先安装一些必要的包。可以使用npm进行安装: npm install webpack webpack-cli webpack-dev-server –save-dev 安装webpack、webpack-cli和we…

    Vue 2023年5月27日
    00
  • VUEJS实战之构建基础并渲染出列表(1)

    “VUEJS实战之构建基础并渲染出列表(1)”是一个Vue.js实战教程,主要讲解如何使用Vue.js构建基础并渲染出列表。下面是该教程的完整攻略: 一、环境搭建 首先,我们需要在本地搭建Vue.js的开发环境。具体步骤如下: 安装Node.js和npm; 使用npm安装Vue.js:npm install vue; 在HTML文件中引入Vue.js:&lt…

    Vue 2023年5月27日
    00
  • 手写vite插件教程示例

    首先,我们需要明确几个概念: Vite:一款轻量、快速的 Web 开发构建工具。 插件(Plugin):能够扩展 Vite 的功能,增强开发体验。 下面是手写 Vite 插件的完整攻略: 1. 确定插件需求 在开始编写插件之前,我们要先明确需要实现的功能。可以查看 Vite 的官方插件文档,进行参考和借鉴。例如,我们想要编写一个 Vite 插件来自动添加时间…

    Vue 2023年5月27日
    00
  • element中el-autocomplete的常见用法示例

    当使用 Vue.js 和 Element UI 搭建网站时,使用 el-autocomplete 组件可以实现一个自动完成的输入框。以下是 el-autocomplete 的常见用法示例: 基本用法 使用 v-model 在父组件中绑定输入框的值,使用 fetchSuggestions 方法获取自动完成的选项列表: <template> <…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部