Muse-Ant-Desgin-Vue 改造成 Vite+Vue3

后台地址:https://www.creative-tim.com/product/muse-vue-ant-design-dashboard?ref=antdv-official

一、配置 Vite+AntDesginVue

  • 配置Vite+AntDesginVue

Vite+AntDesginVue配置:https://blog.csdn.net/qq_17523181/article/details/143241626

  • 安装vue-router
cnpm i vue-router

二、安装muse-vue-ant-design

  • 下载后台
  • cnpm i,安装依赖
  • 运行查看
    在这里插入图片描述
  • 现在看到 muse-vue-ant-design没有使用vite,也没有使用vue3

三、安装less

  • 原版使用sass,现在我们改用less
cnpm i less
  • vite.config.js里配置,为less设置支持js语法和字符集默认设置
    在这里插入图片描述
  • 制作一个less测试:定义一个样式,定义一个变量,定义一个循环
  • src/less/test.less
    在这里插入图片描述
  • 在main.js里加入
import '@/less/test.less'
  • 在App.vue里简单测下less
    可以看到body的标签起到了作用
    若要使用变量,则需要把less文件引入
    在这里插入图片描述
    写一个bg-primary的class,可以看到样式已经有
    在这里插入图片描述

四、移植Muse-Ant-Desgin-Vue程序到Vite框架

  • 拷贝文件
    在这里插入图片描述

  • 建立一个less文件夹,用于移植scss的内容
    建立一个app.less与base/_variables.less
    app.less下先import一个less
    @import “@/less/base/_variables” ;
    _variables.less文件里,把$替换成@

  • main.js里改为

import { createApp } from 'vue';
// 全局样式
import '@/less/app.less'
// app实例
import App from './App.vue';
const app = createApp(App);
// 路由注册
import router from './router'
app.use(router)
// ant-design-vue注册
import Antd from 'ant-design-vue';
import 'ant-design-vue/dist/reset.css';
app.use(Antd)
// 全局组件注册
import DashboardLayout from './layouts/Dashboard.vue';
app.component("layout-dashboard", DashboardLayout)app.mount('#app')
  • 在App.vue里
<template><div id="app"><component :is="layout"><router-view /></component></div>
</template><script setup>
import {computed} from "vue";
import {useRoute} from 'vue-router'
const route = useRoute();
const layout = computed(()=>{return "layout-" + ( route.meta.layout || "default" ).toLowerCase() ;
})</script>

五、Muse的框架

  • App.vue中,通过component动态组件来实现外部layout结构的切换
    这里的router-view只是示意,没有作用,真正的router-view是写在layout组件中的
<component :is="layout"><router-view />
</component>
  • 原版使用动态组件component,来确定框架的vue代码,组件在main.js里注册
    在这里插入图片描述
  • 根据路由不同,选择layout组件
    在这里插入图片描述

六、Router与入口调试

  • router/index.js 修改为vue3的语法,先定义/ 的默认入口,/dashboard 的首页vue
    routes原来定义了layout的参数,用于选择使用什么layout框架;
    vue3需要定义在meta里面
    在这里插入图片描述

  • router加入main.js
    在这里插入图片描述

  • 修改App.vue,实现原来的逻辑
    在这里插入图片描述

  • 把Dashbroad.vue里的组件、js代码全部注释,在html某处写入111,用于测试

  • 把layouts/Dashboard.vue,也同样注释,写入222,用于测试

  • 在main.js里注册layout
    在这里插入图片描述

  • 运行测试,发现2个vue文件都已经加载


七、修改全部sass,变为less

  • 基于之前的结构,一个个改过来,并加入less,改一个,测试一个
  • _utilities.less:
    循环与extend的写法
each(range(0,10), {@j: @value * 5;.mt-@{j} {margin-top: 1px * @j !important;}.mb-@{j} {margin-bottom: 1px * @j !important;}.ml-@{j} {margin-left: 1px * @j !important;}.mr-@{j} {margin-right: 1px * @j !important;}.my-@{j} {&:extend(mt-@{j});&:extend(.mb-@{j});}.mx-@{j} {&:extend(.ml-@{j});&:extend(.mr-@{j});}.m-@{j} {&:extend(.my-@{j});&:extend(.mx-@{j});}
});

遇到数字开头的数组,改成

@shadows: {s0: @shadow-0;s1: @shadow-1;s2: @shadow-2;s3: @shadow-3;
};each(@shadows, {.shadow-@{index} {box-shadow: @value !important;}
})

