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')}]}
})

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

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');

使用方法:

 <!--图标-->
<el-icon><Setting />
</el-icon>

或者 

// class="icon" 在style中设置图标大小 
<Setting class="icon"></Setting>

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);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/50321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【leetcode】两数相加【中等】(C++递归解法)

总体来说&#xff0c;链表类问题往往是蛮适合用递归的方式求解的 要写出有效的递归&#xff0c;关键是要考虑清楚&#xff1a; 0. return的条件 1. 每步递归的操作&#xff0c;以及何时调用下一步递归 2. 鲁棒性&#xff08;头&#xff0c;尾结点等特殊情况是否依旧成立&am…

Golang学习笔记20240725,Go语言基础语法

第一个Go程序 package mainimport "fmt"func main() {fmt.Println("hello world") }运行方式1&#xff1a; go run main.go运行方式2&#xff1a; go build .\hello_go.exe运行方式3&#xff1a;goland右键运行 字符串拼接 使用加号可以对字符串进行…

Codeforces Round 874 (Div. 3)(A~D题)

A. Musical Puzzle 思路: 用最少的长度为2的字符串按一定规则拼出s。规则是&#xff1a;前一个字符串的尾与后一个字符串的首相同。统计s中长度为2的不同字符串数量。 代码: #include<bits/stdc.h> #include <unordered_map> using namespace std; #define N 20…

【python】PyQt5中QPushButton的用法详细解析与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

【全面介绍Python多线程】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 🦇目录 1. 🦇前言2. 🦇threading 模块的基本用法3. 🦇Thre…

Unity中有关Animation的一点笔记

也许更好的阅读体验 Animation Unity中Animation类并不是直接记载了和播放动画有关的信息&#xff0c;可以简单理解Animation为一个动画播放器&#xff0c;播放的具体内容就像卡带一样&#xff0c;当我们有了卡带后我们可以播放动画。 对应的则是编辑器中的组件 所以Anima…

【学术会议征稿】第十一届电气工程与自动化国际会议 (IFEEA 2024)

第十一届电气工程与自动化国际会议 &#xff08;IFEEA 2024&#xff09; 2024 11th International Forum on Electrical Engineering and Automation IFEEA论坛属一年一度的国际学术盛会。因其影响力及重要性&#xff0c;IFEEA论坛自创建筹办以来&#xff0c;便受到国内外高等…

网站打包封装成app,提高用户体验和商业价值

网站打包封装成app的优势 随着移动互联网的普及&#xff0c;用户对移动应用的需求越来越高。网站打包封装成app可以满足用户的需求&#xff0c;提高用户体验和商业价值。 我的朋友是一名电商平台的运营负责人&#xff0c;他曾经告诉我&#xff0c;他们的网站流量主要来自移动…

由bext安装“异常”引出的话题:windows上转义字符的工作原理

由bext安装“异常”引出的话题&#xff1a;Windows上转义字符的工作原理&#xff0c;与ai“闲扯”不经意学习知识点。 (笔记模板由python脚本于2024年07月25日 19:21:13创建&#xff0c;本篇笔记适合喜欢用ai学习的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff…

GitLab添加TortoiseGIT生成SSH Key

文章目录 前言一、PuTTYgen二、GitLab 前言 GitLab是一个用于托管代码仓库和项目管理的Web平台&#xff0c;公司搭建自己的gitlab来管理代码&#xff0c;我们在clone代码的时候可以选择http协议&#xff0c;也可以选择ssh协议来拉取代码。 SSH (Secure Shell)是一种通过网络进…

【脚本】清空指定文件夹内容

main执行一次&#xff0c;1.txt就会写入一些东西。 原来的想法是覆盖重写&#xff0c;结果却是接着往后面写&#xff0c;检查源代码有点费事&#xff0c;不如在每次程序执行前&#xff0c;先直接清空文件夹&#xff01; 部分代码&#xff1a; 修改路径就能用。 import os im…

微信小程序-自定义tabBar

通过官网给出的示例自己实现了自定义的tabBar&#xff0c;但结果发现 无法监听页面生命周期函数 结语&#xff1a;原想的是实现不一样的效果&#xff08;如下&#xff09; 故尝试了自定义tabBar&#xff0c;虽然做出来了&#xff0c;但也发现这个做法存在不足&#xff1a; 在…

记一次Mycat分库分表实践

接了个活,又搞分库分表。 一、分库分表 在系统的研发过程中,随着数据量的不断增长,单库单表已无法满足数据的存储需求,此时就需要对数据库进行分库分表操作。 分库分表是随着业务的不断发展,单库单表无法承载整体的数据存储时,采取的一种将整体数据分散存储到不同服务…

Golang | 腾讯一面

go的调度 Golang的调度器采用M:N调度模型&#xff0c;其中M代表用户级别的线程(也就是goroutine)&#xff0c;而N代表的事内核级别的线程。Go调度器的主要任务就是N个OS线程上调度M个goroutine。这种模型允许在少量的OS线程上运行大量的goroutine。 Go调度器使用了三种队列来…

vue3 常用的知识点

setup:容许在script当中书写组合式API 并且vue3的template不再要求唯一的根元素 <script setup>const name app; </script>组合式API的用法&#xff1a; 可以直接在script标签中定义变量或者函数&#xff0c;然后直接在template当中使用 <template>{{mes…

编程类精品GPTs

文章目录 编程类精品GPTs前言种类ChatGPT - GrimoireProfessional-coder-auto-programming 总结 编程类精品GPTs 前言 代码类的AI, 主要看以下要点: 面对含糊不清的需求是否能引导出完整的需求面对完整的需求是否能分步编写代码完成需求编写的代码是否具有可读性和可扩展性 …

javaEE-03-cookie与session

文章目录 Cookie创建Cookie获取Cookie更新CookieCookie 生命控制Cookie 有效路径 Session 会话创建和获取sessionSession 域数据的存取Session 生命周期控制浏览器和 Session 之间关联 Cookie Cookie 是服务器通知客户端保存键值对的一种技术,客户端有了 Cookie 后&#xff0c…

【ARM】MDK-ARM软件开发工具的最终用户许可协议获取

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 了解MDK-ARM系列产品内软件开发工具的最终用户许可协议的获取。 2、 问题场景 对于部分外企客户需要软件开发工具的最终用户许可协议作为产品资料&#xff0c;以便附录并说明。 3、软硬件环境 1&#xff09;、软件…

Shell编程之正则表达式与文本处理器2--sed

目录 一、sed 工具 1. 概述 2. sed 原理 3、常用操作选项 3.1 常用选项 3.2 操作命令 4. sed 的使用 5. 具体操作 5.1 打印输出 p 5.1.1 显示范围、单行、指定行输出、指定往后加几行输出 5.1.2 显示奇偶行 5.1.3 将指定内容的行打印出来 5.1.4 只输出行号…

ESP32和mDNS学习

目录 mDNS的作用mDNS涉及到的标准文件组播地址IPv4 多播地址IPv6 多播地址预先定义好的组播地址 mDNS调试工具例程mDNS如何开发和使用注册服务查询服务 mDNS的作用 mDNS 是一种组播 UDP 服务&#xff0c;用来提供本地网络服务和主机发现。 你要和设备通信&#xff0c;需要记住…