Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

How to display class instances in ReactJS

What are Instances in a Class?

Just like in the real world, where we have general concepts or classes (like 'Car') and specific instances (like your old trusty Honda), in programming, we have classes and instances too. A class is a blueprint, and an instance is a specific realization of that blueprint.

For example, let's say we have a class called Car. This blueprint could define things like the make, model, and color. An instance of Car would be a specific car, like your red Honda Civic.

In JavaScript, we create a class using the class keyword and instances using the new keyword.

class Car {
  constructor(make, model, color) {
    this.make = make;
    this.model = model;
    this.color = color;
  }
}

const myCar = new Car('Honda', 'Civic', 'Red');

What is ReactJS and How Does it Fit In?

ReactJS is a popular library for building user interfaces, particularly for single page applications where you need a fast, interactive user experience. In React, we usually deal with components, which are JavaScript classes or functions that optionally accept inputs, known as props, and return a React element that describes how a section of the UI should appear.

Essentially, each React component is like a class. And each time we use a component, we're creating an instance of that class.

Displaying Class Instances

Alright, back to our main topic - how to display class instances in ReactJS. Let's say you have a class called Person and you want to display information about different instances of this class.

You might start by creating a Person class in JavaScript:

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
}

Then, in your React component, you can create instances of the Person class:

const john = new Person('John', 30);
const jane = new Person('Jane', 25);

Now, how do you display these instances in your React component?

Rendering Class Instance Information in a React Component

Let's create a new component called PersonCard. This component will accept as props an instance of a Person and display the name and age:

function PersonCard({person}) {
  return (
    <div>
      <h2>{person.name}</h2>
      <p>{person.age} years old</p>
    </div>
  )
}

Note how we're using the dot notation (person.name and person.age) to access the properties of the Person instance.

Then, in your main component, you can use the PersonCard component to display the instances:

function App() {
  const john = new Person('John', 30);
  const jane = new Person('Jane', 25);

  return (
    <div>
      <PersonCard person={john} />
      <PersonCard person={jane} />
    </div>
  )
}

Here, we're passing each Person instance to the PersonCard component as a prop.

Conclusion

Think of classes as an artist's sketch, providing a detailed outline of what's to be painted. The instances? They're the paintings, bringing the sketch to life with colors and textures.

ReactJS allows us to use these sketches (classes) and paintings (instances) to create a vibrant and interactive UI. It's like a virtual art gallery, where each component is a masterpiece, and each instance is a visitor, interacting and engaging with the art.

Remember, the best way to learn is by doing. So, why not create your own classes and instances, and try displaying them in a React component? Happy coding!