Vite创建Vue3项目之Typescript + Vuex + Vue-router

项目构建

  • 使用 npm
npm init @vitejs/app
  • 使用yarn
yarn create @vitejs/app

基础知识

1、项目风格
  • 文件名 大小写、单复数 都根据自己的编码风格定义,或根据预定俗成的规则选择

  • 在Vue项目中使用 I m p o r t \color{green}Import Import 关键字导入组件时文件名字必须转换成小写,避免热更新失效

  • 编码的格式化风格和语法检测大多会借助其它插件

  • 不知道你看没看过官方Vue有个代码风格指南 点击官网

  • 其中有些错误的代码风格可能会带来未知的错误所以官方除了个 风格语法检测插件eslint-plugin-vue点击官网

    • Eslint 进入官网 : 主要用于语法检测 ,配置文件 .eslintrc.js .eslintignore 过滤检测文件类型

    • Prettire 进入官网 :主要用于美化代码格式

Idea 开发工具 可以配置Prettire插件


2、别名配置

我看到过很多不一样的别名配置都可以使用,选一个自己喜欢的即可,没必要纠结于此。

import {defineConfig} from 'vite'
import vue from '@vitejs/plugin-vue'
import {resolve} from "path";

export default defineConfig({
    resolve: {
        alias: {
            "@": resolve(__dirname, "src")}
    },
    plugins: [vue()],

})

3、TypeScript 文件识别别名配置

添加属性 tsconfig.json

{
  "compilerOptions": {
	// .....
	"baseUrl": ".",
    "paths": {
      "@/*": [
        "src/*"
      ]
   }
  }
}

4、xxx.d.ts 类型文件说明

因为 ts 是强类型的 js语言集合,如果不通过ts的语法检测会报错。 但是并不会影响系统的执行
这种类型文件在Ts中非常常见,是类型文件 ,所以项目通常会配置node 环境的类型文件环境

# 
npm install @types/node -D

在我们项目中因为使用的是TypeScript 所以避免不了要手写这样的文件,所以通常我们都会新建一个文件夹专门存放

  • 新建文件夹src/ types/ * 建在哪里都可以,你能找到就行
5、配置自定义xxx.d.ts 类型文件

在这里插入图片描述

路径从根目录出发,如果你的文件夹创建在 src目录下则不需要配置, Vite已经配置好了
所以我一般就会配置在src 文件下当做全局类型文件


6、在我们开发项目时也会使用的其它Vite插件, 这里推荐几个
插件名字功能说明
unplugin-vue-components使用说明Vue 的按需组件自动导入使用组件时不需要import
vite-plugin-svg-icons用于生成 svg 精灵图。
@vitejs/plugin-vue-jsjsx、tsx
vite-plugin-mock虚拟数据生成可以反馈给浏览器数据的mock
还有打包压缩等插件就不列举了自己找吧

集成 Vuex 和 Vue-router

1、环境搭建
#  @next  最新版本
npm install vuex@next --save

npm install  vue-router@next --save

2、Vuex入口,增添文件 src/ store/ index.ts
import {createStore} from 'vuex'

const store = createStore({
    state: {},
    getters:{},
    mutations: {},
    actions: {},
})
export default store

3、Vue-router入口 ,增添文件 src/ router/ index.ts
import {createRouter, createWebHashHistory, RouteRecordRaw} from "vue-router"

const routes:Array<RouteRecordRaw> = [
    {
        path: '/',
        name: 'Login',
        component: () => import('../views/Login.vue')
    },
    {
        path: "/404",
        name: "NotFound",
        component: () => import("../views/404.vue")
    },
    {
        path: "/:pathMatch(.*)*",
        redirect:"/404"

    },
]

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

export default router;


4、将Vuex和router注册到全局,修改文件 src/ main.ts
import { createApp } from 'vue'
import App from './App.vue'
import router from "./router"
import store from "./store"

const app=createApp(App);
app.use(store)
	.use(router)
	.mount('#app')

集成 Less | Sass 样式预处理器

官网介绍:Vite 也同时提供了对 .scss, .sass, .less, .styl 和 .stylus 文件的内置支持。
没有必要为他们安装特定的 vite 插件如less-loader、scss-loader等,但相应的预处理器依赖本身必须安装


1、环境搭建
# .less  
npm install -D less

# .scss and .sass
npm install -D sass

# .styl and .stylus
npm install -D stylus
2、添加全局样式文件, src/ style/ vars.less

预留空白根据自己需要填写


3、配置,修改根目录下文件 vite.config.ts
import {defineConfig} from 'vite'
import vue from '@vitejs/plugin-vue'
import {resolve} from "path";

export default defineConfig({
    base: "./",
    resolve: {
        alias: {
            "@": resolve(__dirname, "./src")
        }
    },
    css: {
        preprocessorOptions: {
        	// scss | less | ...
            less: {
                // 全局样式,存放一些主题等变量
                additionalData: `@import "./src/style/vars.less";`
            }
        }
    },
    plugins: [vue()],
})

我不是前端人员有错误希望指正

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于使用 Vite + Vue3 + TypeScript + Pinia + Vue Router + Axios + SCSS 并自动导入 API 的设置,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了 Node.js,并且版本大于等于 12.0.0。 2. 创建一个新的 Vue 项目,可以使用 Vue CLI 或者手动创建一个空文件夹。 3. 在项目根目录下,打开终端并执行以下命令安装 Vite: ```bash npm init vite@latest ``` 按照提示选择你的项目配置,包括选择 Vue 3、TypeScript 和其他选项。 4. 进入项目目录并安装依赖: ```bash cd your-project-name npm install ``` 5. 安装 Pinia 插件: ```bash npm install pinia ``` 6. 创建一个 `src/store` 目录,并在其中创建 `index.ts` 文件,用于定义和导出你的 Pinia store。 ```typescript // src/store/index.ts import { createPinia } from 'pinia' export const store = createPinia() // 可以在这里定义你的 store 模块 ``` 7. 在项目根目录下创建 `src/api` 目录,用于存放 API 请求相关的文件。 8. 在 `src/api` 目录下创建一个 `index.ts` 文件,用于自动导入所有 API 文件。 ```typescript // src/api/index.ts const modules = import.meta.globEager('./*.ts') const apis: any = {} for (const path in modules) { if (path !== './index.ts') { const moduleName = path.replace(/^.\/|\.ts$/g, '') apis[moduleName] = modules[path].default } } export default apis ``` 这样,你就可以在 `src/api` 目录下创建各种 API 请求的文件,例如 `user.ts`: ```typescript // src/api/user.ts import axios from 'axios' export function getUser(id: number) { return axios.get(`/api/user/${id}`) } ``` 然后,在你的组件中使用自动导入的 API: ```typescript import { defineComponent, ref } from 'vue' import { useUserStore } from '@/store' import apis from '@/api' export default defineComponent({ setup() { const userStore = useUserStore() const userId = ref(1) const fetchUser = async () => { const response = await apis.user.getUser(userId.value) userStore.setUser(response.data) } return { userId, fetchUser, } }, }) ``` 以上就是使用 Vite + Vue3 + TypeScript + Pinia + Vue Router + Axios + SCSS 并自动导入 API 的基本设置。你可以根据自己的需求进一步配置和扩展。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值