【Vue3项目实战系列一】—— 全局样式处理,导入view-ui-plus组件库,定制个性主题

news2025/1/8 21:00:35

😉 你好呀,我是爱编程的Sherry,很高兴在这里遇见你!我是一名拥有十多年开发经验的前端工程师。这一路走来,面对困难时也曾感到迷茫,凭借不懈的努力和坚持,重新找到了前进的方向。我的人生格言是——认准方向,坚持不懈,你终将迎来辉煌!欢迎关注我😁,我将在这里分享工作中积累的经验和心得,希望我的分享能够给你带来帮助。
👉 关于【Vue3项目实战系列】专栏,本专栏旨在帮助新人粉丝全面快速的掌握vue3开发技术,在接下来的日子里我带着大家从零开始一个vue3项目,项目包含了框架搭建,用户登录,用户权限,表格增删改查,表单验证,等一套完整的用户管理系统的实践开发,学完可以帮助前端新人至少拥有一年工作经验,本专栏完全免费,欢迎关注并订阅!🎈
🎯如果你有任何困惑或疑问欢迎评论区给我留言哦,我收到后会第一时间为你答疑解惑😉

全局样式处理

在开始一个项目之前,我们该怎么组织我们的样式呢,怎么组织方便日后调用和维护呢,这是一个值得思考的问题。在没有vue之前,我们知道,要创建一个公共文件夹来存放css文件,要有index.css和reset.css,其实在vue项目中也是一样的,今天我们就来说说在vue项目中我们如何管理我们的样式。

在下面的开发中我们将使用less编写css,首先我们需要在项目中安装less。

安装less
// 使用npm
npm install less less-loader --save-dev
// 使用yarn
yarn add less less-loader --dev

在这里插入图片描述

配置less

在这里插入图片描述

创建styles文件夹

我们先在src目录下创建一个styles文件夹用来存放我们的样式文件。
并在styles文件夹中创建index.less reset.less variables.less文件。

src/
└── styles/
    ├── index.less             # 主样式入口文件,用于引入其他less文件
    ├── reset.less             # 重置基础样式
    └── variables.less         # 公共样式变量

在这里插入图片描述

导入view-ui-plus组件库

View UI Plus 是 View Design 设计体系中基于 Vue.js 3 的一套 UI 组件库,主要用于企业级中后台系统。

View UI Plus 提供了超过 80 个常用底层组件(如 Button、Input、DatePicker等)及业务组件(如 City、Auth、Login 等)。

在这里插入图片描述
官网:https://www.iviewui.com/view-ui-plus/guide/introduce

安装
npm install view-ui-plus --save
全局引用

如果使用的组件比较多,可以选择下面这种全局引入方式,一次引入,在项目中所有组件中都可以使用。这种引入方式在项目打包的时候会将全部组件都打包进项目,项目的体积会比较大。

在main.js中加入下面这段代码。

import { createApp } from 'vue'
import ViewUIPlus from 'view-ui-plus'
import App from './App.vue'
import router from './router'
import store from './store'
import 'view-ui-plus/dist/styles/viewuiplus.css'

const app = createApp(App)

app.use(store)
  .use(router)
  .use(ViewUIPlus)
  .mount('#app')
按需引用

如果使用的组件比较少,比如只用到了其中几个组件,可以选择这种按需引入的方式。这种方式在项目打包的时候只会将你使用到的组件打包进项目,与全局引入相比项目的提交会比较小。

借助插件 babel-plugin-import 可以实现按需加载组件,减少文件体积。首先安装,并在文件 .babelrc 中配置:

安装babel-plugin-import
npm install babel-plugin-import --save-dev
在.babelrc文件中配置
{
  "plugins": [
    [
      "import",
      {
        "libraryName": "view-ui-plus",
        "libraryDirectory": "src/components"
      },
      "view-ui-plus"
    ]
  ]
}

然后这样按需引入组件,就可以减小体积了:

