当前位置:首页 > React

react实现竖向table

2026-01-27 03:22:18React

实现竖向表格的布局方案

在React中实现竖向表格(即表头在左侧,数据向右展开的布局)可通过CSS布局调整或组件结构重组完成。以下是几种常见方法:

使用CSS Flexbox或Grid布局

通过旋转容器或调整显示方向实现竖向效果:

// 竖向表格组件示例
const VerticalTable = ({ data }) => {
  return (
    <div style={{ display: 'flex' }}>
      {/* 表头列 */}
      <div style={{ display: 'flex', flexDirection: 'column' }}>
        {Object.keys(data[0]).map((key) => (
          <div key={key} style={{ padding: '8px', border: '1px solid #ddd' }}>
            {key}
          </div>
        ))}
      </div>

      {/* 数据列 */}
      {data.map((item, index) => (
        <div key={index} style={{ display: 'flex', flexDirection: 'column' }}>
          {Object.values(item).map((value, i) => (
            <div key={i} style={{ padding: '8px', border: '1px solid #ddd' }}>
              {value}
            </div>
          ))}
        </div>
      ))}
    </div>
  );
};

使用HTML表格属性调整

通过转置数据后渲染常规表格:

const VerticalTable = ({ data }) => {
  const headers = Object.keys(data[0]);
  const transposedData = headers.map(header => ({
    header,
    values: data.map(item => item[header])
  }));

  return (
    <table style={{ borderCollapse: 'collapse' }}>
      <tbody>
        {transposedData.map((row, i) => (
          <tr key={i}>
            <td style={{ border: '1px solid #ddd', padding: '8px' }}>{row.header}</td>
            {row.values.map((value, j) => (
              <td key={j} style={{ border: '1px solid #ddd', padding: '8px' }}>
                {value}
              </td>
            ))}
          </tr>
        ))}
      </tbody>
    </table>
  );
};

使用第三方库

如React-Table等库支持自定义渲染方式:

import { useTable } from 'react-table';

const VerticalTable = ({ columns, data }) => {
  const { getTableProps, getTableBodyProps, rows, prepareRow } = useTable({
    columns,
    data,
  });

  return (
    <table {...getTableProps()}>
      <tbody {...getTableBodyProps()}>
        {rows.map((row) => {
          prepareRow(row);
          return (
            <tr {...row.getRowProps()}>
              {row.cells.map((cell) => (
                <td {...cell.getCellProps()}>{cell.render('Cell')}</td>
              ))}
            </tr>
          );
        })}
      </tbody>
    </table>
  );
};

样式优化建议

添加以下CSS提升可读性:

.vertical-table {
  display: flex;
  overflow-x: auto;
}
.vertical-column {
  min-width: 120px;
}
.fixed-header {
  position: sticky;
  left: 0;
  background: white;
  z-index: 1;
}

响应式处理

针对移动端可添加媒体查询:

@media (max-width: 768px) {
  .vertical-table {
    flex-direction: column;
  }
}

以上方案可根据实际需求选择,Flexbox方案适合简单布局,数据转置方案保持语义化HTML结构,第三方库方案适合复杂交互需求。

react实现竖向table

标签: reacttable
分享给朋友:

相关文章

react如何取消渲染

react如何取消渲染

取消渲染的方法 在React中,取消渲染通常指阻止组件在特定条件下进行不必要的渲染。可以通过以下几种方式实现: 条件渲染 使用条件语句(如if或三元运算符)直接返回null,避免渲染组件内容。例如:…

react 如何继承

react 如何继承

在React中,组件继承并非推荐的设计模式(官方更推崇组合优于继承),但技术上仍可通过以下方式实现类似效果: 使用ES6类继承 通过extends关键字继承父组件类,子组件可访问父组件的生命周期方…

vue 实现table

vue 实现table

Vue 实现 Table 的方法 使用原生 HTML 表格 通过 Vue 的 v-for 指令动态渲染表格数据,适合简单表格场景。 <template> <table>…

react native 如何

react native 如何

React Native 开发基础 React Native 是一个用于构建跨平台移动应用的框架,允许开发者使用 JavaScript 和 React 编写代码,同时生成原生 iOS 和 Androi…

如何降低react版本

如何降低react版本

降低 React 项目版本的步骤 检查当前 React 版本 运行以下命令查看项目中安装的 React 当前版本: npm list react 或 yarn list react 修改…

实现vue table

实现vue table

实现 Vue 表格的基础方法 使用 Vue 实现表格功能可以通过原生 HTML 表格结合 Vue 的数据绑定,或者使用第三方组件库(如 Element UI、Vuetify)快速构建。以下是几种常见方…