从零搭建一个vite+vue3+ts规范基础项目(搭建过程问题小结)

首先需要明确,要搭建一个Vite + Vue3 + TypeScript的项目,需要考虑以下步骤:

  1. 安装NodeJS和npm:如果你的机器上没有安装NodeJS和npm,请先到Node.js官网(https://nodejs.org/en/)下载安装后,打开cmd或者终端,输入node -v和npm -v,查看是否安装成功。

  2. 初始化项目:打开命令行,创建一个新的项目文件夹,使用以下命令初始化一个新的npm项目。这里,我们以myproject为例。

mkdir myproject
cd myproject
npm init

在npm init命令执行后,根据提示填写各项基本信息,然后按Enter键即可。

  1. 安装Vite:进入项目根目录,运行以下命令来安装vite。
npm install vite --save-dev

安装后会自动在项目根目录下生成一个package.json文件。

  1. 安装Vue 3:运行以下命令来安装Vue 3。
npm install vue@next --save-dev
  1. 安装TypeScript:运行以下命令来安装TypeScript。
npm install typescript --save-dev
  1. 配置Vite:在项目根目录下新建一个vite.config.ts文件,输入以下代码。
// vite.config.ts

export default {
    root: './src',
    build: {
        outDir: '../dist'
    }
}

这里的配置含义是:

  • 指定项目的根目录为“./src”;
  • 指定编译后的代码输出目录为“../dist”。

  • 配置TypeScript:在项目根目录下新建一个tsconfig.json文件,输入以下代码。

{
    "compilerOptions": {
        "target": "es6",
        "module": "esnext",
        "moduleResolution": "node",
        "esModuleInterop": true,
        "allowJs": true,
        "sourceMap": true,
        "strict": true,
        "jsx": "preserve",
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true,
        "resolveJsonModule": true,
        "noImplicitAny": false,
        "noImplicitThis": false,
        "lib": [ "dom", "esnext" ]
    },
    "exclude": [
        "node_modules",
        "dist"
    ]
}

这里的配置含义是:

  • 编译的目标是ES6;
  • 模块采用ES6;
  • ES模块导入的解析规则是Node的方式;
  • 允许导入CommonJS模块;
  • 生成source map文件;
  • 开启严格模式;
  • 保留Jsx代码;
  • 允许使用实验性的装饰器(decorators);
  • 生成descriptor元数据;
  • 支持解析json文件;
  • 允许不声明的变量为任何类型;
  • 允许不声明this为any类型;
  • 引用的库为DOM和ESNext。

  • 安装常用模块:运行以下命令安装常用的依赖项,包括vue-router、vuex、axios、lodash和dayjs。

npm install vue-router vuex axios lodash dayjs --save-dev

至此,我们已经完成了一个基础的vite+vue3+ts规范项目搭建。

示例一:使用VueRouter

在安装完vue-router后,在main.ts文件中进行初始化:

// main.ts

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

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

可以看到,这里我们使用了createApp创建Vue 3的实例,并用use方法将VueRouter插件引入,最后用mount方法挂载Vue实例。

在router/index.ts文件中,我们可以初始化VueRouter:

// router/index.ts

import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'

const routes: RouteRecordRaw[] = [
    {
        path: '/',
        name: 'Home',
        component: () => import('@/views/Home.vue')
    },
    {
        path: '/about',
        name: 'About',
        component: () => import('@/views/About.vue')
    }
]

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

export default router

这里创建了两个路由:'/'和'/about',分别对应Home和About组件。

示例二:使用Vuex

在安装完vuex后,在main.ts文件中进行初始化:

// main.ts

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

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

可以看到,这里我们使用了createApp创建Vue 3的实例,并用use方法将Vuex插件引入,最后用mount方法挂载Vue实例。

在store/index.ts文件中,我们可以初始化Vuex store:

// store/index.ts

import { createStore } from 'vuex'

interface RootState {
    count: number
}

const store = createStore<RootState>({
    state: {
        count: 0
    },
    mutations: {
        increment (state) {
            state.count++
        }
    }
})

export default store

这里创建了一个state对象,其中包含一个状态变量count和一个mutation——increment,用于对count进行加1的操作。

以上为基础的搭建过程和两个示例的使用,另外,在实际的开发过程中,还需要考虑其他的方面,比如代码分割、性能优化、压缩等问题,在实际中需要针对不同的情况和项目进行配置和优化。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:从零搭建一个vite+vue3+ts规范基础项目(搭建过程问题小结) - Python技术站

(0)
上一篇 2023年6月9日
下一篇 2023年6月9日

相关文章

  • 用纯CSS实现镂空效果的示例代码

    下面是“用纯CSS实现镂空效果的示例代码”的完整攻略。 什么是镂空效果? 镂空效果即在元素中间空缺一块区域,使其呈现“空心”的效果。通常应用于图标、按钮等设计元素中。 实现方法 实现镂空效果有多种方法,其中一种是使用CSS的:before和:after伪元素,再设置背景为透明,并在伪元素上覆盖一个实心的图形,就可以让原始元素呈现空心状态。 示例1:矩形按钮的…

    css 2023年6月9日
    00
  • CSS长度单位 px和pt的区别

    CSS长度单位 px 和 pt 是网页设计中常用的单位,它们用于指定元素的尺寸和位置。本文将详细讲解 px 和 pt 的区别,包括基本概念、使用方法、注意事项和示例说明。 1. 基本概念 px 和 pt 都是 CSS 中常用的长度单位,它们用于指定元素的尺寸和位置。其中,px 是像素单位,pt 是点单位。像素是屏幕上的最小显示单位,点是印刷中的最小显示单位。…

    css 2023年5月18日
    00
  • 纯CSS实现的无侵入的卡盘(幻灯片)

    让我为您详细讲解纯CSS实现的无侵入的卡盘(幻灯片)的完整攻略。 什么是纯CSS实现的无侵入的卡盘(幻灯片)? 卡盘,又称幻灯片,是一种常见的展示图片或文章的方式。在网页设计中,实现一款简单易用的卡盘,对于提升用户体验和页面效果很有帮助。使用CSS技术可以实现轻松美观的卡盘效果,而不用繁琐地调用JS等其他技术。 实现无侵入的卡盘步骤 以下是实现无侵入的卡盘的…

    css 2023年6月10日
    00
  • HTML+CSS+JS实现图片的瀑布流布局的示例代码

    实现一种图片展示效果的瀑布流布局,需要利用HTML+CSS+JS技术来实现,可以通过如下步骤来完成: 布局HTML结构 首先需要按照瀑布流布局的思想,将图片按照顺序排列并分配到各列中。HTML结构可以简单地使用一个<ul>列表来实现, li 元素则用来放置每个图片的实例。示例代码如下: <ul id="image-list&quo…

    css 2023年6月13日
    00
  • CSS为指定的input文本框添加背景

    为了给你更详细的讲解,以下是关于如何使用CSS为指定的input文本框添加背景的完整攻略: 1. 使用background属性添加背景 在CSS中,可以使用background属性来添加背景图像、颜色或其他背景相关属性。要为指定的input文本框添加背景,可以使用如下代码: input[type=text] { background: #f2f2f2 url…

    css 2023年6月9日
    00
  • jQuery实现字体颜色渐变效果的方法

    关于“jQuery实现字体颜色渐变效果的方法”的完整攻略,我可以这么说: 一、前言 在网页设计中,颜色渐变(Color Gradient)是一种流行的设计元素,可以使网页更加动态和吸引人。而使用jQuery来实现颜色渐变效果,则可以更加灵活和易用。 二、jQuery实现字体颜色渐变效果的方法 实现字体颜色渐变效果的方法,主要可以通过jQuery的animat…

    css 2023年6月11日
    00
  • 分享30个新鲜的CSS3打造的精美绚丽效果(附演示下载)

    关于“分享30个新鲜的CSS3打造的精美绚丽效果(附演示下载)”的完整攻略,可以分为以下几个部分进行说明: 标题 首先,需要给这篇攻略一个合适的标题,比如:“CSS3实现精美炫酷效果的30个案例分享及代码解析”,这样可以更好地表达文章的主题和内容。 简介 接下来需要写一份简介,简要介绍一下这篇攻略的内容和意义,比如:“本篇攻略将分享30个采用CSS3技术实现…

    css 2023年6月10日
    00
  • jQuery实现广告条滚动效果

    实现广告条滚动效果的方法有很多,下面我们介绍一种使用jQuery实现的方法。 步骤1:HTML结构 首先,在HTML文件中创建一个包含部分广告的容器,它可以包含多个广告。例如: <div class="ad-container"> <div class="ad-item">广告1</div…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部