Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅:

React Π΅ популярна JavaScript Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° потрСбитСлски интСрфСйси ΠΈ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° структуриратС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° си ΠΏΠΎ Π½Π°Ρ‡ΠΈΠ½, ΠΊΠΎΠΉΡ‚ΠΎ Π³ΠΎ ΠΏΡ€Π°Π²ΠΈ лСсСн Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°. Π’ Ρ‚ΠΎΠ²Π° Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ Ρ‰Π΅ Π²ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ Π΄Π° структуриратС React ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ с Ρ‚Ρ€ΠΈ ΠΈΠ·Π³Π»Π΅Π΄Π°, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π΄Π° Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° вашия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π©Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΈ някои Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° вашия ΠΊΠΎΠ΄ ΠΈ рСсурси.

ИзглСд 1: Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

1. Основна дирСктория

ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° дирСктория Π½Π° вашия React ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ трябва Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° всички основни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ:

  • package.json: Π’ΠΎΠ·ΠΈ Ρ„Π°ΠΉΠ» ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈ Π·Π° вашия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠ°Ρ‚ΠΎ Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ ΠΈΠΌΠ΅, вСрсия ΠΈ зависимости.
  • README.md: Π’ΠΎΠ·ΠΈ Ρ„Π°ΠΉΠ» прСдоставя ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° вашия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π²Π° информация ΠΊΠ°ΠΊ Π΄Π° Π³ΠΎ инсталиратС ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅.

2. ДирСктория Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅

ДирСкторията Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅ трябва Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° всички ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° React във вашия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. ВсСки ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ трябва Π΄Π° бъдС ΠΎΡ‚Π΄Π΅Π»Π½Π° ΠΏΠ°ΠΏΠΊΠ° със собствСн index.js Ρ„Π°ΠΉΠ», ΠΊΠΎΠΉΡ‚ΠΎ Скспортира ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. НапримСр:

// components/Button.js
import React from 'react';
const Button = () => {
  return <button>Click me!</button>;
};
export default Button;

3. ДирСктория с ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ срСдства

ДирСкторията utils трябва Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° всички ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΡ†ΠΈ във вашия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π’Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ Π½Π΅Ρ‰Π° ΠΊΠ°Ρ‚ΠΎ Π²Π°Π»ΠΈΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° формуляр, ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. НапримСр:

// utils/validateForm.js
function validateForm(formData) {
  const errors = {};
  if (!formData.name) {
    errors.name = 'Required';
  }
  if (!formData.email) {
    errors.email = 'Required';
  }
  return errors;
}

4. ДирСктория Π·Π° стиловС

ДирСкторията Π·Π° стиловС трябва Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° всички CSS Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ във вашия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ стиловС ΠΈ спСцифични Π·Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅ стиловС. НапримСр:

// styles/global.css
body {
  font-family: Arial, sans-serif;
}

// styles/button.css
button {
  background-color: #007bff;
  color: #fff;
  padding: 10px 20px;
  border: none;
  border-radius: 5px;
  cursor: pointer;
}

5. ДирСктория със скриптовС

ДирСкторията със скриптовС трябва Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° всички JavaScript Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ във вашия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° доставчици ΠΈ спСцифичСн Π·Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΊΠΎΠ΄. НапримСр:

// scripts/vendor.js
import React from 'react';
import ReactDOM from 'react-dom';

export default function() {
  return <div>Vendor library</div>;
}

6. ИндСкс Ρ„Π°ΠΉΠ»

Π€Π°ΠΉΠ»ΡŠΡ‚ index.html трябва Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Π²Ρ…ΠΎΠ΄Π½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π·Π° Π²Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π΅ ReactDOM.render() ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅. НапримСр:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>My React Application</title>
</head>
<body>
  <div id="root"></div>
  <script src="scripts/index.js"></script>
</body>
</html>

ИзглСд 2: Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°

Π‘Π΅Π³Π°, слСд ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·Π³Π»Π΅Π΄Π°Ρ…ΠΌΠ΅ цялостната структура Π½Π° React ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π½Π΅ΠΊΠ° Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎ-ΠΎΡ‚Π±Π»ΠΈΠ·ΠΎ ΠΊΠ°ΠΊ Π΄Π° структурирамС ΠΎΡ‚Π΄Π΅Π»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ. Π•Ρ‚ΠΎ някои Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π΄Π° слСдватС:

1. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΏΠ°ΠΏΠΊΠ° Π·Π° всСки ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚

ВсСки ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ трябва Π΄Π° бъдС ΠΎΡ‚Π΄Π΅Π»Π½Π° ΠΏΠ°ΠΏΠΊΠ° със собствСн index.js Ρ„Π°ΠΉΠ», ΠΊΠΎΠΉΡ‚ΠΎ Скспортира ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Π’ΠΎΠ²Π° улСснява ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅Ρ‚ΠΎ Π½Π° вашия ΠΊΠΎΠ΄, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅Ρ‚ΠΎ Π½Π° ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π°Π΅Π΄Π½ΠΎ. НапримСр:

// components/Button.js
import React from 'react';

const Button = () => {
  return <button>Click me!</button>;
};

export default Button;

2. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ описатСлно ΠΈΠΌΠ΅ Π·Π° ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°

Π˜ΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° трябва Π΄Π° Π΅ описатСлно ΠΈ Π΄Π° ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡ€Π°Π²ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΡŠΡ‚. НапримСр: components/Button Π·Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π° Π±ΡƒΡ‚ΠΎΠ½.

3. Π—Π°ΠΏΠ°Π·Π΅Ρ‚Π΅ ΠΊΠΎΠ΄Π° Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° във Ρ„Π°ΠΉΠ»Π° index.js

Π€Π°ΠΉΠ»ΡŠΡ‚ index.js трябва Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° цСлия ΠΊΠΎΠ΄ Π·Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ всички Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° изобразяванС ΠΈΠ»ΠΈ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΈ. Π’ΠΎΠ²Π° улСснява ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅Ρ‚ΠΎ Π½Π° вашия ΠΊΠΎΠ΄, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅Ρ‚ΠΎ Π½Π° ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π°Π΅Π΄Π½ΠΎ. НапримСр:

// components/Button.js
import React from 'react';

const Button = () => {
  return <button>Click me!</button>;
};

export default Button;

4. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ послСдоватСлна конвСнция Π·Π° ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ послСдоватСлна конвСнция Π·Π° ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½Π΅ Π½Π° index.js Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ във вашия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ComponentName Π·Π° ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ»Π° ΠΈ ComponentName Π·Π° ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π°. НапримСр:

// components/Button.js
import React from 'react';

const Button = () => {
  return <button>Click me!</button>;
};

export default Button;

5. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ описатСлно ΠΈΠΌΠ΅ Π·Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° във Ρ„Π°ΠΉΠ»Π° index.js

Π˜ΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° във Ρ„Π°ΠΉΠ»Π° index.js трябва Π΄Π° Π΅ описатСлно ΠΈ Π΄Π° ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡ€Π°Π²ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΡŠΡ‚. НапримСр: Button Π·Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π° Π±ΡƒΡ‚ΠΎΠ½.

ИзглСд 3: Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ Ρ‚ΠΎΠ²Π° Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ Ρ€Π°Π·Π³Π»Π΅Π΄Π°Ρ…ΠΌΠ΅ ΠΊΠ°ΠΊ Π΄Π° структуриратС React ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ с Ρ‚Ρ€ΠΈ ΠΈΠ·Π³Π»Π΅Π΄Π°. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΎΠ±ΡΡŠΠ΄ΠΈΡ…ΠΌΠ΅ Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈΡ‚Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° вашия ΠΊΠΎΠ΄ ΠΈ рСсурси. ΠšΠ°Ρ‚ΠΎ слСдватС Ρ‚Π΅Π·ΠΈ указания, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ Π΄ΠΎΠ±Ρ€Π΅ структуриран ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π΅ΠΌ React ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ отговаря Π½Π° Π½ΡƒΠΆΠ΄ΠΈΡ‚Π΅ Π½Π° Π²Π°ΡˆΠΈΡ‚Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ.

πŸ‘‰ Π Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ:

  • β€žΠ Π΅Π°Π³ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡβ€œ