ReactJSред рдЪреЗрддрд╛рд╡рдиреА: рдЕрдирдорд╛рдЙрдВрдЯ рдХрд┐рдП рдЧрдП рдШрдЯрдХ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрдерд┐рддрд┐ рдЕрджреНрдпрддрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдпрд╣ рдПрдХ рдиреЛ-рдСрдк рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдореЗрдореЛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ

рд╢реБрдн рджрд┐рди, рд╣реЗрдмреНрд░!

рд╕рднреА рдЕрднрд┐рдХрд░реНрдордХ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЬреЛ рдкреАрдЫреЗ рдФрд░ рд╕рд╛рдордиреЗ рдХреЗ рдмреАрдЪ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВ, рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ рдорд┐рд▓рддреЗ рд╣реИрдВ, рдпрд╛ рдорд┐рд▓реЗ рдпрд╛ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдВрдЧреЗ:


рд╕рдЪрдореБрдЪ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рдХрд▓рддрд╛ рд╣реИ:
рдЪреЗрддрд╛рд╡рдиреАред рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдеред рдпрд╣ рдПрдХ рдСрдкрд░реЗрд╢рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдореЗрдореЛрд░реА рд▓реАрдХ рд╣реЛрдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрд▓реАрдирдЕрдк рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕рднреА рд╕рджрд╕реНрдпрддрд╛рдПрдБ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд░рджреНрдж рдХрд░реЗрдВред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рдЖрдкрдХреЛ рдмрд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  1. рд░рд╛рдЬреНрдп рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде
  2. рдПрдХ рд╕реНрдерд╛рдкрдирд╛ рд░рджреНрдж рдШрдЯрдХ;
  3. рд╕рднреА рд╕рджрд╕реНрдпрддрд╛ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд░рджреНрдж рдХрд░реЗрдВ
  4. рд╕рд╛рдл рд╕рдлрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рд╣реБрдХ рдХреЗ рджрд┐рд▓ рдореЗрдВред рдХрдЯ рдХреЗ рдиреАрдЪреЗ рдЬрд╛рдУ!

рдЗрд╕рд▓рд┐рдП:

  1. рд╕рднреА Reajjs рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╕реНрдерд┐рддрд┐ (рд╕реНрдерд┐рддрд┐) рд╣реИ рдФрд░ рдРрд╕рд╛ рдПрдХ рдЕрдкрдбреЗрдЯ (рд╕реЗрдЯрд╕реНрдЯреЗрдЯ) рднреА рд╣реИред рдореИрдВ рд╡рд╣ рдирд╣реАрдВ рд░рд╣реВрдВрдЧрд╛
  2. . :
    1) ;
    2) ;
    3) ;
    тАФ 3 . .
  3. . - , : . , async/await тАФ .
  4. useEffect. return () => {} useEffect. , - , : .




рдЪрд▓реЛ рдПрдХ рдЧрд▓рддреА рдХрд░рддреЗ рд╣реИрдВ: рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдо рдПрдХ рдореВрд╡реА рд╡рд┐рд╡рд░рдг рдЕрдкрд▓реЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдЗрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рд╣рдо moviedb рдПрдкреАрдЖрдИ рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВ , рд▓реЗрдХрд┐рди рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд┐рд▓реНрдо рдХреЛ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддреЗ рд╣реИрдВ)ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдкреГрд╖реНрда рд╣реИрдВ:
рдШрд░

рд╣рдорд╛рд░реЗ рдмрд╛рд░реЗ рдореЗрдВ



рджреЛрдиреЛрдВ рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдкреИрдирд▓ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣реЗрдбрд░ рдореЗрдВред рдореБрдЦреНрдп рдкреГрд╖реНрда ("рд╣реЛрдо") рдкрд░ рдлрд┐рд▓реНрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрда рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рд╣реЛрддрд╛ рд╣реИред

/src/Pages/HomePage.js
import React, { useState, useEffect } from 'react';

import { MOVIE_DB_GET } from '../config';

const HomePage = () => {
  useEffect(() => {
    const fetchData = async () => {
      try {
        const response = await fetch(MOVIE_DB_GET);
        const result = await response.json();
        console.log(result, 'result')
      } catch (e) {
        console.error(e.message)
      }
    };

    //  get-     
    fetchData();
  }, []);

  return (
    <main>
      <h2> </h2>
    </main>
  )
};