import { Button, Table } from 'view-ui-plus';
app.component('Button', Button);
app.component('Table', Table);
注意事项

按需引用仍然需要导入样式,即在 main.js 或根组件执行 import ‘view-ui-plus/dist/styles/viewuiplus.css’;

.babelrc文件如果存在于项目中,直接在里面增加配置就行,如果不存在就在根目录下新建一个。

在这里插入图片描述

测试引入是否成功

配置好后,我们启动项目。然后找到App.vue文件加入组件
在这里插入图片描述
在启动项目后,页面中看见引入的按钮和表格组件就说明组件已经导入成功了。

在这里插入图片描述

选用哪种方式导入组件,取决于我们自身习惯和项目需要,我选择的是全局引入。

定制个性主题

view-ui-plus允许你定制个性主题,就如下面这样
在这里插入图片描述
在styles文件夹里新建一个custom-theme.less文件,用于修改主题

@import 'view-ui-plus/src/styles/index.less';

@primary-color: #8c0776;

在main.js里引入你的文件

import './styles/custom-theme.less'
import './styles/index.less'

在这里插入图片描述

上面就是我们定制的主题了,到这儿,已经完成了样式处理,导入view-ui-plus组件库,定制个性主题等工作,下一步就要定制布局了。欢迎评论区留言交流哦!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SCAU期末笔记 - 数据库系统概念往年试卷解析

数据库搞得人一头雾水,题型太多太杂,已经准备摆烂了。就刷刷往年试卷,挂不挂听天由命。 2019年 Question 1 选择题 1. R ∩ S R∩S R∩S等于一下哪个选项? 画个文氏图秒了 所以选A. R ∩ S R − ( R − S ) R∩SR-(R-S) R∩…

oxml中创建CT_Document类

概述 本文基于python-docx源码,详细记录CT_Document类创建的过程,以此来加深对Python中元类、以及CT_Document元素类的认识。 元类简介 元类(MetaClass)是Python中的高级特性。元类是什么呢?Python是面向对象编程…

Fabric环境部署

官方下载文档:A Blockchain Platform for the Enterprise — Hyperledger Fabric Docs main documentation 1.1 创建工作目录 将Fabric代码按照GO语言的推荐方式进行存放,创建目录结构并切换到该目录下。具体命令如下: mkdir -p ~/go/src/g…

TCP与DNS的报文分析

场景拓扑: 核心路由配置: 上(DNS):10.1.1.1/24 下(WEB):20.1.1.1/24 左(client):192.168.0.1/24 右(PC3):192.168.1.1/24Clint2配置&a…

怎么管理电脑usb接口,分享四种USB端口管理方法

怎么管理电脑usb接口,分享四种USB端口管理方法 USB接口作为电脑重要的外部接口,方便了数据传输和设备连接。 然而,不加管理的USB接口也可能带来安全隐患,例如数据泄露、病毒传播等。 因此,有效管理电脑USB接口至关重…

教育咨询系统架构与功能分析

