当前位置: 首页 > 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 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...