React Course: JSX

JSX stands for JavaScript XML, and it is a syntax that combines JavaScript code and HTML. In React, JSX is primarily used to define components and provides a very intuitive and powerful way to write UIs. In this course, we will delve deeply into the basic concepts of JSX to advanced techniques.

The Basic Concepts of JSX

JSX has the following characteristics:

  • Defines React elements using a syntax similar to HTML.
  • JSX code is transformed into JavaScript.
  • JavaScript expressions can be used.

Basic Syntax of JSX

The basic syntax of JSX is as follows. JSX code defines elements in the form of ``, and JavaScript expressions can be inserted using curly braces `{}`.

<h1>Hello, JSX!</h1>
<p>JSX is a fundamental element of React.</p>

Using JavaScript Expressions

JavaScript expressions can be used within JSX, wrapped in curly braces. For example, you can use variables in JSX:

const name = "React";
<h1>Hello, {name}!</h1>

Advantages of JSX

The main advantages of using JSX are as follows:

  • Readability: Thanks to the HTML-like syntax, it is intuitive to understand the UI structure.
  • Easy Debugging: JSX can be easily debugged through logs in developer tools.
  • Component-Based: Each UI can be separated into components, enhancing reuse and maintainability.

Properties of JSX Expressions

When adding properties to JSX elements, camelCase notation should be used. For example, the HTML `class` attribute is used as `className` in JSX:

<div className="container">Content</div>

Handling Events

When handling events in JSX, you add properties using JavaScript notation. For example, handling a click event can be done as follows:

<button onClick={handleClick}>Click me!</button>

Precautions When Using JSX

There are a few precautions to take when using JSX:

  • JSX code must have a single root element.
  • Comments must use curly braces and the `/* … */` syntax.
  • When using HTML special characters, they must be escaped. For example: `<` translates to `<`.

Conditional Rendering

Conditional rendering within JSX can be done in several ways. The most common method is to use a ternary operator:

{isLoggedIn ? <LogoutButton /> : <LoginButton />}

Rendering Lists

When rendering elements of an array as a list, the `map()` method can be used. Each element requires a unique key property:

const items = ["Apple", "Banana", "Orange"];
const itemList = items.map(item => <li key={item}>{item}</li>);

Advanced JSX Techniques

Using Fragments

When grouping multiple elements, you can use Fragments. Fragments group multiple elements without creating additional DOM nodes:

<React.Fragment>
    <h1>Title</h1>
    <p>Content</p>
</React.Fragment>

Styling

When applying inline styles in JSX, styles must be defined in object form:

<div style={{ color: 'blue', fontSize: '20px' }}>Styled Text</div>

Conclusion

JSX is a very important part of React development, enhancing the efficiency and readability of writing React components. In this course, we thoroughly examined the basics to advanced concepts of JSX and encourage you to experience it through practical applications. We hope to see you develop more intuitive and powerful web applications through the synergy of React and JSX.