制作一个项目用于研究elementUI的源码
需求:修改el-tooltip的颜色,发现传递参数等方法都不太好用,也可以使用打断点的方式,但也有点麻烦,因此打算直接修改源码,把组件逻辑给修改了
第一步下载源码
源码地址
GitHub - ElemeFE/element: A Vue.js 2.0 UI Toolkit for Web
第二步,创建vue项目

使用vuecli创建vue项目,在src下面创建element-ui文件夹,把上面源码的packages文件夹和src文件夹放入elementui中
第三步,处理导入问题
把复制的源码中引入element-ui的源头指向本地的源码内容,需要修改vue.config.js文件
const { defineConfig } = require('@vue/cli-service')
const path = require("path");
module.exports = defineConfig({configureWebpack: {resolve: {alias: {"@": path.resolve(__dirname, "src"),// "element-ui": "2.14.1","element-ui": path.resolve(__dirname, "src/element-ui"),},},},transpileDependencies: true
})
第四步,在main.js中引入
由于上面修改了vue.config.js,这里使用的element-ui都是本地的内容
import Vue from 'vue'
import App from './App.vue'
import ElementUI from 'element-ui/src/index';
import 'element-ui/packages/theme-chalk/src/index.scss';
Vue.config.productionTip = false
Vue.use(ElementUI)
new Vue({render: h => h(App),
}).$mount('#app')
第五步,解决报错
源码中未使用的变量等其他内容,在npm run serve的时候会报错,所以要关掉。在packages.json文件中的eslintConfig写入下面的rules,关掉提示
"rules": {"no-console": "off","no-debugger": "off","no-extra-semi": "off","no-unused-vars": "off","no-undef": "off","no-prototype-builtins": "off","no-useless-escape": "off","vue/multi-word-component-names": "off","vue/no-mutating-props": "off","no-empty": "off","vue/no-unused-components": "off","vue/no-side-effects-in-computed-properties": "off","vue/no-use-v-if-with-v-for": "off","no-case-declarations": "off","vue/return-in-computed-property": "off","vue/valid-v-model": "off"}
第六步,包的处理
源码中有些地方引入了包/依赖,需要安装一下才能使用源码,这里可以直接复制下面的内容,然后重新npm i
"dependencies": {"async-validator": "~1.8.1","core-js": "^3.8.3","deepmerge": "^1.2.0","normalize-wheel": "^1.0.1","resize-observer-polyfill": "^1.5.0","throttle-debounce": "^1.0.1","vue": "^2.6.14"},"devDependencies": {"@babel/core": "^7.12.16","@babel/eslint-parser": "^7.12.16","@vue/cli-plugin-babel": "~5.0.0","@vue/cli-plugin-eslint": "~5.0.0","@vue/cli-service": "~5.0.0","eslint": "^7.32.0","eslint-plugin-vue": "^8.0.3","sass": "^1.35.2","sass-loader": "^10.1.1","vue-template-compiler": "^2.6.14"},
之后直接使用组件的内容,而且还可以直接修改源码就能看到效果。便于研究源码内容和运行原理
相关文章:
制作一个项目用于研究elementUI的源码
需求:修改el-tooltip的颜色,发现传递参数等方法都不太好用,也可以使用打断点的方式,但也有点麻烦,因此打算直接修改源码,把组件逻辑给修改了 第一步下载源码 源码地址 GitHub - ElemeFE/element: A Vue.j…...
[AI]从零开始的llama.cpp部署与DeepSeek格式转换、量化、运行教程
一、前言 在上一次的DeepSeek的部署教程中,我们使用Ollama与LM Studio很轻松的部署了DeepSeek并且也完成了相关API的调用,如果还有不会的小伙伴请看下面的教程: DeepSeek本地部署:[AI]从零开始的DeepSeek本地部署及本地API调用教…...
vLLM专题(二):安装-CPU
vLLM 是一个 Python 库,支持以下 CPU 变体。选择您的 CPU 类型以查看供应商特定的说明: Intel/AMD x86 vLLM 最初支持在 x86 CPU 平台上进行基本模型推理和服务,支持的数据类型包括 FP32、FP16 和 BF16。 注意 此设备没有预构建的 wheel 包或镜像,因此您必须从源代码构建 v…...
JVM 底层探秘:对象创建的详细流程、内存分配机制解析以及线程安全保障策略
文章目录 1. 类加载检查2. 内存分配① 指针碰撞② 空闲列表线程安全问题: 3. 内存空间初始化4. 对象头设置5. 对象初始化 当Java虚拟机遇到一条 new指令时,会执行以下步骤来创建对象: 1. 类加载检查 首先检查new指令的参数是否能在常量池中…...
【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-Chapter14-DOM
十四、DOM 文档对象模型(DOM,Document Object Model)是 HTML 和 XML 文档的编程接口。DOM 表示由多层节点构成的文档,通过它开发者可以添加、删除和修改页面的各个部分。脱胎于网景和微软早期的动态 HTML(DHTML&#x…...
外汇掉期(FX Swap):全球企业管理外汇风险的关键工具(中英双语)
外汇掉期(FX Swap):全球企业管理外汇风险的关键工具 引言 在全球化经济环境下,跨国公司、银行和金融机构经常面临外汇风险,因为它们的业务涉及多种货币。例如,一家中国公司可能需要欧元支付欧洲供应商&am…...
verilog程序设计及SystemVerilog验证
1.Verilog测试程序设计基础 1.1Testbench及其结构 在仿真的时候Testbench用来产生测试激励给待验证设计( Design Under Verification, DUV),或者称为待测设计(Design UnderTest, DUT) 。 测试程序的一般结构: Testbench是一个测试平台,信号…...
Unity DeepSeek API 聊天接入教程(0基础教学)
Unity DeepSeek API 聊天接入教程(0基础教学) 1.DeepSeek 介绍 DeepSeek是杭州深度求索人工智能基础技术研究有限公司推出的一款大语言模型。2025年1月20日,DeepSeek-R1正式上线,和当前市面上的主流AI相比,它在仅有极少标注数据的情况下&am…...
力扣 乘积最大子数组
动态规划,注意负负得正,dp交换。 题目 注意这里的dp的乘积要求最大,而两个很大的负数相乘也是大的,因此在每遍历到一个数时要存一个最大值的dp与一个最小值的dp,然后遍历完后再去存ans的dp。由于存在负数,…...
ABP - 事件总线之分布式事件总线
ABP - 事件总线之分布式事件总线 1. 分布式事件总线的集成1.2 基于 RabbitMQ 的分布式事件总线 2. 分布式事件总线的使用2.1 发布2.2 订阅2.3 事务和异常处理 3. 自己扩展的分布式事件总线实现 事件总线可以实现代码逻辑的解耦,使代码模块之间功能职责更清晰。而分布…...
osgearth控件显示中文(八)
当前自己知道的方法大概有以下两种: (一)直接转成utf8 其实在前面的文章中已经有了。 osgEarth::Annotation::PlaceNode *pn = new osgEarth::Annotation::PlaceNode(GeoPoint(geoSRS, 110, 34), String2UTF8("中国"), style);std::wstring String2Wstring(con…...
基于opencv的 24色卡IQA评测算法源码-可完全替代Imatest
1.概要 利用24色卡可以很快的分析到曝光误差,白平衡误差,噪声,色差,饱和度,gamma值。IQA或tuning工程一般用Imatest来手动计算,不便于产测部署,现利用opencv实现了imatest的全部功能,…...
webpack打包优化策略
1. 减少打包体积 减少打包文件的大小是为了提高加载速度,降低网络带宽消耗,提升用户体验。常见的减少打包体积的优化策略包括: 代码分割(Code Splitting):将代码拆分成多个小文件,让浏览器按需…...
Kafka日志数据深度解析:从基础查看到高级操作全攻略
#作者:孙德新 文章目录 查看log日志文件(kafka-dump-log.sh)1、查看Log文件基本数据信息2、index文件健康性检查(--index-sanity-check)3、转储文件(--max-message-size)4、偏移量解码(--offsets-decoder)5、日志数据解析(--transaction-log-decoder)6、查询Log文件…...
DeepSeek-R1使用生存指南
文章目录 1.为什么普通人一定要使用DeepSeek2.DeepSeek的几种使用方式2.1网页端直接使用2.2手机端app使用2.3其他第三方平台 3.网页端按钮的说明4.正确的提问技巧4.1不要定义过程4.2明确受众4.3记忆时间有限4.4输出长度限制4.5如何清除上下文的记忆 5.几个避坑点5.1冗长提示词污…...
Code::Blocks 创建 C 项目 二
Code::Blocks 创建 C 项目 二 Code::Blocks 安装请看 Code::Blocks 安装 启动 Code Blocks 选择 Create a new project 弹出界面选择 Projects -> Console application -> Go 选择 C :表示创建的是 C 语言项目 点击 Next Project title:项目名 …...
pyqt写一个待办程序
ToDoApp 框架选择 一个简单的GUI程序,可以使用pyqt完成。pyqt是qt的python实现版本。 界面搭建 设计一个美观 简洁的界面 class ToDoApp(QWidget):def __init__(self):super().__init__()# 设置窗口属性self.setWindowTitle("Daily To Do List")self…...
总结前端常用数据结构 之 数组篇【JavaScript -包含常用数组方法】
【亲爱的读者,爱博主记得一键三连噢噢ooo~~ 啾咪】 创建数组: 以字面量的形式创建新数组:let arr1 [1, 2, 3];通过 Array 构造函数并传入一组元素(4,5,6)来创建一个新数组:let arr2 new Array(4, 5, 6);…...
利率掉期(Interest Rate Swap):运作原理、收益模式及市场角色解析(中英双语)
利率掉期(Interest Rate Swap):运作原理、收益模式及市场角色解析 引言 利率掉期(Interest Rate Swap, IRS) 是金融市场中最常见的衍生品之一,它允许两方交换固定利率和浮动利率,以优化融资成…...
Mac 开发工具推荐
Homebrew 软件安装管理必备神器,相当于 Linux 上的 yum,安装了homebrew之后,以下软件都可以通过brew cask install 和 brew install进行直接安装 IntelliJ IDEA Java开发ide 相关插件: 1)lombok 2)Aliba…...
第40篇:Vibe Coding时代:LangGraph 端到端 Coding Agent 总装实战,打通需求、代码、测试、审查、提交完整闭环
第40篇:Vibe Coding时代:LangGraph 端到端 Coding Agent 总装实战,打通需求、代码、测试、审查、提交完整闭环 一、问题场景:单个能力都做了,但还没有真正闭环 前面我们已经实现了很多模块: 需求分析 代码生成 文件写入 pytest 测试 静态检查 代码审查 安全审查 README…...
ChanlunX缠论插件终极指南:3步实现自动化技术分析,告别手动画线困扰
ChanlunX缠论插件终极指南:3步实现自动化技术分析,告别手动画线困扰 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 还在为复杂的缠论分析而头疼吗?ChanlunX缠论插件是…...
【2026奇点智能技术大会权威解码】:AISMM与FinOps融合落地的5大实战路径,错过再等三年
更多请点击: https://intelliparadigm.com 第一章:2026奇点智能技术大会:AISMM与FinOps 2026奇点智能技术大会首次将人工智能系统成熟度模型(AISMM)与云原生财务运营(FinOps)深度耦合ÿ…...
【计算机网络】第三章 数据链路层
3.1 数据链路层的基本概念数据链路层使用的两种信道类型:点对点信道 这种信道使用一对一的点对点通信方式。 广播信道 这种信道使用一对多的广播通信方式,因此过程比较复杂。 广播信道上连接的主机很多, 因此必须使用专用的共享信道协议来协…...
Gemini 3 Pro 给了10Mtoken context,60% 这个数字让我换回了记忆方案
我前阵子做一个法律咨询助手 demo,把客户和律师的 30 万字会话历史一次性塞进 Gemini 3 Pro 的 context 窗口。Gemini 3 Pro 的 10M token 窗口听起来像是"agent memory 已经被 context 长度解决了"——直到我跑了第一组真实问题。 客户问"我们上次…...
AISMM不是ISO替代品——20年信息治理专家拆解其不可替代的7层风控价值
更多请点击: https://intelliparadigm.com 第一章:SITS2026圆桌:AISMM的全球推广 在2026年新加坡国际技术峰会(SITS2026)上,AISMM(AI-Driven Software Maturity Model)正式成为全球…...
浪潮云洲×摩尔元数达成战略合作,以工业AI赋能区域数字产业发展
近日,在第九届数字中国建设峰会“人工智能助力产业数智化转型与提升政府效能研讨会”上,浪潮集团旗下浪潮云洲携手摩尔元数、泰山新基建、平顶山交水建投、青岛城投数科、山东鲁开、金通数字、甘肃弱水新能源等进行集中签约,聚焦区域数字产业…...
CentOS7上InfluxDB2保姆级安装与初始化配置(避坑指南)
CentOS7下InfluxDB2实战部署与深度配置指南 在物联网和APM监控领域,时序数据库的选择往往直接决定整个系统的性能上限。作为新一代时序数据库的标杆,InfluxDB2凭借其创新的IOx存储引擎和Flux查询语言,正在重塑时间序列数据处理的标准。本文将…...
3分钟学会GIMP Resynthesizer:免费开源插件让你成为图像修复专家
3分钟学会GIMP Resynthesizer:免费开源插件让你成为图像修复专家 【免费下载链接】resynthesizer Suite of gimp plugins for texture synthesis 项目地址: https://gitcode.com/gh_mirrors/re/resynthesizer 还在为照片中的瑕疵而烦恼吗?想要轻松…...
AUTOSAR MCAL实战:如何为TC397的SPI/ADC外设精准配置时钟源?
AUTOSAR MCAL实战:TC397外设时钟配置的黄金法则 在TC397芯片的开发过程中,时钟配置堪称嵌入式工程师的"命门"。想象一下这样的场景:你花了三天三夜调试SPI通信,却发现波特率始终偏差15%;或者ADC采样结果总是…...
