Π ΡƒΠ±Ρ€ΠΈΠΊΠΈ
Π‘Π΅Π· Ρ€ΡƒΠ±Ρ€ΠΈΠΊΠΈ

React JSX

πŸ‘‹hi, Π² этом Π±Π»ΠΎΠ³Π΅ я ΠΏΠΈΡˆΡƒ ΠΎ JSX, Ρ‡Ρ‚ΠΎ являСтся Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‰ΡŒΡŽ для изучСния React. Π”Π°Π²Π°ΠΉΡ‚Π΅ … с ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ React, JavaScript.

πŸ‘‹hi, Π² этом Π±Π»ΠΎΠ³Π΅ я ΠΏΠΈΡˆΡƒ ΠΎ JSX, Ρ‡Ρ‚ΠΎ являСтся Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‰ΡŒΡŽ для изучСния React.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ… πŸƒβ€ πŸƒβ€Ρ‡Π΅Π³ΠΎ ♂️

const greet = 

Hello

;

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ выглядит Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΌ. Π­Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° JavaScript, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ начинаСтся с const ΠΈ заканчиваСтся ; АнкСт ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, это ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° HTML, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ содСрТит

hello

АнкСт

ΠœΡ‹ пишСм этот ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ»Π΅ JavaScript. НСсмотря Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ это выглядит Π½Π° самом Π΄Π΅Π»Π΅, этот ΠΊΠΎΠ΄ Π½Π΅ содСрТит Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ HTML. Π§Π°ΡΡ‚ΡŒ выглядит ΠΊΠ°ΠΊ html

hello

, называСтся JSX.

➑ JSX являСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ синтаксиса для JavaScript. Π­Ρ‚ΠΎ написано для React. JSX Π½Π΅ являСтся Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ JavaScript. Π’Π΅Π± -Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ. Если Ρ„Π°ΠΉΠ» JavaScript содСрТит JSX, этот Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ скомпилирован Π΄ΠΎ выполнСния. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ JSX ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ любой JSX Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ JavaScript.

βœ”jsx Π­Π»Π΅ΠΌΠ΅Π½Ρ‚:

Основная Π΅Π΄ΠΈΠ½ΠΈΡ†Π° JSX называСтся элСмСнтом JSX. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ описываСт Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π° экранС. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ элСмСнта JSX, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅.

Hello

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ JSX Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ JavaScript. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠΉ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, хранится Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ ΠΈΠ»ΠΈ массивС.

// Saved in a variable
const title = 

JSX

; // Stored in an Object const obj = { title:

React

, subTitle:

JSX

};

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ JSX ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΊΠ°ΠΊ HTML -элСмСнты. Один элСмСнт JSX ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ².

const title = 

Introduction to JSX

;

βœ”nesting:

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π³Π½Π΅Π·Π΄ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты JSX Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов JSX. Если экспрСссия JSX Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² скобках. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ ΡΠΊΡΠΏΡ€Π΅ΡΡΠΈΡŽ JSX Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠ°ΠΊ ΠΈ Π½Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ JSX.

// Nested JSX

Click me

// For readability, we can use line break and indentation (

Click me

) // Nested JSX expression saved in a variable const example = (

Click me

);

Β«Π’Π°Π³ΠΎΠ²ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ JSX Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ внСшний элСмСнт. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ‚Π΅Π³ ΠΈ послСдний Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ‚Π΅Π³ выраТСния JSX Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ элСмСнту JSX.

const example = (
  
);

βœ”classname & htmlfor:

Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° JSX Π² основном такая ΠΆΠ΅, ΠΊΠ°ΠΊ Π² HTML. Π’ HTML ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ класс Атрибут, Π½ΠΎ Π² JSX ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ класс , ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ классноС имя вмСсто. Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ JSX пСрСводится Π² JavaScript, Π° Π² JavaScript класс это Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ слово. По Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π² Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ вмСсто этого ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ htmlfor АнкСт

Hello

βœ” Π‘Π°ΠΌΡ‹Π΅ Ρ‚Π΅Π³ΠΈ с Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ:

