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

(使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))

使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus)

  • 初始化项目
  • 安装依赖,运行项目
  • 初始配置

初始化项目

1.需要在创建项目的位置cmd目录下执行
在这里插入图片描述
2. npm init vite@latest 回车

npm init vite@latest

3.填上自己的项目名称 回车

在这里插入图片描述
4.选择vue 回车
在这里插入图片描述
5.选择TypeScript回车
在这里插入图片描述
6.项目创建完成
在这里插入图片描述

或者一步到位通过附加的命令行选项直接指定项目名称和你想要使用的模板(根据自己npm版本来选择不同的命令行)

# npm 6.x
npm create vite@latest vite-vue --template vue-ts# npm 7+, extra double-dash is needed:
npm create vite@latest vite-vue -- --template vue-ts

在这里插入图片描述

安装依赖,运行项目

1.用你的软件打开创建的项目,在终端进入项目

cd vite-vue

在这里插入图片描述
2.安装默认依赖

npm install

3.运行项目

npm run dev

在这里插入图片描述

初始配置

1.更改http://localhost:3000/到8080与Network路由访问(server对象为新增,其余的都是源代码)

修改vite.config.ts配置文件代码

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'// https://vitejs.dev/config/
export default defineConfig({plugins: [vue()],server:{host:'0.0.0.0',//解决vite use--host to exposeport:8080,open:true}
})

2.配置vite别名
vue开发过程中,在引入文件时,习惯使用 @ 代替 src,vite 默认是不识别的,所以需要配置

(1)

 npm install @types/node --save-dev

(2)修改vite.config.ts配置文件代码,(resolve对象为新增,其余都是源代码)

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'// https://vitejs.dev/config/
export default defineConfig({plugins: [vue()],server:{host:'0.0.0.0',//解决vite use--host to exposeport:8080,open:true},resolve:{alias:[{find:'@',replacement:resolve(__dirname,'src')}]}
})

3)在tsconfig.json 文件中添加配置

{"compilerOptions": {"target": "ESNext","useDefineForClassFields": true,"module": "ESNext","moduleResolution": "Node","strict": true,"jsx": "preserve","resolveJsonModule": true,"isolatedModules": true,"esModuleInterop": true,"lib": ["ESNext", "DOM"],"skipLibCheck": true,"noEmit": true,// 添加的配置开始"baseUrl": ".","paths": {"@/*":["src/*"]}
//添加的配置结束},"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],"references": [{ "path": "./tsconfig.node.json" }]
}

3.安装路由

npm install vue-router@4

(1)在src目录下新建router文件夹,在router里创建index.ts文件
在这里插入图片描述

(2)在index.ts里面配置路由

import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'const routes: Array<RouteRecordRaw> = [{path: '/',name: 'home',component:()=>import('../view/home.vue'),//我事先在src下面创建了一个view文件夹,在view文件下面创建了home.vue文件}
]const router = createRouter({history: createWebHistory(),routes
})export default router

(3)在main.ts中导入挂载路由

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import router from "./router";createApp(App).use(router).mount('#app')

(4)修改App.vue管理路由

<script setup lang="ts">
</script>
<template><router-view></router-view>
</template><style>
</style>
4.安装css 预处理器 sass
npm install -D sass
<template><div class="app"><div class="box">首页</div></div>
</template><script lang="ts" setup></script><style lang="scss" scoped>
.app {.box {color: #747bff;}
}
</style>

5.引入element-plus

npm install element-plus --save

(1)在main.ts引入

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

(2)使用

<template><div class="app"><el-button type="success">Success</el-button></div>
</template><script lang="ts" setup></script><style lang="scss" scoped>
</style>

(3)效果
在这里插入图片描述

6.安装pinia

npm install pinia

(1)在main.ts引入

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

以上步骤便完成了vue3项目 vite + vue3 + vue router + pinia + element plus

相关文章:

  • 人工智能基础创新的第二增长曲线
  • c++ 三目运算符在类中的使用
  • 蓝桥杯 动态规划
  • 深入理解Linux用户权限管理:常用命令详解
  • 【译】IOC容器2
  • 前端时间的失败总结复盘
  • 对标Gen-2!Meta发布新模型,进军文生视频赛道
  • idea使用问题(idea相关)快捷键及窗口没有service
  • threejs中获取不规则物体中心点坐标
  • 使用Redis实现接口防抖
  • 字节跳动开源基于SD1.5的 MagicAnimate 一张照片秒变真人舞蹈视频
  • 灰度发布专题---3、Nginx+Lua灰度发布
  • C++空类的那点事儿
  • 虾皮在线定价工具:知虾轻松制定有竞争力的价格策略
  • 一张网页截图,AI帮你写前端代码,前端窃喜,终于不用干体力活了
  • Android系统模拟器绘制实现概述
  • Android优雅地处理按钮重复点击
  • Android组件 - 收藏集 - 掘金
  • ECMAScript入门(七)--Module语法
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • Mysql数据库的条件查询语句
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • React Transition Group -- Transition 组件
  • ubuntu 下nginx安装 并支持https协议
  • vuex 笔记整理
  • zookeeper系列(七)实战分布式命名服务
  • 机器学习 vs. 深度学习
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 盘点那些不知名却常用的 Git 操作
  • 悄悄地说一个bug
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 微信公众号开发小记——5.python微信红包
  • 我有几个粽子,和一个故事
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 正则表达式
  • MPAndroidChart 教程:Y轴 YAxis
  • 如何用纯 CSS 创作一个货车 loader
  • ​【已解决】npm install​卡主不动的情况
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • $(selector).each()和$.each()的区别
  • $jQuery 重写Alert样式方法
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (第61天)多租户架构(CDB/PDB)
  • (二)斐波那契Fabonacci函数
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (四)库存超卖案例实战——优化redis分布式锁
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)【Hibernate总结系列】使用举例
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .net core 依赖注入的基本用发