javascript - 使用 Javascript React 创建网格
问题描述
我想创建一个网格,我已经有一个工作代码可以创建网格,就像我想要的那样,代码看起来很丑,并且渲染任何超过 100 列/行长的东西都非常慢。
有没有办法用更简单的方法重新创建相同的网格?我对 React 很陌生,直到现在才使用 Java,所以我可能遗漏了一些东西或者只是心态错误。
任何有关改进的帮助将不胜感激。
这是代码:
function makeRows(size) {
let grid = []
let disabled = 0
let currentFieldDisabled = true
document.documentElement.style.setProperty('--grid-cols', +size + 1);
for (let c = 0; c < ((+size + 1) * size); c++) {
if (c % size === 0) {
grid.push(<label className="grid-item" for={"grid-item" + (c + 1)}>test</label>)
}
if (disabled === c) {
disabled = disabled + +size;
currentFieldDisabled = true;
}
if (c / size < 1) {
grid.push(<label className="grid-item" for={"grid-item" + (c + 1)}>test</label>)
} else {
if (currentFieldDisabled) {
currentFieldDisabled = false;
disabled++;
grid.push(<input disabled={true} type="text" placeholder="X" id={"grid-item" + (c + 1)} className="grid-item"/>)
} else {
grid.push(<input type="text" id={"grid-item" + (c + 1)} className="grid-item"/>)
}
}
}
return grid
}
代码的目标是创建一个包含与 2 次方大小一样多的字段的网格,因此如果我们将其设为 10,我们将得到一个包含 100 个字段的网格。现在因为每个字段都应该有它们的坐标,所以说每个字段都应该有一个标题,水平的顶部和垂直的左侧,所以大小增加一,使顶部多 1 行,多一列有权为标题/坐标留出空间。想象一下它就像一个棋盘,只是在不同的地方坐标。
下一个目标是从左上角到右下角制作一行禁用字段,这样当两个坐标相同时,应该禁用该字段,因为左侧和顶部的坐标应该始终位于末尾同样,它始终是从左上角到右下角的禁用线。
现在有什么办法可以让代码更精炼,性能更好?在我的应用程序中有许多实例,其中网格应该呈现大于 100 的大小,并且在该点加载所需的时间呈指数增长。
对不起我的英语不好,提前谢谢你:)
解决方案
推荐阅读
- ssh - 如何使用 JSCH 在另一个命令的终端内在 linux 中执行命令
- node.js - 勾选带有 nodejs 发布请求的单选按钮
- typescript - 如何用 jest 测试“npm run my-custom-cmd”?
- django-models - DRF 序列化程序获取/发布/删除工作但“放置”失败
- java - Spring Boot 从模板写入 CSV
- python - Django Python - 使用预填充表单创建登录页面
- string - 为什么 cut 不适用于程序的输出?
- json - 使用 apex_json 时,有没有办法在我的 json 输出中包含空列
- c# - Soap Web 服务返回空值
- angular - 我在 Angular 中遇到无法获取/错误