VITE+VUE3+TS环境搭建

embedded/2024/11/27 9:12:30/

前言(与搭建项目无关):

可以安装一个node管理工具,比如nvm,这样可以顺畅的切换vue2和vue3项目,以免出现项目跑不起来的窘境。我使用的nvm,当前node 22.11.0

 

目录

搭建项目

添加状态管理库,使用pinia

 添加全局组件模版

加入路由vue-router


  • 搭建项目

 (直接贴代码,都准备使用vite了,肯定一看就明白)

javascript">npm init vite data-analysis
Need to install the following packages:
create-vite@5.5.5
Ok to proceed? (y) ynpx
> create-vite data-analysis√ Select a framework: » Vue
√ Select a variant: » TypeScriptScaffolding project in D:\projects\data-analysis...Done. Now run:cd data-analysisnpm installnpm run dev

如上你就能得到一个超级干净(啥都没有)的项目结构。接下来需要补齐一些常用的东西,文件夹按照自己的习惯新建即可,示例如下。

 

  • 添加状态管理库,使用pinia

javascript">npm i pinia -S

 在store下创建index.ts,同时创建modules文件夹将state模块化

javascript">import { appStore } from "./modules/app";
import { createPinia } from "pinia";const store: any = createPinia();
// const store: any = {}
export const registerStore = () => {store.appStore = appStore();
};export default store;// modules文件夹下新建app.ts,内容如下
import { defineStore } from "pinia";
export const appStore = defineStore("appStore", {state: () => ({scrollFlag: false,pageLoading: false,}),actions: {setScrollFlag(flag: any) {this.scrollFlag = flag;},setPageLoading(flag: any) {this.pageLoading = flag;},},
});

main.ts中导入store

javascript">import { createApp } from "vue";
import App from "./App.vue";
import store, { registerStore } from "./store";
const setupAll = async () => {const app = createApp(App);// 注册 Piniaapp.use(store);// 注册 自定义指令registerStore();app.mount("#app");
};setupAll();

 重写App.vue文件

javascript"><template><el-config-provider :size="size"><router-view /></el-config-provider>
</template><script setup lang="ts">
import { ref} from "vue";
const size = ref('small');
</script>
  •  添加全局组件模版

javascript">// 在layout文件夹下新建index.vue用做路由组件模版(路径可自行修改)
// 这一步在搭建后台管理项目的时候很重要,可以把菜单栏封装到此处
<template><div class="web-main-container">通用组件模版<router-view /></div>
</template><script setup name="indexPage"></script>
// 添加scss之后编译会报错,需要npm i sass -D
<style lang="scss">
@import "@/assets/styles/reset.scss";
.ellipsis {width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;
}
</style>
  • 加入路由vue-router

javascript">npm i vue-router -S //安装路由

在router下创建index.ts

javascript">import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router";import Layout from "@/layout/index.vue";
// 配置静态路由
export const constantRoutes: RouteRecordRaw[] = [{path: "/",redirect: "home",component: () => Layout,children: [{path: "home",name: "首页",component: () => import("../views/home/index.vue"),meta: { title: "首页", hidden: true },},],},{path: "/404",component: () => import("../views/404.vue"),},
];export const router = createRouter({history: createWebHistory(),routes: constantRoutes,
});

 在main.js里引入router

javascript">import { createApp } from "vue";
import App from "./App.vue";
import store, { registerStore } from "@/store";
import { router } from "./router";
const setupAll = async () => {const app = createApp(App);// 注册路由app.use(router);// 注册 Piniaapp.use(store);// 注册 自定义指令registerStore();app.mount("#app");
};setupAll();

 编译之后可能会报错,vite.config.ts加以下配置

javascript">import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import { resolve } from "path";
// https://vite.dev/config/
export default defineConfig({plugins: [vue()],resolve: {extensions: [".mjs",".js",".ts",".jsx",".tsx",".json",".scss",".css",],// 配置别名alias: {"@": resolve(__dirname, "./src"),"vue-i18n": "vue-i18n/dist/vue-i18n.cjs.js",},//去掉scss编译警告css: {preprocessorOptions: {scss: {api: "modern-compiler",},},},},
});

路由守卫,接口调用,权限配置等其他功能下一次在写


http://www.ppmy.cn/embedded/140856.html

相关文章

CentOS 上安装各种应用的命令行总结

在 CentOS 上安装各种应用的命令行方法可以通过不同的软件包管理工具完成&#xff0c;最常用的是 yum&#xff08;CentOS 7及以前版本&#xff09;和 dnf&#xff08;CentOS 8及以上版本&#xff09;。以下是一些常见应用的安装命令总结。 目录 1. 基本的包管理命令 2. 安装…

Python毕业设计选题:基于django+vue的期货交易模拟系统的设计与实现

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 系统首页 期货信息 个人中心 管理员登录界面 管理员功能界面 用户管理 期货公司管理…

【消息序列】详解(7):剖析回环模式--设备测试的核心利器

目录 一、概述 1.1. 本地回环模式 1.2. 远程环回模式 二、本地回环模式&#xff08;Local Loopback mode&#xff09; 2.1. 步骤 1&#xff1a;主机进入本地环回模式 2.2. 本地回环测试 2.2.1. 步骤 2a&#xff1a;主机发送HCI数据包并接收环回数据 2.2.2. 步骤 2b&…

AIGC--AIGC与人机协作:新的创作模式

AIGC与人机协作&#xff1a;新的创作模式 引言 人工智能生成内容&#xff08;AIGC&#xff09;正在以惊人的速度渗透到创作的各个领域。从生成文本、音乐、到图像和视频&#xff0c;AIGC使得创作过程变得更加快捷和高效。然而&#xff0c;AIGC并非完全取代了人类的创作角色&am…

ABRTD配置详解:让Core文件成为问题定位的好帮手

ABRTD配置详解:让Core文件成为问题定位的好帮手 引言ABRTD简介安装ABRTD在基于Debian的系统上安装ABRTD在基于RPM的系统上安装ABRTD配置ABRTD修改ABRTD的配置文件启用和禁用ABRTD服务监控ABRTD状态使用ABRTD保存DEBUG编译程序产生的Core文件编译DEBUG程序运行DEBUG程序并生成C…

网站布局编辑器前端开发:设计要点与关键考量

一、设计说明 &#xff08;一&#xff09;功能模块 可视化操作区域 这是用户进行网站布局设计的主要画布。通过拖放各种页面元素&#xff08;如文本框、图片、按钮、导航栏等&#xff09;到该区域&#xff0c;用户能够直观地构建网站页面的布局结构。支持对元素的实时缩放、旋…

ChatGPT如何辅助academic writing?

今天想和大家分享一篇来自《Nature》杂志的文章《Three ways ChatGPT helps me in my academic writing》&#xff0c;如果您的日常涉及到学术论文的写作&#xff08;writing&#xff09;、编辑&#xff08;editing&#xff09;或者审稿&#xff08; peer review&#xff09;&a…

【排版教程】Word、WPS 分节符(奇数页等) 自动变成 分节符(下一页) 解决办法

毕业设计排版时&#xff0c;一般要求每章节的起始页为奇数页&#xff0c;空白页不显示页眉和页脚。具体做法如下&#xff1a; 1 Word 在一个章节的内容完成后&#xff0c;在【布局】中&#xff0c;点击【分隔符】&#xff0c;然后选择【奇数页】 这样在下一章节开始的时&…