Vue3+Vite+AntDesignVue初始化项目

2023-11-01

通过vite官方的命令新建一个vue3的项目,通过这个命令新建的项目结构非常简介,当然什么也没有,需要手动安装路由等。

npm create vite@latest

1、配置热更新和路径别名

安装@types/node,配置地址时会用到
npm install @types/node --save-dev

import * as path from "path";
export default defineConfig({
    server: {
        // 热更新
        hmr: true,
        //  自动打开浏览器
        open: true
    }

// 路径别名
    resolve: {
		alias: {
			'@': path.resolve(__dirname, 'src'),
			'comp': path.resolve(__dirname, 'src/components'),
			'styles': path.resolve(__dirname, 'src/assets/styles')
		}
	}
})

路径别名在vite.config.ts文件里配置后,还需要在tsconfig.json文件里配置一下paths,因为TS无法自动识别别名路径。

"paths": {
	"@/*": ["src/*"],
	"comp/*": ["comp/*"],
	"styles/*": ["styles/*"]
}

 2、安装路由

npm i vue-router@next -S

 在src目录下新建router目录,然后添加index.ts放路由配置,添加routes.ts来放路由相关路径,最后在main.js里引入。

// index.ts文件
import { createRouter, createWebHistory } from "vue-router";
import routes from "./routes";

const router = createRouter({
  history: createWebHistory(),
  routes
})

export default router;


// routes.ts文件
const routes = [
  {
    path: '/',
    name: 'login',
    meta: {
      title: '登录页'
    },
    component: () => import('@/pages/login/login.vue')
  },
  {
    path: '/home',
    name: 'home',
    meta: {
      title: '首页'
    },
    component: () => import('@/pages/home/home.vue')
  }
]

export default routes;


// main.ts文件
import router from "@/router";

const app = createApp(App);
app.use(router);

app.mount('#app');

3、安装状态管理器pinia

        vue3+vite的项目,官方推荐的状态管理器改为Pinia了,取消了Mutations操作,只有 state getters actions 简化状态库管理,而且对typescript和vue3的支持度更高。

npm install pinia

main.ts里边引入pinia,并且实例化:

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

4、安装scss

npm i sass -D

 在src >> assets目录下新建styles目录,用来存放样式,然后在main.ts文件里引入了全局样式。

5、安装UI库

npm install ant-design-vue --save

npm i unplugin-vue-components -D

 因为以前的项目里使用的都是element UI,所以在这个项目里决定使用AntDesignVue,尝试一些新的东西。

在这个项目里准备按需引入,不再像以前直接在main.ts里注册全局组件,毕竟后台管理系统最常用的UI组件只有那几个,这里先引入Button、message、Form组件。

// main.ts
import { Button, message, Form } from "ant-design-vue";

app.use(Button);
app.config.globalProperties.$message = message;
app.use(Form);


// vite.config.ts
import Components from 'unplugin-vue-components/vite';
import { AntDesignVueResolver } from "unplugin-vue-components/resolvers";

plugins: [
    vue(),
    Components({
      resolvers: [AntDesignVueResolver()]
    })
]

