ReactJS

../public/snippets/reactjs.tsx

ReactJS is a popular JavaScript library for building user interfaces, particularly single-page applications.

With over three years of experience in ReactJS, I have developed a strong understanding of its component-based architecture and state management.

I have used ReactJS to create dynamic, responsive applications, leveraging hooks, context, and Redux for state management.

[Next.js][Redux][React Router][Material-UI]
// @ts-nocheck
import type React from 'react';
import { useState, useEffect, useMemo, useCallback } from 'react';

const AboutMe: React.FC = () => {
  const [showDetails, setShowDetails] = useState(false);

  const personalInfo = useMemo(
    () => ({
      name: 'Ernesto',
      experience: 3,
      technologies: ['ReactJS', 'Axios', 'Redux', 'RxJS'],
    }),
    []
  );

  const toggleDetails = useCallback(() => setShowDetails((prev) => !prev), []);

  useEffect(() => {
    if (showDetails) {
      console.log('Details displayed for', personalInfo.name);
    }
  }, [showDetails, personalInfo.name]);

  return (
    <div style={{ fontFamily: 'Arial, sans-serif', padding: '20px' }}>
      <h1>About Me</h1>
      <p>
        Hi, I'm <strong>{personalInfo.name}</strong>. I have{' '}
        <strong>{personalInfo.experience} years of experience</strong> working with{' '}
        <strong>ReactJS</strong>. My expertise includes building scalable and modern web
        applications.
      </p>
      <h2>Technologies I Use:</h2>
      <ul>
        {personalInfo.technologies.map((tech) => (
          <li key={tech} style={{ margin: '5px 0' }}>
            {tech}
          </li>
        ))}
      </ul>
      <button onClick={toggleDetails}>{showDetails ? 'Hide Details' : 'Show Details'}</button>
      {showDetails && (
        <div style={{ marginTop: '20px', border: '1px solid #ccc', padding: '10px' }}>
          <p>
            I enjoy solving challenging problems and collaborating with teams to build impactful
            software solutions. Feel free to reach out for projects or collaborations!
          </p>
        </div>
      )}
    </div>
  );
};

export default AboutMe;