Когда ΠΌΡ‹ пишСм ΡΠ°ΠΌΠΎΠ·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽΡΡ Ρ‚Π΅Π³ Π² HTML, Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя ΠΏΡ€ΡΠΌΡƒΡŽ Ρ‡Π΅Ρ€Ρ‚Ρƒ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΡƒΠ³Π»ΠΎΠ²ΠΎΠΉ Π±Ρ€ΠΎΡˆΠ΅Ρ‚ΠΊΠΎΠΉ. Но Π² JSX ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²ΠΏΠ΅Ρ€Π΅Π΄-slash, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС это вынСсСт ΠΎΡˆΠΈΠ±ΠΊΡƒ.

// In HTML



// In JSX

βœ” Javascript выраТСния Π² JSX:

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ выраТСния JavaScript Π² элСмСнтах JSX, Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΠ² ΠΈΡ… Π² {} Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки.

// Variable
const greet = 'Hello World';

// Object
const person = {
  name: 'John Doe',
  age: 24,
  profession: 'Web Developer'
};

// Function
const greetings = () => 'Hello World';

// JavaScript Expressions in JSX

{10 + 5}

{greet}

{person.name}

{person.age}

{person.profession}

{greetings()}

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ JavaScript Expressions Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ Elements JSX.

const google = 'https://www.google.com';

Click Me

Event Π‘Π»ΡƒΡˆΠ°Ρ‚Π΅Π»ΠΈ Π² JSX:

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ JSX ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»ΠΈ событий, ΠΊΠ°ΠΊ ΠΈ HTML -элСмСнты. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Ρ событий, прСдоставив JSX элСмСнты ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°.

onButtonClick = () => alert('Hello World!');


Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ. Π’ HTML всС ΠΈΠΌΠ΅Π½Π° ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Π΅ΠΉ событий написаны строчными Π±ΡƒΠΊΠ²Π°ΠΌΠΈ, Π½ΠΎ Π² JSX Event Names ΠΈΠΌΠ΅Π½Π° ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Π΅ΠΉ написаны Π±ΡƒΠΊΠ²Π°ΠΌΠΈ Camelcase. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ список ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΈΠΌΠ΅Π½ событий Π—Π΄Π΅ΡΡŒ АнкСт

βœ”jsx Conditionals:

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ JSX Π½Π° основС условий. НСкоторыС условныС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½ΠΈΠΆΠ΅.

  • 1⃣ Если Π΅Ρ‰Π΅:
let age = 18;
let message;

if (age >= 18) {
  message = (
    

You can buy a drink.

); } else { message = (

You can not buy a drink.

); } // output will be message =

You can buy a drink

;

Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ввСсти Ссли заявлСниС Π² JSX.

  • 2⃣ Ρ‚Ρ€ΠΎΠΉΠ½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€:
let age = 18;

const message = (
  

{age >= 18 ? 'You can buy a drink.' : 'You can not buy a drink'}

); // output will be message =

You can buy a drink

;
  • 3⃣ && ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€:
let age = 18;

const message = (
  { age >= 18 && 

You can buy a drink.

} { age < 18 &&

You can not buy a drink

} ); // output will be message =

You can buy a drink.

;

βœ” .map () ΠœΠ΅Ρ‚ΠΎΠ΄ массива:

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ список элСмСнтов JSX, .ΠΊΠ°Ρ€Ρ‚Π° () часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² React.

const persons = ['Lily', 'Riyan', 'John'];

const listItems = persons.map(person => 
  • {person}
  • );
      {listItems}

    {ListItems} ΠΎΡ†Π΅Π½ΠΈΠΌ Π΄ΠΎ массива. И ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ массив Π² элСмСнты JSX Ρ‚.Π΅.

    const listItems = [
      
  • Lily
  • ,
  • Riyan
  • ,
  • John
  • ];
      {listItems}
    // output will be
    • Lily
    • Riyan
    • John

    βœ”keys:

    Когда ΠΌΡ‹ составляСм список Π² JSX, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ АнкСт ΠΊΠ»ΡŽΡ‡ это Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ JSX, ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ‡Π΅ΠΌ -Ρ‚ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ, ΠΏΠΎΡ…ΠΎΠΆΠ΅Π³ΠΎ Π½Π° id Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚.

    • Example 1
    • Example 2
    • Example 3

    ΠšΠ»ΡŽΡ‡ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ элСмСнты измСнились, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ.

    Π’ΠΎΡ‚ ΠΈ всС, спасибо Π·Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ слСдитС Π·Π° новостями.

    ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»: “https://dev.to/iamismile/jsx-3ac”