javascript - 如何在不为每个组件物理添加 id 属性的情况下为大型 vue 应用分配 ID
问题描述
我正在开发一个 vue 应用程序。目前,该应用程序由大量组件和大量代码组成。目前这些组件(几乎全部)没有分配给它们的 id。我想为每个组件分配 id 。
由于有很多组件,我不想物理地访问每个组件文件,然后给它 id 属性。理想情况下,我想使用函数为其分配一个 ID。
我搜索了一个解决方案并遇到了Vue.js:如何为每个组件实例设置唯一 ID? 这个问题中的解决方案讨论了添加生成唯一ID的插件或mixin,但这仍然需要我在每个组件中物理添加ID属性。
我想出了以下功能
const assignIds = (app, components = {}) => {
let tags = components;
let workingTag;
console.log(app)
console.log(app.$children.length)
workingTag = app.$options._componentTag || app.$parent.$options._componentTag || "";
let myTag = (workingTag + app.$el?.localName).toLowerCase().replaceAll('-','');
let tagVal;
let tagCount = tags[myTag] || 0;
tagVal = myTag + tagCount;
++tagCount;
tags[myTag] = tagCount;
if(app.$el && (!app.$el?.id || app.$el?.id.includes("BVID"))){
app.$el.id = tagVal;
}
if(app.$children.length > 0){
let currentTag = app.$children;
currentTag.forEach(element => {
assignIds(element, tags)
});
}
},
我不确定在何处以及如何添加此功能,以便它在应用程序中的每个挂载上运行(多个组件都调用了挂载)或将其添加为插件
解决方案
推荐阅读
- scala - 杰克逊用 $ 符号读取节点字段
- npm - 为什么每次我使用 npm 或 yarn 安装包时,它都会安装所有依赖项?
- rust - 迭代器表示任意行为
- javascript - IOS SAP Hybrid/Native 移动应用程序中的 ajax GET 调用中的禁止错误
- python - NN 如何理解哪个类对应于哪个输出节点?反过来,我们作为人们如何识别概率对应的内容?
- python - 为什么某些动画 GIF 会在 Pillow 上显示故障区域?
- vue.js - 插入数据正在工作,但是当我更新数据时,它会给出一个错误,即所有字段都是必需的,即使它有一个值。如何解决这个问题?
- python - 根据直方图计数选择数据
- c++ - 使用 wxStreams 解压 .tar 文件
- javascript - 三.js。透视相机高度位置