八、修改vue2,变为vue3

  • 注意一:script 后面要加setup,不然会提示defineProps错误啥的
  • 注意二:import组件的时候,需要加上.vue的文件后缀
  • 注意三:一个模块一个模块进行改动,测试,才能清楚哪里没改对
  • 注意四:route的meta使用
import {useRoute} from 'vue-router'
const route = useRoute();
  • 注意五:props的变量,需要在template里的加入props;script里一些this.变量也需要改为props.
let props = defineProps({data: {type: Object,},height: {type: Number,},
})
  • 注意六:在vite.config.js里设置下base目录与publicDir目录
    在这里插入图片描述
  • 注意七:图片的src,可以需要在前面加上/号

九、最后

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

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

相关文章

实习作假:阿里健康实习做了RABC中台,还优化了短信发送流程

最近有二本同学说&#xff1a;“大拿老师&#xff0c;能帮忙看下简历吗&#xff1f;” 如果是从面试官的角度来看&#xff0c;这个同学的实习简历是很虚假的。 但是我们一直强调的是&#xff1a;校招的实习简历是不能出现明显的虚假。 首先&#xff0c;你去公司做事情&#…

疯狂Java讲义-Java基础类库

Java基础类库 本章思维导图 5-0Java基础类库.png 用户互动 使用Scanner获取键盘输入 Scanner主要提供了两个方法来扫描输入 hasNextXxx(); 是否还有下一个输入项&#xff0c;其中Xxx可以是int、long等代表基本数据类型的字符串。 nextXxx(); 获取下一个输入项。Xxx的含义与前一…

[前端] 为网站侧边栏添加搜索引擎模块

前言 最近想给我的个人网站侧边栏添加一个搜索引擎模块&#xff0c;可以引导用户帮助本站SEO优化&#xff08;让用户可以通过点击搜索按钮完成一次对本人网站的搜索&#xff0c;从而实现对网站的搜索引擎优化&#xff09;。 最开始&#xff0c;我只是想实现一个简单的百度搜索…

汇聚全球前沿科技产品,北京智能科技产业展览会·世亚智博会

在北京这座古老而又充满现代气息的城市中&#xff0c;一场科技与创新的盛宴正悄然上演——北京智能科技产业展览会&#xff08;简称&#xff1a;世亚智博会&#xff09;&#xff0c;作为全球前沿科技的汇聚地&#xff0c;不仅展示了人工智能、5G通信、虚拟现实等尖端技术的最新…

JAVA基础:数组 (习题笔记)

一&#xff0c;编码题 1&#xff0c;数组查找操作&#xff1a;定义一个长度为10 的一维字符串数组&#xff0c;在每一个元素存放一个单词&#xff1b;然后运行时从命令行输入一个单词&#xff0c;程序判断数组是否包含有这个单词&#xff0c;包含这个单词就打印出“Yes”&…

猎板PCB2到10层数的科技进阶与应用解析

1. 单层板&#xff08;Single-sided PCB&#xff09; 定义&#xff1a;单层板是最基本的PCB类型&#xff0c;导线只出现在其中一面&#xff0c;因此被称为单面板。限制&#xff1a;由于只有一面可以布线&#xff0c;设计线路上有许多限制&#xff0c;不适合复杂电路。应用&…

2025年山东省考报名流程图解

2025年山东公务员考试备考开始 为大家整理了从笔试到录用的全部流程&#xff0c;希望可以帮助到你们&#xff01;参考2024年山东省考公告整理&#xff0c;请以最新公告为准&#xff01; 一、阅读公告和职位表 二、职位查询 三、网上报名 四、确认缴费 五、网上打印准考证 六、参…

修改elementUI等UI组件样式的5种方法总结,哪些情况需要使用/deep/, :deep()等方式来穿透方法大全

文章目录 方法 1:全局修改样式示例:修改 `ElMessage` 的背景色和字体颜色方法 2:修改特定类型的 `ElMessage` 样式-全局-不需要穿透示例:修改 `ElMessage` 成功类型的样式方法 3:通过 Scoped CSS 在组件内部修改-局部-不需要穿透方法 4:使用 JavaScript 动态修改样式-不需…

pandas——对齐运算+函数应用

引言&#xff1a;对齐运算是数据清洗的重要过程&#xff0c;可以按索引对齐进行运算&#xff0c;如果没对齐的位置则补NaN&#xff0c;最后也可以填充NaN 一、Series的对齐运算 1.Series 按行、索引对齐 import pandas as pds1 pd.Series(range(10, 20), indexrange(10)) s2…

