vue3+ts+vite+pinia+element-plus搭建一个项目

2024-08-21 00:04

本文主要是介绍vue3+ts+vite+pinia+element-plus搭建一个项目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

创建一个基于Vue 3、TypeScript、Vite、Pinia和Element Plus的项目是一个现代化的前端开发流程,这种配置通常用于构建轻量级、快速和模块化的单页应用程序(SPA)。下面是一个简单的介绍:

1. Vue 3

是Vue.js的最新主要版本,提供了Composition API、更好的TypeScript支持、自定义渲染器等功能。

2. TypeScript

是JavaScript的一个超集,添加了类型系统和基于类的面向对象编程。它能够提供更好的代码编辑支持和更早发现运行时错误,特别是在大型项目中。

3. Vite

是一个现代的前端构建工具,它以原生ESM(ECMAScript Modules)方式提供服务,具有快速的冷启动、即时热更新和高效的构建性能。

4. Pinia

是Vue.js的状态管理库,用于跨组件共享状态。与Vuex相比,Pinia提供更简洁的API,易于理解和使用。

5. Element Plus

是基于Vue 3的UI组件库,提供了丰富的组件,可以快速构建美观的界面。

搭建步骤

1. 初始化项目

使用Vite创建一个新的Vue 3项目,并安装依赖。

npm create vite@latest my-project -- --template vue-ts
cd my-project
npm install
2. 安装Pinia

用于状态管理。

npm install pinia
3. 安装Element Plus作为UI框架
 npm install element-plus --save
4. 配置Pinia状态管理
 // src/stores/index.tsimport { defineStore } from 'pinia';export const useStore = defineStore('main', {state: () => {return {// state};},actions: {// actions},getters: {// getters},});
5. 集成Element Plus
   // src/main.tsimport { createApp } from 'vue';import App from './App.vue';import ElementPlus from 'element-plus';import 'element-plus/dist/index.css';import { createPinia } from 'pinia';import { useStore } from './stores';const app = createApp(App);app.use(ElementPlus);app.use(createPinia());app.mount('#app');
6. 编写组件
7.多环境配置

在项目根目录下创建 .env 文件,例如 .env.development.env.production,配置不同的环境变量。

使用 Vite 的环境变量功能,可以在代码中使用 import.meta.env.VITE_* 来获取环境变量。

在构建时,通过设置环境标志来选择对应的环境配置。

8. 运行项目
npm run dev
9.封装网络请求

   api/request.ts

import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse, AxiosError } from 'axios';// 创建axios实例
const service: AxiosInstance = axios.create({baseURL: process.env.VUE_APP_API_BASE_URL, // API的base_urltimeout: 5000 // 请求超时时间
});// 请求拦截器
service.interceptors.request.use((config: AxiosRequestConfig) => {// 在这里可以设置loading状态// ...return config;},(error: any) => {// 请求错误处理// ...return Promise.reject(error);}
);// 响应拦截器
service.interceptors.response.use((response: AxiosResponse) => {// 响应状态码判断if (response.status === 200) {// 在这里可以关闭loading状态// ...return response.data;}// 如果返回的状态码不是200,说明接口出现异常// ...return Promise.reject(response);},(error: AxiosError) => {// 响应错误处理// ...return Promise.reject(error);}
);export default service;
import service from '@/api/request.ts';export default {data() {return {// ... 定义数据属性,比如loading状态和错误信息等};},methods: {async fetchData() {this.loading = true; // 开启loading状态try {const response = await service.get('/path/to/endpoint');// 处理响应数据// ...} catch (error) {// 处理错误// ...} finally {this.loading = false; // 关闭loading状态}}}
};

这样就搭建了一个基础的Vue 3项目,集成了TypeScript、Vite、Pinia和Element Plus。开发人员可以在此基础上继续开发,构建完整的应用程序。

这篇关于vue3+ts+vite+pinia+element-plus搭建一个项目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1091556

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

【 html+css 绚丽Loading 】000046 三才归元阵

前言:哈喽,大家好,今天给大家分享html+css 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、信息💡1.简介:💡2.外观描述:💡3.使用方式:💡4.战斗方式:💡5.提升:💡6.传说: 📚三、源代码,上代码,可以直接复制使用🎥效果🗂️目录✍️

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能