搭建静态页面的步骤就到此为止了,先写了一个登录页,后面再慢慢更新吧。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue3+Vite+AntDesignVue初始化项目 的相关文章

  • 我们在哪里/什么时候使用 JSON?

    你能告诉我 JSON 有什么用 在 Javascript 和 PHP 中 当我们需要 JSON 方法时 我从以下链接中阅读 但是 我没有获得有关任何项目的 JSON 实现的任何信息 http www json org js html htt
  • 如果列表中的某个字符位于该字符之前,请选择该字符

    我有这个正则表达式 a z s gmi 该正则表达式选择 从我的文字中 sme a eliezovce 2015 Spolo ne pre Eur pu Osl vili aj 940 但我只想选择 没有 如果列表中的某些字符 a z 之前
  • WebPack 源映射令人困惑(重复文件)

    我决定在我今天正在启动的一个新项目上尝试 WebPack 并且我从源映射中得到了非常奇怪的行为 我在文档中找不到任何相关信息 在浏览 StackOverflow 时也找不到其他人遇到此问题 我目前正在查看由以下公司制作的 HelloWorl
  • Heroku 上重启后 Better-SQLite3 数据库重置

    我有一个 Discord 机器人better sqlite3 https github com JoshuaWise better sqlite3硬币和 XP 数据库 直到两周前它一直工作得很好 现在 每次重新启动后 它只会恢复 XP 和硬
  • firebase.storage() 不是玩笑测试用例中的函数

    我正在使用 Jest 来测试我的 firebase 功能 这一切都在浏览器中进行 因此我与服务器端的 firebase 没有任何冲突 当我使用firebase auth or firebase database 一切正常 当我尝试使用时fi
  • 在 Node.js 中实现服务器发送事件的简单方法?

    我环顾四周 似乎在 Node js 中实现 SSE 的所有方法都是通过更复杂的代码 但似乎应该有一种更简单的方法来发送和接收 SSE 是否有任何 API 或模块可以让这件事变得更简单 这是一个每秒发送一个服务器发送事件 SSE 的 Expr
  • Google javascript 登录 api:无法离线访问

    我正在尝试为服务器端应用程序实现 Google 登录 如 Google 文档中所示 服务器端应用程序的 Google 登录 https developers google com identity sign in web server si
  • ELEMENT.style.color 在 IE 中不起作用

    在一个小型 Web 应用程序中 我使用 JavaScript 在文本框中设置一些文本及其颜色 在下面的片段中 el 是我的对象 这段代码在 Firefox Opera 和 Safari 下产生了正确的效果 但在 IE 下却没有这样的运气 我
  • 无法使用 MV3 从 Firefox 下的通用脚本导出到 background.js

    我试图在服务工作者 background js 和内容脚本之间重用一些功能 https stackoverflow com questions 73421706 how to reuse a javascript function betw
  • JSSOR - 无法读取未定义的类型属性“currentStyle”

    我正在尝试将 Jssor 滑块实现到我的页面中 但我不断在标题中出现该错误 我的内容是通过 Javascript 动态创建的 如下所示 var slide app createHTML div id inventorySlides null
  • 可拖动的非模态弹出窗口 Jquery Mobile

    我希望在 Jquery mobile 中有一个弹出窗口 它不会阻止用户与页面交互 并且 data dismissible false 即当页面的另一部分与页面的另一部分交互并保持可见时 弹出窗口不会消失 我已经尝试过这个 popupNew
  • 递归链接 Promise

    我正在开发一个简单的 Windows 8 应用程序 我需要在其中从网站获取一组数据 我正在使用 WinJS xhr 来检索此数据 它返回一个 Promise 然后 我将回调传递到此 Promise 的 then 方法中 该方法为我的回调提供
  • 角度引导手风琴数据绑定问题

    我有 2 个相同型号的下拉菜单 一个位于手风琴内部 另一个位于外部 外部下拉菜单在 2 路数据绑定方面工作良好 但手风琴内部的下拉菜单似乎只有 1 路绑定 换句话说 在 UI 中选择并不会设置模型值 我找到了一个建议here https s
  • 如何在正则表达式中区分数字和ip地址?

    例如 如果我们查看 5 56 和 183 55 0 144 基本上 当你做这样的事情时 d d 它匹配 5 56 189 55 和 0 144 有没有办法通过正则表达式仅匹配数字而不匹配 ip 地址的部分 我尝试使用前瞻 但我不知道它应该是
  • jQuery 和所有 .js 文件无法在本地运行,只能在外部运行

    我有一个奇怪的问题 我正在编写一个网站 包括 jQuery 和一些插件 它们存储在 js 文件夹中 当我尝试通过浏览器 jQuery 打开它时 插件和所有自定义脚本都不起作用 也许这与我的代码有关 但不这么认为 当然 当我在外部包含 jQu
  • ExpressJS - 提供通用 Nuxt 应用程序和 AngularJS SPA

    我有一个具有以下结构的博客项目 服务器 用 Node Express 编写 管理员 AngularJS SPA public AngularJS SPA 目前 管理部分和公共部分具有相同的域 但管理部分使用不同的子域 这允许我在 Expre
  • JQuery 验证不起作用

    我有一种表单 其中一个输入类型的值为 名字 但这可以在 onfocus 函数上更改我想验证此输入字段 如果它为空白或 名字 我有两个 jQuery 文件jquery 1 4 2 min js jquery validate pack js
  • 使用 jquery 时出现控制台错误 - Uncaught TypeError: Object # has no method

    我尝试使用以下 js 添加类或 css 样式 但出现控制台错误 var i 0 question i addClass show 收到以下控制台日志错误 Uncaught TypeError Object has no method add
  • 使用 Lodash 循环 JavaScript 对象中的属性

    是否可以循环访问 JavaScript 对象中的属性 例如 我有一个 JavaScript 对象定义如下 myObject options property1 value 1 property2 value 2 属性将动态添加到该对象 有没
  • 用于检查字符串是否至少包含 3 个字母数字字符的最有效的正则表达式

    我有这个正则表达式 a zA Z0 9 3 我用它来查看字符串中是否至少包含 3 个字母数字字符 似乎有效 它应该匹配的字符串示例 a3c 0 c 8 9 9d 但是 我需要它更快地工作 有没有更好的方法使用正则表达式来匹配相同的模式 编辑