一、系统架构 服务端 服务端:Java(最低JDK1.8,支持JDK11以及JDK17)数据库:MySQL数据库(标配5.7版本,支持MySQL8)ORM框架:Mybatis(集成通用tk-mapper&#x…

nginx http反向代理

系统:Ubuntu_24.0.4 1、安装nginx sudo apt-get update sudo apt-get install nginx sudo systemctl start nginx 2、配置nginx.conf文件 /etc/nginx/nginx.conf,但可以在 /etc/nginx/sites-available/ 目录下创建一个新的配置文件,并在…

代码管理助手-Git

前言 Git 是一个版本控制系统,可以帮助你记录文件的每一次修改。这样,如果你在编程时不小心把代码写错了,可以很容易地回退到之前的版本。最重要的是,Git 是完全免费的,用户可以在自己的计算机上安装和使用 Git&#x…

注册中心如何选型?Eureka、Zookeeper、Nacos怎么选

这是小卷对分布式系统架构学习的第9篇文章,第8篇时只回答了注册中心的工作原理的内容,面试官的第二个问题还没回答,今天再来讲讲各个注册中心的原理,以及区别,最后如何进行选型 上一篇文章:如何设计一个注册…

WebRtc02: WebRtc架构、目录结构、运行机制

整体架构 WebRtc主要分为三层: CAPI层:外层调用Session管理核心层:包括视频引擎、音频引擎、网络传输 可由使用者重写视频引擎:编解码器、视频缓存、视频增强音频引擎:编解码器、音频缓存、回音消除、降噪传输&#x…

【Java】JVM内存相关笔记

Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。 程序计数器&am…

基于springboot的网上商城购物系统

作者:学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等 文末获取“源码数据库万字文档PPT”,支持远程部署调试、运行安装。 目录 项目包含: 开发说明: 系统功能: 项目截图…

STM32 拓展 低功耗案例3:待机模式 (hal)

配置PA0的两种方式: 第一种 第二种 复制寄存器代码然后对其进行修改 mian.c /* USER CODE BEGIN Header */ /********************************************************************************* file : main.c* brief : Main program body…

VLMs之Agent之CogAgent:《CogAgent: A Visual Language Model for GUI Agents》翻译与解读

VLMs之Agent之CogAgent:《CogAgent: A Visual Language Model for GUI Agents》翻译与解读 导读:这篇论文介绍了CogAgent,一个专注于图形用户界面 (GUI) 理解和导航的视觉语言模型 (VLM)。这篇论文提出了一种新的视觉语言模型 CogAgent&#…

HTML+CSS+JS制作中华传统文化主题网站(内附源码,含5个页面)

一、作品介绍 HTMLCSSJS制作一个中华传统文化主题网站,包含首页、文化艺术页、传统工艺页、文化遗产页、关于我们页等5个静态页面。其中每个页面都包含一个导航栏、一个主要区域和一个底部区域。 二、页面结构 1. 顶部导航区 包含网站 Logo、主导航菜单&#xff…

笔记-使用ffmpeg产生rtsp视频流,然后用进行VLC播放

笔记-使用ffmpeg产生rtsp视频流,然后用进行VLC播放 1.软件配置1.1下载安装好**ffmpeg**1.2使用EasyDarwin创建RTSP服务器 2.FFmpeg找本地摄像头名字3.FFmpeg推流命令3.1使用VLC实现拉流 1.软件配置 1.1下载安装好ffmpeg ffmpeg官网 本地下载 1.2使用EasyDarwin创…

【竞技宝】CS2:HLTV2024职业选手排名TOP8-broky

北京时间2025年1月7日,HLTV年度选手排名正在持续公布中,今日凌晨正式公布了今年的TOP8为FAZE战队的broky。 选手简介 broky是一位来自拉脱维亚的职业CS选手,现年23岁。2018年7月,broky获得了FPL资格,连续几季在榜上前5。他的首次赛场留名是跟随拉脱维亚本土战队Wolsung出征BES…

Java到底是值传递还是引用传递????

在搞懂这个问题之前, 我们要首先了解什么是值传递, 什么是引用传递? 值传递: 传递的是数据的副本,修改副本不会影响原始数据。引用传递: 传递的是数据的引用(地址),修改引用会直接影响原始数据. 也就是说,值传递和引…

Vue3国际化多语言的切换

参考链接: link Vue3国际化多语言的切换 一、安装 vue-i18n 和 element-plus vue-i18n 是一个国际化插件,专为 Vue.js 应用程序设计,用于实现多语言支持。它允许你将应用程序的文本、格式和消息转换为用户的首选语言,从而提供本地化体验。…

2024AAAI SCTNet论文阅读笔记

文章目录 SCTNet: Single-Branch CNN with Transformer Semantic Information for Real-Time Segmentation摘要背景创新点方法Conv-Former Block卷积注意力机制前馈网络FFN 语义信息对齐模块主干特征对齐共享解码头对齐 总体架构backbone解码器头 对齐损失 实验SOTA效果对比Cit…