当前位置: 首页 > news >正文

vue3创建vite项目

一、创建vue3 vite项目:

命令行创建:npm create vite@latest vue3-tdly-demo -- --template vue

(1)先进入项目文件夹,cd vue3-tdly-demo

(2)之后执行, npm install

(3)最后运行,npm run dev

将main.js文件内容改成如下:

import { createApp } from 'vue'
import App from './App.vue'const app = createApp(App);app.mount('#app');

设置别名:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path';// https://vitejs.dev/config/
export default defineConfig({plugins: [vue()],// 添加别名resolve:{alias:[{find:"@",replacement: path.resolve(__dirname,'src')},{find:'components',replacement: path.resolve(__dirname,'src/components')}]}
})

二、项目创建后下载必要依赖:

npm install @arcgis/core (ArcGIS 依赖)

1、router依赖

命令行:npm install vue-router@4 --save

src文件夹下创建router文件夹,并在该文件夹下创建index.js文件,文件中引入以下内容

import {createRouter, createWebHashHistory} from "vue-router";// 制定路由规则
const routes = [{path:'/',name:'main',component: () => import("@/views/Main.vue"),},{path:'/home',name:'home',component: () => import("@/views/home/Home.vue"),}
];/**创建路由 */
const router = createRouter({// 设置路由模式 history: createWebHashHistory(),routes,
});export default router;

在main.js主文件中引入以下内容

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css'const app = createApp(App);app.use(router);
app.use(ElementPlus);app.mount('#app');

注意:这是创建vue项目,不是vite项目

如果报错如下:

E:\VSWorkSpace\vue3-tdly-demo\src\views\home\home.vue1:1  error  Component name "home" should always be multi-word  vue/multi-word-component-names

解决方法:

vue.config.js 文件中修改如下添加标红代码:

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({transpileDependencies: true,lintOnSave: false
})

2、element-plus依赖 

官网:https://element-plus.org/zh-CN/

命令行:npm install element-plus --save

在main.js主文件中引入以下内容

import { createApp } from 'vue'
import App from './App.vue'
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css'const app = createApp(App);app.use(ElementPlus);app.mount('#app');

自动导入需要安装插件:

命令行:npm install -D unplugin-vue-components unplugin-auto-import

修改vite.config.js文件内容:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path';
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'// https://vitejs.dev/config/
export default defineConfig({plugins: [vue(),// element-plus自动导入AutoImport({resolvers: [ElementPlusResolver()],}),Components({resolvers: [ElementPlusResolver()],}),],// 添加别名resolve:{alias:[{find:"@",replacement: path.resolve(__dirname,'src')},{find:'components',replacement: path.resolve(__dirname,'src/components')}]}
})

注意:

// 使用自动导入无需在main.js中引入如下文件

//import ElementPlus from 'element-plus';

//import 'element-plus/dist/index.css'

3、less依赖

命令行:

npm install less --save

使用:

<style lang="less" scoped>******
</style>

4、@element-plus/icons依赖

命令行:

npm install @element-plus/icons --save

在main.js配置如下:

import { createApp } from 'vue'
import App from './App.vue'
import router from '@/router'
// 使用自动导入无需在main.js中引入如下文件
//import ElementPlus from 'element-plus';
//import 'element-plus/dist/index.css'
//图标
import * as ElementPlusIconsVue from '@element-plus/icons-vue';const app = createApp(App);app.use(router)
//app.use(ElementPlus)for(const [key,componemt] of Object.entries(ElementPlusIconsVue)){app.component(key,componemt);
}app.mount('#app');

5、pinia依赖 

官网:简介 | Pinia

命令行:npm install pinia -D

在main.js引入pinia:

import { createApp } from 'vue'
import App from './App.vue'
import router from '@/router'
// 使用自动导入无需在main.js中引入如下文件
//import ElementPlus from 'element-plus';
//import 'element-plus/dist/index.css'
//图标
import * as ElementPlusIconsVue from '@element-plus/icons-vue';
import {createPinia} from 'pinia'const pinia = createPinia();const app = createApp(App);app.use(pinia)
app.use(router);
//app.use(ElementPlus)for(const [key,componemt] of Object.entries(ElementPlusIconsVue)){app.component(key,componemt);
};app.mount('#app');