export default HomePage;


/src/Pages/AboutPage.js

import React from 'react';

const AboutPage = () => {
  return (
    <main>
      <h2> </h2>
      <p>
                
      </p>
    </main>
  )
};

export default AboutPage;


рдЕрдиреБрд░реЛрдз рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╛рдж рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рдЬреНрдп рдХреЛ рдЬрд╛рдирдХрд╛рд░реА рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:

/src/Pages/HomePage.js

import React, { useState, useEffect } from 'react';

import { MOVIE_DB_GET } from '../config';

const HomePage = () => {
  // movie - react-;
  // setMovie -   react-
  const [ movie, setMovie ] = useState(null);

  useEffect(() => {
    const fetchData = async () => {
      try {
        const response = await fetch(MOVIE_DB_GET);
        const result = await response.json();
        console.log(result, 'result');
        setMovie(result);
      } catch (e) {
        console.error(e.message)
      }
    };

    //       
    fetchData();
  }, []);

  // descriptionMovie -  ,  view,         movie

  return (
    <main>
      <h2> </h2>
      <p> </p>

      {
        movie ? descriptionMovie() : false
      }
    </main>
  )
};

export default HomePage;


рд╣рдо рдирд┐рдореНрди рддрд░реАрдХреЗ рд╕реЗ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреЗ - рд╣рдо рдПрдХ рдорд╛рд░реНрдЧ рд╕реЗ рджреВрд╕рд░реЗ рдорд╛рд░реНрдЧ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВрдЧреЗ, рдЕрд░реНрдерд╛рдд, "рд╣рдорд╛рд░реЗ рдмрд╛рд░реЗ рдореЗрдВ" рдкреГрд╖реНрда рдкрд░ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рд╣рдо рдкреГрд╖реНрда "рд╣реЛрдо" рдкрд░ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рддреБрд░рдВрдд рдкреГрд╖реНрда рдкрд░ рд╡рд╛рдкрд╕ "рд╣рдорд╛рд░реЗ рдмрд╛рд░реЗ рдореЗрдВ" рдФрд░ рдзреНрд╡рдирд┐ " рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ ... " .. ред

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рддреБрд░рдВрдд рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрднреА рднреА рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдЕрдиреБрд░реЛрдз рдХреЛ рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреГрд╖реНрда рдкрд░ рддреНрд╡рд░рд┐рдд рд╡рд╛рдкрд╕реА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣реЛрдо рдШрдЯрдХ рдЕрдирдорд╛рдЙрдВрдЯ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рддрд┐ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рдПрдЧреА, рд▓реЗрдХрд┐рди рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдЕрдиреБрд░реЛрдз рдЕрднреА рднреА рд╕реЗрдЯрдореЛрд╡реА рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧрд╛, рдЬреЛ рдЕрдм рдирд╣реАрдВ рд╣реИ рдФрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдЧрд╛ред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдПрдХ рдШрдЯрдХ рдХреЛ рдЕрдирдорд╛рдЙрдВрдЯ рдХрд░рддреЗ рд╕рдордп рд░рд╛рдЬреНрдп рдЕрдкрдбреЗрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рд╣реИ:

/src/Pages/HomePage.js

import React, { useState, useEffect } from 'react';

import { MOVIE_DB_GET } from '../config';

const HomePage = () => {
  // movie - react-;
  // setMovie -   react-
  const [ movie, setMovie ] = useState(null);

  useEffect(() => {
    let cleanupFunction = false;
    const fetchData = async () => {
      try {
        const response = await fetch(MOVIE_DB_GET);
        const result = await response.json();
        console.log(result, 'result')

        //     ,    
        if(!cleanupFunction) setMovie(result);
      } catch (e) {
        console.error(e.message)
      }
    };

    fetchData();

    //   useEffect
    return () => cleanupFunction = true;
  }, []);

  // descriptionMovie -  ,  view,         movie

  return (
    <main>
      <h2> </h2>
      <p> </p>

      {
        movie ? descriptionMovie() : false
      }
    </main>
  )
};

export default HomePage;


рд╕рдВрдкреВрд░реНрдг:


рд╕рднреА рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдВ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ: https://gitlab.com/ImaGadzhiev/react-cant-perform

All Articles