如何使用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日

相关文章

  • vuex在vite&vue3中的简单使用说明

    下面是“vuex在vite&vue3中的简单使用说明”的完整攻略: Vue3项目中使用Vuex 在Vue3项目中使用Vuex需要先安装vuex: npm install vuex –save 然后在src目录下新建store目录,在store目录下新建index.js文件: import { createStore } from ‘vuex’ co…

    Vue 2023年5月28日
    00
  • 在VUE style中使用data中的变量的方法

    在Vue的style中使用组件中的数据变量可以通过:style绑定对象来实现。具体方法如下: 定义组件时,定义组件中需要的数据变量 Vue.component(‘my-component’, { data: function () { return { color: ‘red’ } }, template: ‘<div :style="{ c…

    Vue 2023年5月29日
    00
  • vue项目及axios请求获取数据方式

    Vue.js 是一款流行的前端框架,可以帮助前端开发者构建复杂的单页应用程序。使用 axios 可以方便地获取和传递数据。本文将提供关于 Vue.js 项目及 axios 请求获取数据的完整攻略。 安装 Axios Axios 是一个现代的基于 Promise 的 HTTP 请求库,它用于浏览器和 Node.js。在 Vue.js 项目中使用 Axios,首…

    Vue 2023年5月28日
    00
  • vue router权限管理实现不同角色显示不同路由

    实现权限管理需要以下步骤: 1. 安装Vue Router npm install vue-router –save 2. 配置路由 在router/index.js文件中,定义路由和对应的组件,并为每个路由定义一个meta字段,用于存放该路由需要的权限。 import Vue from ‘vue’ import Router from ‘vue-rout…

    Vue 2023年5月27日
    00
  • Vue 动画效果、过渡效果的示例代码

    下面是详细讲解Vue动画效果、过渡效果的示例代码的攻略。 准备工作 在开始讲解之前,需要保证已经安装好Vue.js框架。另外,为了方便案例演示,我们需要借助Vue的官方库vue-router完成路由跳转。 首先,我们需要创建Vue项目,在项目中安装vue-router: // 创建Vue项目 vue create my-project // 安装vue-ro…

    Vue 2023年5月27日
    00
  • java实现图书检索系统

    Java实现图书检索系统 系统概述 本系统是基于Java语言实现的图书检索系统,目的是为了方便用户快速查找所需图书,并提供相关的图书信息展示和操作。 该系统主要包括三个模块:用户模块、图书模块和管理模块。 用户模块:提供用户注册、登录、个人信息维护等功能。 图书模块:提供图书检索、借阅、归还、评论等功能。 管理模块:提供对图书、用户等信息的管理和操作。 系统…

    Vue 2023年5月28日
    00
  • vue封装一个简单的div框选时间的组件的方法

    下面是详细讲解“vue封装一个简单的div框选时间的组件的方法”的完整攻略和示范代码。 1. 设计组件的props和data 首先,我们需要考虑这个div框选时间的组件需要哪些props和data。 开始时间和结束时间的默认值 可选的开始时间和结束时间范围,一般情况下为当前时间到未来若干天 组件的宽度和高度 根据上述内容,我们可以设计出如下的props和da…

    Vue 2023年5月29日
    00
  • Vue.js对象转换实例

    Vue.js对象转换实例的攻略如下: 1. 什么是Vue.js对象转换实例? 在Vue.js中,我们可以将JavaScript对象转换成Vue实例,即将一个普通的JavaScript对象传递给Vue构造器,创建一个Vue实例,从而可以在模板中使用。 2. Vue.js对象转换实例的使用方法 Step 1. 引入Vue.js <script src=&q…

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