src文件夹下新建stores文件夹,并在该文件夹下创建index.js文件,内容如下:

import {defineStore} from 'pinia';
import {ref} from "vue";function initState(){return {// 根据需要进行属性的增加和修改isCollapse:false,}
}export const useAllDataStore = defineStore("allData",() => {// ref state属性// computed getters// function actionsconst state = ref(initState());return {state,};});

 

使用方法:

(1)在*.vue中引入

import {useAllDataStore} from "@/stores"

(2)创建

const store = useAllDataStore()

(3)赋值使用

console.log("store",store.state.isCollapse)
function demoClick(){store.state.isCollapse = !store.state.isCollapse
}

6、axios依赖

官网:https://www.axios-http.cn/docs/intro

命令行:npm install axios -D

封装axios请求

在src文件夹下创建api文件夹,并在该文件夹中创建request.js文件,内容如下:

import axios from "axios";
import { ElMessage } from "element-plus";// 1. 创建axios实例const instance = axios.create({baseURL: "http://jsonplaceholder.typicode.com",//请求的域名  url = baseURL + requestUrltimeout: 5000,// 请求超时时间// headers: { //设置请求头//   "Content-Type": "application/x-www-form-urlencoded;charset=utf-8",// },});// ​2. axios拦截器的使用/** 需要拦截请求的原因*   1.config中包含了某些不符合服务器要求的信息*   2.发送网络请求的时候需要向用户展示一些加载中的图标*   3.网站需要登录才能请求资源,也就是需要token才能请求资源*/// 2.1 添加请求拦截器// 添加公共请求头、处理请求参数等instance.interceptors.request.use((config) => {// 在发送请求之前做些什么const token = localStorage.getItem('token')if (token) {config.headers.Authorization = `Bearer ${token}`;}return config; //拦截器里一定要记得将拦截的结果处理后返回,否则无法进行数据获取},(err) => {// 对请求错误做些什么return Promise.reject(err); // 在请求错误的时候的逻辑处理});// 2.2 添加响应拦截器// 修改响应信息,比如数据转换、错误处理等instance.interceptors.response.use((res) => {// 在请求成功后对响应数据做处理// console.log(res.data);if (res.status === 200) {return res.data;} },(err) => {// 对响应错误做些什么if(err.response.status){switch (err.response.status) {case 400:// 处理错误信息,例如抛出错误信息提示,或者跳转页面等处理方式。err.message = "错误请求";break;case 401:err.message = "未授权,请重新登录";break;case 403:err.message = "拒绝访问";break;case 404:err.message = "请求错误,未找到该资源!!!!";alert(err.message)break;case 405:err.message = "请求方法未允许";break;case 408:err.message = "请求超时";break;case 500:err.message = "服务器端出错";break;case 501:err.message = "网络未实现";break;case 502:err.message = "网络错误";break;case 503:err.message = "服务不可用";break;case 504:err.message = "网络超时";break;case 505:err.message = "http版本不支持该请求";break;default:err.message = `连接错误${err.response.status}`;}}ElMessage.error(err.message);return Promise.reject(err); // 在响应错误的时候的逻辑处理});export default instance;

在api文件下创建api.js,进行而出封装,内容如下:

import http from "./request.js";export const getInfo = () =>{return http({url:"/posts",method:"get"});
}export const getInfoDetail = (params)=>{return http({url:"/posts",method:"get",params})
}export const postInfo = () =>{return http({url:"/posts",method:"post"});
}

 使用方法:

在所需文件中引入import {getInfo,getInfoDetail,postInfo} from "@/api/api"
执行如下代码:


get();
// 异步请求
async function get(){const allData = await getInfo();console.log("allData",allData);const data = await getInfoDetail({id:2});console.log("data",data);const postData = await postInfo();console.log("postData",postData);}

 

相关文章:

vue3创建vite项目

一、创建vue3 vite项目&#xff1a; 命令行创建&#xff1a;npm create vitelatest vue3-tdly-demo -- --template vue (1)先进入项目文件夹&#xff0c;cd vue3-tdly-demo (2)之后执行&#xff0c; npm install (3)最后运行&#xff0c;npm run dev 将main.js文件内容改成…...

Maven概述

目录 1.Maven简介 2.Maven开发环境搭建 2.1下载Maven服务器 2.2安装&#xff0c;配置Maven 1.配置本地仓库地址 2.配置阿里云镜像地址 2.3在idea中配置maven 2.4在idea中创建maven项目 3.pom.xml配置 1.项目基本信息 2.依赖信息 3.构建信息 4.Maven命令 5.打包Jav…...

Easyu中datagrid点击时获取所在行的数据

问题 双击单元格时&#xff0c;获取该行的记录内容 $(#list).datagrid({method: post,url: user/list,queryParams:{sex : "f",age : "18~25"},fitColumns: true,pageList: [ 5, 10, 15, 20 ],singleSelect: false,pagination: true,fit: true,rownumber…...

java项目中添加SDK项目作为依赖使用(无需上传Maven)

需求&#xff1a; 当需要多次调用某个函数或算法时&#xff0c;不想每次调用接口都自己编写&#xff0c;可以将该项目打包&#xff0c;以添加依赖的方式实现调用 适用于&#xff1a; 无需上线的项目&#xff0c;仅公司或团队内部使用的项目 操作步骤&#xff1a; 以下面这…...

区块链和数据要素融合的价值及应用

一、数据要素面临的关键障碍 在构建数据要素基石的过程中&#xff0c;首要任务是明确并解决产权架构的难题&#xff0c;特别是使用权的确立与流转机制的顺畅&#xff0c;此乃数字经济蓬勃发展的命脉所在。一个高效的数据流转体系对于激发数据潜能、加速经济发展及优化数据资源…...

以太坊的可扩展性危机:探索执行层的瓶颈

导读&#xff1a;以太坊执行层承担着交易处理、智能合约执行以及保持一致和安全状态的维护等工作。Fuel Labs 撰文解析了以太坊执行层的工作原理&#xff0c;及其在可扩展性方面的发展瓶颈和影响。 Fuel Labs: 执行是指在区块链上执行交易和执行状态更改所需的计算。此计算通常…...

静态解析activiti文本,不入库操作流程

说明&#xff1a; activiti本身状态存库&#xff0c;导致效率太低&#xff0c;把中间状态封装成一个载荷类&#xff0c;返回给上游&#xff0c;下次请求时给带着载荷类即可。 1.pom依赖 <dependency><groupId>net.sf.json-lib</groupId><artifactId>js…...

100个python的基本语法知识【上】

0. 变量和赋值&#xff1a; x 5 name “John” 1. 数据类型&#xff1a; 整数&#xff08;int&#xff09; 浮点数&#xff08;float&#xff09; 字符串&#xff08;str&#xff09; 布尔值&#xff08;bool&#xff09; 2. 注释&#xff1a; # 这是单行注释 ""…...

Python从0到100(四十四):读取数据库数据

前言&#xff1a; 零基础学Python&#xff1a;Python从0到100最新最全教程。 想做这件事情很久了&#xff0c;这次我更新了自己所写过的所有博客&#xff0c;汇集成了Python从0到100&#xff0c;共一百节课&#xff0c;帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…...

ZLMRTCClient配置说明与用法(含示例)

webRTC播放视频 后面在项目中会用到通过推拉播放视频流的技术&#xff0c;所以最近预研了一下webRTC 首先需要引入封装好的webRTC客户端的js文件ZLMRTCClient.js 下面是地址需要的自行下载 http://my.zsyou.top/2024/ZLMRTCClient.js 配置说明 new ZLMRTCClient.Endpoint…...

nginx代理服务配置,基于http协议-Linux(CentOS)

基于http协议的nginx代理服务 1. 打开 Nginx 虚拟机80端口配置文件2. 添加代理配置3. 重启nginx服务 nginx代理缓存配置 1. 打开 Nginx 虚拟机80端口配置文件 Nginx 的默认80端口虚拟机配置文件通常位于/etc/nginx/conf.d/default.conf。 vim /etc/nginx/conf.d/default.con…...

Photos框架 - 自定义媒体资源选择器(数据部分)

引言 在iOS开发中&#xff0c;系统已经为我们提供了多种便捷的媒体资源选择方式&#xff0c;如UIImagePickerController和PHPickerViewController。这些方式不仅使用方便、界面友好&#xff0c;而且我们完全不需要担心性能和稳定性问题&#xff0c;因为它们是由系统提供的&…...

Spring Boot + Spring Cloud 入门

运行配置 java -jar spring-boot-config-0.0.1-SNAPSHOT.jar --spring.profiles.activetest --my1.age32 --debugtrue "D:\Program Files\Redis\redis-server.exe" D:\Program Files\Redis\redis.windows.conf "D:\Program Files\Redis\redis-cli.exe" &q…...

怎么使用动态IP地址上网

如何设置动态IP地址上网&#xff1f; 设置动态IP地址上网的步骤如下&#xff1a; 一、了解动态IP地址 动态IP地址是由网络服务提供商&#xff08;ISP&#xff09;动态分配给用户的IP地址&#xff0c;它会根据用户的需求和网络情况实时改变。相比于静态IP地址&#xff0c;动态…...

【源码+文档+调试讲解】智慧物流小程序的设计与实现

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对高校教师成果信息管理混乱&#xff0c;出错率高&#xff0c;信息安全…...

QT:控件圆角设置、固定窗口大小

实现控件圆角度设置//使用的是setStyleSheet方法 //改变的控件是QTextEdit&#xff0c;如果你想改变其他控件&#xff0c;将QTextEdit进行更换 this->setStyleSheet("QTextEdit{background-color:#FFFFFF;border-top-left-radius:15px;border-top-right-radius:15px;bo…...

【JavaScript】深入理解 `let`、`var` 和 `const`

文章目录 一、var 的声明与特点二、let 的声明与特点三、const 的声明与特点四、let、var 和 const 的对比五、实战示例六、最佳实践 在 JavaScript 中&#xff0c;变量声明是编程的基础&#xff0c;而 let、var 和 const 是三种常用的变量声明方式。本文将详细介绍这三种变量声…...

云监控(华为) | 实训学习day7(10)

水一篇。。。。。。。。。。。。。 强迫症打卡必须要满 企拓 今天没有将东西 2024/7/22 规划学习路线对于进入AI行业至关重要。以下是一个详细的学习路线规划&#xff0c;旨在帮助你从零基础到成为一名合格的AI或大数据分析师&#xff1a; 第一阶段&#xff1a;基础知识建设…...

JS_plus.key.addEventListener监听键盘按键

官方文档&#xff1a;https://www.html5plus.org/doc/zh_cn/key.html 监听事件 plus.key.addEventListener(keydown, e > {console.log("keydown: "e.keyCode) }) plus.key.addEventListener(keyup, e > {console.log("keyup: "e.keyCode) })移除事…...

对话系统(Chat)与自主代理(Agent)对撞

随着生成式AI技术的不断进步&#xff0c;关于其未来发展方向的讨论也愈发激烈。究竟生成式AI的未来是在对话系统&#xff08;Chat&#xff09;中展现智慧&#xff0c;还是在自主代理&#xff08;Agent&#xff09;中体现能力&#xff1f;这一问题引发了广泛的讨论和探索。 首先…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)

引言 工欲善其事&#xff0c;必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后&#xff0c;我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集&#xff0c;就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

GeoServer发布PostgreSQL图层后WFS查询无主键字段

在使用 GeoServer&#xff08;版本 2.22.2&#xff09; 发布 PostgreSQL&#xff08;PostGIS&#xff09;中的表为地图服务时&#xff0c;常常会遇到一个小问题&#xff1a; WFS 查询中&#xff0c;主键字段&#xff08;如 id&#xff09;莫名其妙地消失了&#xff01; 即使你在…...

EEG-fNIRS联合成像在跨频率耦合研究中的创新应用

摘要 神经影像技术对医学科学产生了深远的影响&#xff0c;推动了许多神经系统疾病研究的进展并改善了其诊断方法。在此背景下&#xff0c;基于神经血管耦合现象的多模态神经影像方法&#xff0c;通过融合各自优势来提供有关大脑皮层神经活动的互补信息。在这里&#xff0c;本研…...