随机推荐

  • 透彻了解inlining的里里外外——条款30

    Inline函数 多棒的点子 它们看起来像函数 动作像函数 比宏好得多 见条款2 可以调用它们又不需要蒙受函数调用所招致的额外开销 你还能要求更多吗 你实际获得的比想到的还多 因为 免除函数调用成本 只是故事的一部分而已 编译器最优化机制通
  • 2021美赛F题

    2021年 问题E 重新优化食物系统 最近的事件向我们表明 我们的全球粮食系统即使在世界的某些地区也是不稳定的 它通常服务于全世界 这些不稳定的部分原因是我们目前的全球气候变化 庞大的国内和国际食品生产商和经销商体系 这个食物系统 使食物的
  • CUDA矩阵乘法优化

    前言 纸上的来终觉浅 绝知此事要躬行 naive写法 一个矩阵的乘法简单如下 C A B 一般用gemm A B C M N K 来表示 其中的m n k代表的位置如下 默认是k表示消失的纬度 上图的红色虚线围起来的是一个block要负责的
  • MySQL存储引擎InnoDB与Myisam的六大区别

    MySQL有多种存储引擎 每种存储引擎有各自的优缺点 可以择优选择使用 MyISAM InnoDB MERGE MEMORY HEAP BDB BerkeleyDB EXAMPLE FEDERATED ARCHIVE CSV BLACKHO
  • MySQL注入绕安全狗脚本 -- MySQLByPassForSafeDog,以及端口爆破工具 -- PortBrute配置使用

    工具介绍 此Tamper仅仅适用于MySQL数据库 在SQLMap使用过程中添加参数 tamper MySQLByPassForSafeDog 安装与使用 1 安装网站安全狗Apache最新版 2 启用安全狗 不加MySQLByPassFo
  • vue.js组件详解

    一 组件的概念及复用 1 1 为什么要使用组件 组件 component 是vue js最核心的功能 用来实现局部 特定 功能效果的代码集合 html css js image 组件是可复用的 Vue 实例 把一些公共的模块抽取出来 然后写
  • anaconda创建和删除环境

    一 创建环境 在菜单栏中打开Anaconda Prompt 它是一个命令行界面 我们输入下面命令创建环境 这里的py37是我随意起的环境名 大家任意取好记为主 后面的python版本也是自由指定 中间只有一个等号 例如我这里是想创建pyth
  • unicode编码表

    unicode编码表 转载于 近來情轉深的博客 http jlqzs blog 163 com blog static 2125298320070101826277 另附一个汉字转化unicode编码的网页工具 http www bangn
  • 使用别人编译的动态库gdb,路径不匹配

    如果你在调试时需要在动态库中打断点 但动态库的路径是别人的路径 可以使用 GDB 的 set substitute path 命令将动态库路径替换为你本地的路径 具体来说 执行以下步骤 启动 GDB 并加载调试目标 使用 info shar
  • WebFlux ServerHttpRequest RequestBody 读取

    MockServerHttpRequest request MockServerHttpRequest post test body test DecoderHttpMessageReader
  • 安卓开发--不走弯路,5步教你快速实现拍照功能(基于安卓13)

    先展示效果 实现基本逻辑很简单 大致5步为 点击按钮 启动相机 拍照 保存相片 展示相片 但是这里面有一些细节对于初次接触安卓的用户并不友好 比如笔者我 折腾了一阵子才梳理出基本流程 下面我将分步骤说明 按着我的步骤即可快速实现拍照功能 目
  • Update function的问题和解决方案

    DN的过账一般使用的是都是 Function WS DELIVERY UPDATE 其实这是一个经常使用到的函数 注意 这不是一个BAPI 只是一个函数 但是这个函数里面有一个update funtion 所以这个函数并没有返回参数 ret
  • 【RK3399】I3399烧写Debian系统详解

    00 目录 文章目录 00 目录 01 驱动安装 02 镜像文件烧写 03 问题讨论 04 附录 01 驱动安装 1 1 没有安装驱动的时候 显示感叹号 1 2 解压DriverAssitant v5 1 1 zip 1 3 双击Drive
  • Tomcat的下载安装及使用

    目录 一 tomcat简介 二 tomcat的下载 1 进入官网界面 2 选择你使用的版本 3 选择下载 4 将下载好的tomcat安装包进行解压 5 Tomcat的目录结构 6 启动tomcat 7 关闭tomcat 8 解决乱码问题 8
  • 动态绑定与静态绑定的小结(改)

    接下来的一段话是我从一位博客大佬那里copy来的 对象的静态类型 对象在声明时采用的类型 是在编译期确定的 对象的动态类型 目前所指对象的类型 是在运行期决定的 对象的动态类型可以更改 但是静态类型无法更改 静态绑定 绑定的是对象的静态类型
  • 基于多渠道比价

    目录 背景 流程梳理 技术预研 关键点代码 后记 背景 产品贱兮兮的跑来问 星哥 我们既然接入了那么多渠道 那么能不能在客户下单的时候做多渠道比价了 我 这是什么骚操作 产品 就是客户下单的时候 我们可以在已经接入的渠道中进行比价 然后选择
  • 访黏度计算公式_常用粘度单位换算

    常用粘度单位换算 1 厘泊 1cP 1 毫帕斯卡 秒 1mPa s 100 厘泊 100cP 1 泊 1P 1000 毫帕斯卡 秒 1000mPa s 1 帕斯卡 秒 1Pa s 用厘泊 Cp 为单位 1cp 10 3Pa s 动力粘度与运
  • 汽车加油行驶问题【网络流24题】【可以使用BFS】

    题目链接 这道题虽然说是网络流24题中的一题 但是我的第一想法确实去用BFS 跑一个最小的花费 但是由于加油的钱 向后走的钱 开设一个新的加油站的钱是不固定的 所以 我们需要进行相应的判断 跑所有可以达到终点的值去比较大小 include
  • 省掉80%配置时间,这款Mock神器免费又好用

    前端的痛苦 作为前端 最痛苦的是什么时候 每个迭代 需求文档跟设计稿都出来了 静态页面唰唰两天就做完了 可是做前端又不是简单地把后端吐出来的数据放到页面上就完了 还有各种前端处理逻辑啊 后端接口还没出来 我就得边写代码边测前端效果 又没有真
  • Vue3+Vite+AntDesignVue初始化项目

    通过vite官方的命令新建一个vue3的项目 通过这个命令新建的项目结构非常简介 当然什么也没有 需要手动安装路由等 npm create vite latest 1 配置热更新和路径别名 安装 types node 配置地址时会用到 np