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

vue3+ts+vite项目从0 搭建,配置安装router/pinia/element-plus/scss等

一、安装vite环境

官网:https://cn.vitejs.dev/guide/why.html

npm init vite

1.选择vue
在这里插入图片描述
2.选择typescipt
在这里插入图片描述
3.创建成功
在这里插入图片描述
默认项目结构如下
在这里插入图片描述
4.安装项目依赖

npm install 

5.启动项目

npm run dev

在这里插入图片描述

二。安装配置scss

1.运行安装scss

npm install -D sass sass-loader@^10 style-loader css-loader

2.配置vite.config.ts

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: {// '@': path.resolve(__dirname, '/src') // 根据你的项目结构进行修改'@': '/src',}},css: {preprocessorOptions: {scss: {additionalData: `@import "@/styles/variables.scss";` // 根据你的样式文件路径进行修改}}}
})

三、安装配置vue-router

npm install vue-router@next

1.新建router.ts文件

import { createRouter, createWebHistory } from 'vue-router'
import Home from '@/views/home/Index.vue'
import NotFound from '@/views/NotFound/Index.vue'
const routes = [{path: '/',name: 'Home',component: Home},{path: '/:pathMatch(.*)*',component: NotFound}
]const router = createRouter({history: createWebHistory(),routes
})export default router

2.修改main.ts

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

3.注意::在src同级目录下新建shims-vue.d.ts,否则引入vue组件会报错:找不到模块“@/views/home/Index.vue”或其相应的类型声明

declare module '*.vue' {import { DefineComponent } from 'vue'const component: DefineComponent<{}, {}, any>export default component}

4.app.vue增加router-vire路由出口
在这里插入图片描述

目录结构如下:
在这里插入图片描述

四。安装pinia状态管理,,模块化

npm install pinia --save

1。main.ts 引入
在这里插入图片描述
2.创建store文件夹目录结构
在这里插入图片描述
3. index.ts文件引入stores/user

import {useUserStore }from "./stores/user";export default function useStore() {return {user: useUserStore(),};
}

3.stores/user.ts文件


import { ref } from 'vue'
import { defineStore } from "pinia";
import type { UserType } from '../types/user.d'export const useUserStore = defineStore("user", () => {let userList = ref<UserType[]>([])const getUserList = () => {userList.value = [{ username: "测试" }];}return {userList,getUserList}})

4.type/user.d.ts文件定义ts类型接口

export interface UserType {username:string
}

5.vue文件中使用 home/index.vue

<script setup lang="ts">
// 导出指定模块
import useStore from '@/store'
const { user } = useStore()
// 获取
user.getUserList()
</script><template><div><ul><li v-for="item in user.userList" :key="item.username">姓名:{{ item.username }}</li></ul></div>
</template><style lang="scss" scoped></style>

在这里插入图片描述

运行结果
在这里插入图片描述

五。安装element-plus

npm  install element-plus

1.main.ts引入

import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'app.use(ElementPlus)

在这里插入图片描述
2.页面使用 button
在这里插入图片描述
效果图:
在这里插入图片描述

http://www.lryc.cn/news/278463.html

相关文章:

  • 华为OD机试 - 矩阵匹配(Java JS Python C)
  • 使用ffmpeg实现音频静音修剪
  • Java项目调试实战:如何高效调试Spring Boot项目中的GET请求,并通过equalsIgnoreCase()解决大小写不一致问题
  • Google Pixel 与 iPhone手机:哪个更好?
  • ddos攻击会让服务器受到什么影响?-速盾网络(sudun)
  • NSSCTF Interesting_include
  • IPv6路由协议---IPv6动态路由(OSPFv3-5)
  • GPT Store开业大吉:一场AI技术与创新的盛宴
  • Linux---gcc编译
  • 使用阿里云镜像创建一个Spring Boot项目
  • 工智能基础知识总结--词嵌入之Word2Vec
  • redis stream restTemplate消息监听队列框架搭建
  • 【期末不挂科-C++考前速过系列P1】大二C++第1次过程考核(3道简述题&7道代码题)【解析,注释】
  • 游戏开发中,你的游戏图片压缩格式使用ASTC了吗
  • 【PostgreSQL】数据查询-概述
  • element input组件自动失去焦点问题解决
  • 鸿蒙Harmony--状态管理器-@Observed装饰器和@ObjectLink装饰器详解
  • pytorch安装
  • GBASE南大通用系统目录表
  • RPCMS跨站脚本漏洞(xss)
  • Linux进阶命令使用
  • 重定位,进程的创建,线程相关
  • Java填充Execl模板并返回前端下载
  • ChatGPT本地部署,学习记录
  • Find My游戏手柄|苹果Find My技术与手柄结合,智能防丢,全球定位
  • 2024美赛数学建模思路 - 复盘:光照强度计算的优化模型
  • 【Deep Dive: AI Webinar】开放 ChatGPT - 人工智能开放性运作的案例研究
  • Devops相关问题及答案(2024)
  • 掌握Python设计模式,SQL Alchemy打破ORM与模型类的束缚
  • 性能分析与调优: Linux 磁盘I/O 观测工具