рд╣рдо рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рд╕реНрдХреЙрдЯ рдбреЛрдореЗрд╕ рдХреЗ рдПрдХ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ blog.bitsrc.io рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реБрдЖ рдерд╛ред рдХреИрдЯ рдХреЗ рддрд╣рдд рдкрддрд╛ рдХрд░реЗрдВ рдХрд┐ рдШрдЯрдХреЛрдВ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдЫреЛрдЯрд╛ рдХреНрдпреЛрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрдХрдорд╛рддреНрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдлреЛрдЯреЛ
рдСрд╕реНрдЯрд┐рди рдХрд░реНрдХ
рдЕрдирд╕реНрдкреНрд▓реИрд╢ рдХреЗ рд╕рд╛рде
рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХ рдкреНрд░рдгрд╛рд▓реА (рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ) рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдпреВрдЖрдИ рдХреЛ рдЫреЛрдЯреЗ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдкрдврд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдФрд░ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рд╣реИрдВред
рдпреЗ рдШрдЯрдХ рдХреЙрдореНрдкреИрдХреНрдЯ (100-200 рд▓рд╛рдЗрдиреЗрдВ) рд╣реИрдВ, рдЬреЛ рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдордЭрдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдпрджреНрдпрдкрд┐ рдШрдЯрдХ, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЫреЛрдЯреЗ рд╣реЛрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдЙрдирдХреА рд▓рдВрдмрд╛рдИ рдкрд░ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ, рд╕рдЦреНрдд рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рд╡рд┐рд╢рд╛рд▓ рдШрдЯрдХ рдореЗрдВ рдлрд┐рдЯ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ 3,000 рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред
... рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдШрдЯрдХ, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЪрдордХрджрд╛рд░ рд╣реИрдВ - рдпрд╛ рдмрд▓реНрдХрд┐, рд╡реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдпрд╣ рд╕рд╛рдмрд┐рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдШрдЯрдХреЛрдВ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рд╛рдорд╛рдиреНрдп 200-рд▓рд╛рдЗрди рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде) рдХреЛ рдЕрдзрд┐рдХ рд╕рдВрдХреАрд░реНрдг рд░реВрдк рд╕реЗ рд▓рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЗрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдПрдбреА рдЙрд╕реНрдорд╛рдиреА
рдпрд╣рд╛рдБ рдорд╣рд╛рди рдХрд╣рддреЗ
рд╣реИрдВ ред
рдпреБрдХреНрддрд┐ : рдЬреЗрдПрд╕ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рд▓реЗрдЧреЛ рднрд╛рдЧреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдШрдЯрдХреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ, рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдФрд░ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ
рд▓рд┐рдП рдмрд┐рдЯ рдХрд╛
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ред рдмрд┐рдЯ рдЗрд╕ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддреНрдпрдВрдд рдкреНрд░рднрд╛рд╡реА рдЙрдкрдХрд░рдг рд╣реИ, рдпрд╣ рдЖрдкрдХреА рдФрд░ рдЖрдкрдХреА рдЯреАрдо рдХреЗ рд╕рдордп рдХреЛ рдмрдЪрд╛рдиреЗ рдФрд░ рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рдмрд╕ рдЗрд╕реЗ рдПрдХ рдХреЛрд╢рд┐рд╢ рджреЗред
рдЖрдЗрдП рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ, рдШрдЯрдХ рдмрдирд╛рддреЗ рд╕рдордп
, рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ред
рд╣рдорд╛рд░рд╛ рдРрдк
рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмреНрд▓реЙрдЧрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИред рдФрд░ рдпрд╣рд╛рдБ рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рдкрд░ рдХреНрдпрд╛ рд╣реИ:
class Main extends React.Component { render() { return ( <div> <header> // Header JSX </header> <aside id="header"> // Sidebar JSX </aside> <div id="post-container"> {this.state.posts.map(post => { return ( <div className="post"> // Post JSX </div> ); })} </div> </div> ); } }
(рдпрд╣ рдЙрджрд╛рд╣рд░рдг, рдмрд╛рдж рдХреЗ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣, рдЫрджреНрдо рдХреЛрдб рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред)рдпрд╣ рд╢реАрд░реНрд╖ рдкреИрдирд▓, рд╕рд╛рдЗрдбрдмрд╛рд░ рдФрд░ рдкрджреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред
рдЪреВрдВрдХрд┐ рд╣рдореЗрдВ рдкреЛрд╕реНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдо рдШрдЯрдХ рдХреЗ рдорд╛рдЙрдВрдЯ рд╣реЛрдиреЗ рдХреЗ рджреМрд░рд╛рди рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
class Main extends React.Component { state = { posts: [] }; componentDidMount() { this.loadPosts(); } loadPosts() {
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рддрд░реНрдХ рднреА рд╣реИрдВ рдЬрд┐рдирдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдЗрдбрдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдКрдкрд░реА рдкреИрдирд▓ рдореЗрдВ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкрдХреНрд╖ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рдПрдЧрд╛ред рдЖрдк рдЗрд╕реЗ рдКрдкрд░ рдФрд░ рд╕рд╛рдЗрдб рдкреИрдирд▓ рд╕реЗ рд╣реА рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
class Main extends React.Component { state = { posts: [], isSidebarOpen: false }; componentDidMount() { this.loadPosts(); } loadPosts() {
рд╣рдорд╛рд░рд╛ рдШрдЯрдХ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдкрдврд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИред
рдпрд╣ рддрд░реНрдХ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╕рднреА рднрд╛рдЧ рдПрдХ рдЙрджреНрджреЗрд╢реНрдп рдХреА рдкреВрд░реНрддрд┐ рдХрд░рддреЗ рд╣реИрдВ: рдЖрд╡реЗрджрди рдХреЗ рдореБрдЦреНрдп рдкреГрд╖реНрда рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ред рдЗрд╕рд▓рд┐рдП рд╣рдо рдПрдХрдорд╛рддреНрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред
рдПрдХрдорд╛рддреНрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдШрдЯрдХ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рд╣рдо
wikipedia.org рд╕реЗ рд▓реА рдЧрдИ рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдХреЗрд╡рд▓ рдПрдХ рднрд╛рдЧ [рдЖрд╡реЗрджрди] рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рдорд╛рд░рд╛ рдореБрдЦреНрдп рдШрдЯрдХ рдЗрд╕ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИ?
рдпрд╣рд╛рдВ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдПрдХ рдЕрд▓рдЧ рд╕реВрддреНрд░реАрдХрд░рдг рд╣реИ:
рдХрд┐рд╕реА рднреА [рдШрдЯрдХ] рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдХрд╛рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ред
рдпрд╣ рдкрд░рд┐рднрд╛рд╖рд╛ рд░реЙрдмрд░реНрдЯ рдорд╛рд░реНрдЯрд┐рди рдХреА
рдкреБрд╕реНрддрдХ рд░реИрдкрд┐рдб рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд╕реЗ рд▓реА рдЧрдИ рд╣реИред рд╕рд┐рджреНрдзрд╛рдВрдд, рдЙрджрд╛рд╣рд░рдг, рдЕрднреНрдпрд╛рд╕, тАЭ рдФрд░ рдЗрд╕рдХрд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡ рд╣реИред
рдЕрдкрдиреЗ рдШрдЯрдХреЛрдВ
рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░рдг рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдХреЗ, рд╣рдо рдмреЗрд╣рддрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред
рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рд╣рдорд╛рд░реЗ рдШрдЯрдХ рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░реЗрдВред
рдЙрд▓рдЭрди
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдореБрдЦреНрдп рдШрдЯрдХ рдХреЗ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдХреЗ рдПрдХ рдорд╣реАрдиреЗ рдмрд╛рдж, рд╣рдорд╛рд░реА рдЯреАрдо рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдПрдХ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рд╕реМрдВрдкреА рдЧрдИред рдЕрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдкреЛрд╕реНрдЯ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЙрд╕рдореЗрдВ рдЕрдиреБрдЪрд┐рдд рд╕рд╛рдордЧреНрд░реА рд╣реИ)ред
рдпрд╣ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ!
class Main extends React.Component { state = { posts: [], isSidebarOpen: false, postsToHide: [] };
рд╣рдорд╛рд░реЗ рд╕рд╣рдпреЛрдЧреА рдиреЗ рдЗрд╕рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рдкрдЯрд╛ред рдЙрд╕рдиреЗ рдХреЗрд╡рд▓ рдПрдХ рдирдИ рд╡рд┐рдзрд┐ рдФрд░ рдПрдХ рдирдИ рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝реАред рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдиреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕реВрдЪреА рдХреЛ рджреЗрдЦрд╛ рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рднреА рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рдереАред
рдХреБрдЫ рд╣рдлрд╝реНрддреЗ рдмрд╛рдж, рдПрдХ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рдШреЛрд╖рдгрд╛ рдХреА рдЬрд╛рддреА рд╣реИ - рдореЛрдмрд╛рдЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░ рд╕рд╛рдЗрдбрдмрд╛рд░ред рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╡рд╛рдбрд╝ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдбреЗрд╡рд▓рдкрд░ рдХрдИ рдЬреЗрдПрд╕рдПрдХреНрд╕ рдШрдЯрдХ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЪрд▓реЗрдВрдЧреЗред
class Main extends React.Component { state = { posts: [], isSidebarOpen: false, postsToHide: [], isMobileSidebarOpen: false };
рдПрдХ рдФрд░ рдЫреЛрдЯрд╛ рд╕рд╛ рдмрджрд▓рд╛рд╡ред рдирдП рдирд╛рдо рд╡рд╛рд▓реЗ рддрд░реАрдХреЛрдВ рдФрд░ рдирдИ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдПрдХ рдЬреЛрдбрд╝рд╛ред
рдФрд░ рдпрд╣рд╛рдБ рд╣рдо рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред
Main
рдЕрднреА рднреА рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ (рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛), рд▓реЗрдХрд┐рди рдЖрдк рдЗрди рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬреЛ рдЕрдм рд╣рдо рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
class Main extends React.Component { state = { posts: [], isSidebarOpen: false, postsToHide: [], isMobileSidebarOpen: false }; componentDidMount() { this.loadPosts(); } loadPosts() {
рд╣рдорд╛рд░рд╛ рдШрдЯрдХ рдмрдбрд╝рд╛ рдФрд░ рднрд╛рд░реА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдФрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд╕рд╛рде, рд╕реНрдерд┐рддрд┐ рдХреЗрд╡рд▓ рдЦрд░рд╛рдм рд╣реЛ рдЬрд╛рдПрдЧреАред
рдХреНрдпрд╛ рдЧрд▓рдд рд╣реБрдЖ?
рдХреЗрд╡рд▓ рдХрд╛рд░рдг
рдЖрдЗрдП рдПрдХрдорд╛рддреНрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ:
рдХрд┐рд╕реА рднреА рдШрдЯрдХ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдХрд╛рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ред
рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдкреЛрд╕реНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЕрдкрдирд╛ рдореБрдЦреНрдп рдШрдЯрдХ рдмрджрд▓рдирд╛ рдкрдбрд╝рд╛ред рдЕрдЧрд▓рд╛, рд╣рдордиреЗ рд╕рд╛рдЗрдбрдмрд╛рд░ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ - рдФрд░ рдлрд┐рд░ рд╕реЗ рд╣рдордиреЗ рдореБрдЦреНрдп рдШрдЯрдХ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ред
рдЗрд╕ рдШрдЯрдХ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдХрдИ рдЕрд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░рдг рд╣реИрдВред
рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ ред
рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдШрдЯрдХ рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд╕реЗ рдЙрд╕рдХреЗ рджреВрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЗ рдШрдЯрдХ рдХреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реИред
рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдЬреБрджрд╛рдИ
рд╕рдорд╛рдзрд╛рди рд╕рд░рд▓ рд╣реИ: рдЖрдкрдХреЛ рдореБрдЦреНрдп рдШрдЯрдХ рдХреЛ рдХрдИ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ?
рдЪрд▓реЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдореБрдЦреНрдп рдШрдЯрдХ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рдХреЗрд╡рд▓ рд╕рдВрдмрдВрдзрд┐рдд рдШрдЯрдХреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рдХрд░рддреЗ рд╣реИрдВ:
class Main extends React.Component { render() { return ( <Layout> <PostList /> </Layout> ); } }
рдЕрджреНрднреБрддред
рдпрджрд┐ рд╣рдо рдЕрдЪрд╛рдирдХ рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рдХреЗ рд▓реЗрдЖрдЙрдЯ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрднрд╛рдЧ рдЬреЛрдбрд╝реЗрдВ), рддреЛ рдореЗрди рднреА рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрд╕реЗ рдЫреВрдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдареАрдХред
Layout
рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ:
class Layout extends React.Component { render() { return ( <SidebarDisplay> {(isSidebarOpen, toggleSidebar) => ( <div> <Header openSidebar={toggleSidebar} /> <Sidebar isOpen={isSidebarOpen} close={toggleSidebar} /> </div> )} </SidebarDisplay> ); } }
рдпрд╣ рдереЛрдбрд╝рд╛ рдФрд░ рдЬрдЯрд┐рд▓ рд╣реИред
Layout
рдШрдЯрдХреЛрдВ (рд╕рд╛рдЗрдб рдкреИрдирд▓ / рдЯреЙрдк рдкреИрдирд▓) рдХреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд▓реЗрдЖрдЙрдЯ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдкреНрд░рд▓реЛрднрди рдХреЗ рдЖрдЧреЗ рдирд╣реАрдВ рдЭреБрдХреЗрдВрдЧреЗ рдФрд░
Layout
рдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ
Layout
рдЬрд┐рдореНрдореЗрджрд╛рд░реА рджреЗрдВрдЧреЗ рдХрд┐ рд╕рд╛рдЗрдбрдмрд╛рд░ рдЦреБрд▓рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рд╣рдо рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ
SidebarDisplay
рдШрдЯрдХ рдореЗрдВ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ
Header
рдФрд░
Sidebar
рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рддрд░реАрдХреЛрдВ рдпрд╛ рд░рд╛рдЬреНрдп рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
(рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдмрдЪреНрдЪреЛрдВ рдХреЗ рдкреИрдЯрд░реНрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реЗрдВрдбрд░ рдкреНрд░реЙрдкреНрд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдПрдХ рдЕрд▓рдЧ рдШрдЯрдХ рд╣реИ рдЬреЛ рд╕рд╛рдЗрдбрдмрд╛рд░ рдХреЗ рдЦреБрд▓реЗ / рдмрдВрдж рд░рд╛рдЬреНрдп рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред)рдФрд░ рдлрд┐рд░,
Sidebar
рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЕрдЧрд░ рдпрд╣ рдХреЗрд╡рд▓ рджрд╛рдИрдВ рдУрд░ рд╕рд╛рдЗрдбрдмрд╛рд░ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
class Sidebar extends React.Component { isMobile() {
рдлрд┐рд░, рд╣рдо рдЗрд╕ рдШрдЯрдХ рдореЗрдВ рд╕реАрдзреЗ рдХрдВрдкреНрдпреВрдЯрд░ / рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП JSX рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдкреНрд░рд▓реЛрднрди рдХрд╛ рд╡рд┐рд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рджреЛ рдХрд╛рд░рдг рд╣реЛрдВрдЧреЗред
рдЖрдЗрдП рдПрдХ рдФрд░ рдШрдЯрдХ рджреЗрдЦреЗрдВ:
class PostList extends React.Component { state = { postsToHide: [] } filterPosts(posts) {
рдпрджрд┐ рд╣рдо рдкрджреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ
PostList
рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЗрд╡рд▓
PostList
рдмрджрд▓ рдЬрд╛рддрд╛
PostList
ред рд╕реНрдкрд╖реНрдЯ рд▓рдЧрддрд╛ рд╣реИ, рд╣реИ рдирд╛? рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рд╣рдо рдкреЛрд╕реНрдЯ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ
PostLoader
рд╣реА рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдЕрдВрдд рдореЗрдВ,
Post
рддрднреА рдмрджрд▓рддрд╛ рд╣реИ рдЬрдм рд╣рдо рдкреЛрд╕реНрдЯ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рдпреЗ рд╕рднреА рдШрдЯрдХ рдЫреЛрдЯреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдЫреЛрдЯрд╛ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред рдЙрдирдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдм рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ - рдШрдЯрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛, рдирдпрд╛ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдореМрдЬреВрджрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдЯрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдХрд┐ рдпрд╣
рдХреНрдпрд╛ рд╣реИред
рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдШрдЯрдХ рд╕рдордп рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВрдЧреЗ рдФрд░ рдмрдврд╝реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдирд┐рдпрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рддрдХрдиреАрдХреА рдЛрдг рд╕реЗ рдмрдЪрдиреЗ рдФрд░ рдЯреАрдо рдХреА рдЧрддрд┐ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред рдШрдЯрдХреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдпрд╣ рдЖрдкрдХреЗ рдКрдкрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╛рдж рд░рдЦреЗрдВ -
рдШрдЯрдХ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдХрд╛рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░ рд╣реИрдВ!