Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

How to build a table in ReactJS

Understanding the Task

Before we dive into the code, let's first understand what we're trying to achieve. We want to build a table in ReactJS. A table, in simplest terms, is a set of boxes where we can put information. It's like a grid of tiny containers where each container holds a piece of data.

In web programming language, these containers are called cells, and they are organized into rows and columns just like in a spreadsheet. So, our task is to create this grid of containers using ReactJS.

The Basics of a Table in HTML

To build a table in ReactJS, we first need to understand how a table is built in HTML as ReactJS uses the same structure but with a JavaScript flavor. In HTML, a table is created using the <table> tag.

A table is composed of rows, and each row is created using the <tr> tag. Inside each row, we have cells, and they are created using the <td> tag. Here's an example of a simple HTML table:

<table>
  <tr>
    <td>Cell 1</td>
    <td>Cell 2</td>
  </tr>
  <tr>
    <td>Cell 3</td>
    <td>Cell 4</td>
  </tr>
</table>

This table has two rows and two cells in each row.

Creating a Table in ReactJS

In ReactJS, we create components. A component is a reusable piece of code that returns a React element to be rendered to the page. The simplest way to define a component is to write a JavaScript function. In our case, we will create a Table component. Here's the basic skeleton:

function Table() {
  return (
    <table>
      {/* We will put our rows and cells here */}
    </table>
  );
}

Creating Rows and Cells

Now, we need to add rows and cells to our table. Let's start by creating a single row with two cells.

function Table() {
  return (
    <table>
      <tr>
        <td>Cell 1</td>
        <td>Cell 2</td>
      </tr>
    </table>
  );
}

You might be wondering how we are using HTML tags inside JavaScript code. This is JSX (JavaScript XML). It is a syntax extension for JavaScript that allows us to write HTML in our JavaScript code. It makes it easier to write and add HTML in React.

Populating Table with Data

Typically, the data for the table would come from an array or an object. Let's create a table that lists the names and ages of a group of people. Our data would look like this:

const data = [
  { name: 'John', age: '30' },
  { name: 'Jane', age: '25' },
  { name: 'Doe', age: '35' },
];

To create a row for each person in our data array, we will use the map function. map is a built-in JavaScript function that creates a new array with the results of calling a provided function on every element in the array. In our case, for each person, we want to create a row with two cells: one for the name and one for the age.

function Table() {
  return (
    <table>
      {data.map((person) => (
        <tr>
          <td>{person.name}</td>
          <td>{person.age}</td>
        </tr>
      ))}
    </table>
  );
}

Adding Table Headings

Our table is almost complete. However, it would be good to have headings for each column so that anyone looking at the table knows what the data represents. In HTML, we use the <th> tag to create a table heading. Let's add headings to our table.

function Table() {
  return (
    <table>
      <tr>
        <th>Name</th>
        <th>Age</th>
      </tr>
      {data.map((person) => (
        <tr>
          <td>{person.name}</td>
          <td>{person.age}</td>
        </tr>
      ))}
    </table>
  );
}

Conclusion

And voila! We have created a table in ReactJS! As you can see, building a table in ReactJS is similar to how we do it in HTML, but with a sprinkle of JavaScript. We use JSX to create our HTML elements and JavaScript functions to populate our table with data.

It's like creating a beautiful mosaic art piece. Each cell is a tiny tile, and we use JavaScript as our glue and our trowel, placing each tile meticulously in its place, creating rows and columns, until we step back and see the whole picture - a beautifully crafted table.

Remember, practice is key in programming. Try creating different tables, play around with the data, and even style your table using CSS. The more you practice, the more comfortable you'll become with building tables in ReactJS. Happy coding!