# Ubuntu 达人九步养成记(1)

Ubuntu 达人九步养成记&#xff08;1&#xff09; 目录&#xff1a; 一、ubuntu基本安装 二、设置语言环境 三、设置服务器镜像源 四、在启动栏添加终端图标 五、使用apt更新和升级系统软件 六、使用apt安装软件 七、使用apt删除软件以及apt-get 八、deb格式及谷歌浏览…

优选算法第五讲:位运算模块

优选算法第五讲&#xff1a;位运算模块 1.常见的位运算总结2.判断字符是否唯一3.丢失的数字4.两整数之和5.只出现一次的数字II6.消失的两个数字 1.常见的位运算总结 2.判断字符是否唯一 链接: link class Solution { public:bool isUnique(string astr) {if(astr.size() >…

计算机视觉算法真的难学吗?这些技巧让你轻松掌握

在当今这个数字化迅猛发展的时代&#xff0c;计算机视觉作为人工智能的重要分支&#xff0c;正在逐渐改变我们的生活和工作方式。很多人可能会觉得计算机视觉算法难以掌握&#xff0c;尤其是在面对复杂的数学和编程时&#xff0c;常常会感到无从下手。不过&#xff0c;实际上&a…

基于YOLO11/v10/v8/v5深度学习的老鼠智能检测系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

机器学习—前向传播的一般实现

可以写一个函数来实现一个密集的层&#xff0c;那是神经网络的单层&#xff0c;所以定义稠密函数&#xff0c;它将上一层的激活作为输入以及给定层神经元的参数w和b。看下边图片所展示的例子&#xff0c;把所有这些权重向量堆叠成一个矩阵&#xff0c;wnp.array([[1,-3,5][2,4,…

高清烟花视频素材下载网站推荐

无论是庆祝节日、婚礼&#xff0c;还是各种欢庆活动&#xff0c;烟花总能瞬间点燃气氛&#xff0c;带来视觉上的震撼。在视频作品中加入绚丽的烟花瞬间&#xff0c;能够立刻提升画面的冲击力和节庆氛围。那么&#xff0c;高清烟花视频素材去哪下载呢&#xff1f;今天&#xff0…

Java异常体系结构

在Java编程中&#xff0c;异常处理是一个重要的概念。理解Java的异常体系结构以及如何捕获和处理异常&#xff0c;对于编写健壮的程序至关重要。本文将详细介绍Java异常体系结构的组成部分&#xff0c;以及异常的捕获和处理机制。 一、Java异常体系结构 Java的异常体系结构可以…

免费,基于React + ECharts 国产开源 IoT 物联网 Web 可视化数据大屏

文末查看开源项目地址 Light Chaser 是一款国产开源免费的基于 React18、Vite5、TypeScript5 技术栈实现的 Web 可视化大屏设计工具&#xff0c;支持Docker方式部署&#xff0c;支持MySQL、PostgreSQL、SQL Server、Oracle 数据源。 你可以简单快速地搭建数据可视化展示、数据报…

【解决】Pico 串流 Unity 开发环境 Preview 黑屏问题

开发平台&#xff1a;Unity 6.0 开发工具&#xff1a;Pico SDK   一、问题描述 在 Unity 开发环境下运行 测试 PicoVR 表现时&#xff0c;出现 Game视窗 PicoVR投屏 呈现黑屏效果。详细背景如下&#xff1a; UnitySwitch PlateformPICO Integration SDKPICO Live Preview6…

pytest高版本兼容test_data[“log“] = _handle_ansi(“\n“.join(logs))错误

一、问题现象&#xff1a; 执行seleniumpytest结束时报: INTERNALERROR> File "D:\workspace\pytestframe\.venv\Lib\site-packages\pytest_html\report_data.py", line 141, in add_test INTERNALERROR> test_data["log"] _handle_ansi(&q…

编译工具与文件学习(一)-YAML、repos、vcstoolcolcon

YAML YAML&#xff08;YAML Ain’t Markup Language&#xff09;是一种人类可读的数据序列化格式&#xff0c;常用于配置文件、数据交换和存储结构化数据。YAML 的设计目标是简洁、易读&#xff0c;并且能够表示复杂的数据结构。 YAML 文件的基本语法 基本结构&#xff1a; Y…