{"id":66868,"date":"2024-06-16T10:29:46","date_gmt":"2024-06-16T06:59:46","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/a-beginners-guide-to-component-design-in-react-521g\/"},"modified":"2024-06-16T10:29:46","modified_gmt":"2024-06-16T06:59:46","slug":"a-beginners-guide-to-component-design-in-react-521g","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/a-beginners-guide-to-component-design-in-react-521g\/","title":{"rendered":"\u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0645\u0628\u062a\u062f\u06cc\u0627\u0646 \u0628\u0631\u0627\u06cc \u0637\u0631\u0627\u062d\u06cc \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u062f\u0631 React"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang <\/p>\n<p>  \u0645\u0639\u0631\u0641\u06cc<\/p>\n<p>\u0648\u0627\u06a9\u0646\u0634 \u0646\u0634\u0627\u0646 \u062f\u0647\u06cc\u062f \u06cc\u06a9 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0645\u062d\u0628\u0648\u0628 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0631\u0627\u0628\u0637 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0647 \u0648\u06cc\u0698\u0647 \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u062a\u06a9 \u0635\u0641\u062d\u0647 \u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.  \u06cc\u06a9\u06cc \u0627\u0632 \u0645\u0641\u0627\u0647\u06cc\u0645 \u06a9\u0644\u06cc\u062f\u06cc \u062f\u0631 React \u0637\u0631\u0627\u062d\u06cc \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0627\u0633\u062a.  \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627 \u0628\u0644\u0648\u06a9 \u0647\u0627\u06cc \u0633\u0627\u0632\u0646\u062f\u0647 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 React \u0647\u0633\u062a\u0646\u062f.  \u062f\u0631\u06a9 \u0686\u06af\u0648\u0646\u06af\u06cc \u0627\u06cc\u062c\u0627\u062f \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u0648\u062b\u0631 \u0627\u0632 \u0622\u0646\u0647\u0627 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u06a9\u0627\u0631\u0622\u0645\u062f \u0648 \u0642\u0627\u0628\u0644 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a.  \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0637\u0631\u0627\u062d\u06cc \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u062f\u0631 React \u0631\u0627 \u0628\u0647 \u0632\u0628\u0627\u0646 \u0633\u0627\u062f\u0647 \u0648 \u0628\u0627 \u0645\u062b\u0627\u0644\u200c\u0647\u0627\u06cc \u0641\u0631\u0627\u0648\u0627\u0646 \u0628\u0631\u0627\u06cc \u062f\u0631\u06a9 \u0622\u0633\u0627\u0646 \u0622\u0646 \u062a\u0648\u0636\u06cc\u062d \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<p>  \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0686\u06cc\u0633\u062a\u061f<\/p>\n<p>\u0622 \u062c\u0632\u0621 \u062f\u0631 React \u0645\u0627\u0646\u0646\u062f \u06cc\u06a9 \u06a9\u062f \u06a9\u0648\u0686\u06a9 \u0648 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0627\u0633\u062a \u06a9\u0647 \u0628\u062e\u0634\u06cc \u0627\u0632 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f.  \u0628\u0647 \u0627\u062c\u0632\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u0628\u0644\u0648\u06a9 \u0647\u0627\u06cc LEGO \u0641\u06a9\u0631 \u06a9\u0646\u06cc\u062f.  \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0628\u0644\u0648\u06a9 \u0647\u0627\u06cc \u0644\u06af\u0648 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0633\u0627\u062e\u062a\u0627\u0631\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627\u06cc React \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0628\u062e\u0634 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644 \u0631\u0648\u0632\u0645\u0631\u0647:<\/p>\n<p>\u06cc\u06a9 \u0645\u0627\u0634\u06cc\u0646 \u0631\u0627 \u062a\u0635\u0648\u0631 \u06a9\u0646\u06cc\u062f.  \u062e\u0648\u062f\u0631\u0648 \u0627\u0632 \u0642\u0637\u0639\u0627\u062a \u0628\u0633\u06cc\u0627\u0631\u06cc \u0645\u0627\u0646\u0646\u062f \u0645\u0648\u062a\u0648\u0631\u060c \u0686\u0631\u062e \u0647\u0627 \u0648 \u0635\u0646\u062f\u0644\u06cc \u0647\u0627 \u062a\u0634\u06a9\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a.  \u0647\u0631 \u06cc\u06a9 \u0627\u0632 \u0627\u06cc\u0646 \u0642\u0633\u0645\u062a \u0647\u0627 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u06cc\u06a9 \u062c\u0632\u0621 \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a.  \u0628\u0647 \u0647\u0645\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628\u060c \u06cc\u06a9 \u0635\u0641\u062d\u0647 \u0648\u0628 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u0627\u062c\u0632\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0645\u0627\u0646\u0646\u062f \u0647\u062f\u0631\u060c \u067e\u0627\u0648\u0631\u0642\u06cc \u0648 \u0646\u0627\u062d\u06cc\u0647 \u0645\u062d\u062a\u0648\u0627 \u062a\u0634\u06a9\u06cc\u0644 \u0634\u0648\u062f.<\/p>\n<p>\u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 React\u060c \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u062f\u0631 \u062f\u0627\u062e\u0644 \u0627\u062c\u0632\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f \u062a\u0627 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u062f.  \u0647\u0631 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0645\u0633\u0626\u0648\u0644 \u0627\u0631\u0627\u0626\u0647 \u0628\u062e\u0634 \u06a9\u0648\u0686\u06a9\u06cc \u0627\u0632 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0627\u0633\u062a.<\/p>\n<p>  \u0627\u0646\u0648\u0627\u0639 \u0642\u0637\u0639\u0627\u062a<\/p>\n<p>  \u0627\u062c\u0632\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc<\/p>\n<p>\u0622 \u062c\u0632\u0621 \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0633\u0627\u062f\u0647 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u0633\u062a \u06a9\u0647 props \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0645\u06cc \u06af\u06cc\u0631\u062f \u0648 \u06cc\u06a9 \u0639\u0646\u0635\u0631 React \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f.  \u0646\u0648\u0634\u062a\u0646 \u0648 \u062f\u0631\u06a9 \u0627\u06cc\u0646 \u0627\u062c\u0632\u0627 \u0622\u0633\u0627\u0646 \u0627\u0633\u062a.<\/p>\n<p>\u0645\u062b\u0627\u0644:<\/p>\n<p>function Welcome(props) {<br \/>\n  return &lt;h1&gt;Hello, {props.name}!&lt;\/h1&gt;;<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c Welcome \u06cc\u06a9 \u0645\u0624\u0644\u0641\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0627\u0633\u062a \u06a9\u0647 \u067e\u0631\u0648\u067e\u0648\u0632\u0627\u0644 \u0647\u0627 \u0631\u0627 \u0645\u06cc \u067e\u0630\u06cc\u0631\u062f \u0648 \u067e\u06cc\u0627\u0645 \u062a\u0628\u0631\u06cc\u06a9 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f.<\/p>\n<p>\u0632\u0645\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u062c\u0632\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc:<\/p>\n<p>\u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0628\u0647 \u06cc\u06a9 \u062c\u0632\u0621 \u0633\u0627\u062f\u0647 \u0648 \u0628\u062f\u0648\u0646 \u062d\u0627\u0644\u062a \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f<br \/>\n\u0628\u0631\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0647\u062a\u0631 \u062f\u0631 \u0627\u06a9\u062b\u0631 \u0645\u0648\u0627\u0631\u062f<br \/>\n\u0628\u0627 React Hooks\u060c \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u062d\u0627\u0644\u062a \u0648 \u0639\u0648\u0627\u0631\u0636 \u062c\u0627\u0646\u0628\u06cc \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u0646\u062f<\/p>\n<p>  \u0627\u062c\u0632\u0627\u06cc \u06a9\u0644\u0627\u0633<\/p>\n<p>\u0622 \u062c\u0632\u0621 \u06a9\u0644\u0627\u0633 \u062c\u0632\u0621 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062a\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062d\u0627\u0644\u062a \u062e\u0648\u062f \u0631\u0627 \u0646\u06af\u0647 \u062f\u0627\u0631\u062f \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u062f.  \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u062d\u0648 \u06a9\u0644\u0627\u0633 ES6 \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0645\u062b\u0627\u0644:<\/p>\n<p>class Welcome extends React.Component {<br \/>\n  render() {<br \/>\n    return &lt;h1&gt;Hello, {this.props.name}!&lt;\/h1&gt;;<br \/>\n  }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c Welcome \u06cc\u06a9 \u062c\u0632\u0621 \u06a9\u0644\u0627\u0633 \u0627\u0633\u062a \u06a9\u0647 \u0647\u0645\u0686\u0646\u06cc\u0646 props \u0631\u0627 \u0645\u06cc \u067e\u0630\u06cc\u0631\u062f \u0648 \u06cc\u06a9 \u067e\u06cc\u0627\u0645 \u062a\u0628\u0631\u06cc\u06a9 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f.<\/p>\n<p>\u0632\u0645\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u062c\u0632\u0627\u06cc \u06a9\u0644\u0627\u0633:<\/p>\n<p>\u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0631\u0648\u0634 \u0647\u0627\u06cc \u062d\u0627\u0644\u062a \u06cc\u0627 \u0686\u0631\u062e\u0647 \u062d\u06cc\u0627\u062a \u062f\u0627\u0631\u06cc\u062f<\/p>\n<p>  \u0633\u0627\u062e\u062a\u0646 \u0627\u0648\u0644\u06cc\u0646 \u0645\u0624\u0644\u0641\u0647<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0633\u0627\u062f\u0647 \u0628\u0633\u0627\u0632\u06cc\u0645 \u0648 \u0622\u0646 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 React \u0631\u0646\u062f\u0631 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06af\u0627\u0645 \u0628\u0647 \u06af\u0627\u0645:<\/p>\n<p>\u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u062c\u062f\u06cc\u062f \u0628\u0647 \u0646\u0627\u0645 App.js \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<br \/>\nimport React from &#8216;react&#8217;;<\/p>\n<p>function App() {<br \/>\n  return (<br \/>\n    &lt;div&gt;<br \/>\n      &lt;h1&gt;My First Component&lt;\/h1&gt;<br \/>\n      &lt;Welcome name=&#8221;John&#8221; \/&gt;<br \/>\n    &lt;\/div&gt;<br \/>\n  );<br \/>\n}<\/p>\n<p>function Welcome(props) {<br \/>\n  return &lt;h1&gt;Hello, {props.name}!&lt;\/h1&gt;;<br \/>\n}<\/p>\n<p>export default App;<\/p>\n<p>\u0645\u0648\u0644\u0641\u0647 App \u0631\u0627 \u062f\u0631 index.js \u0631\u0646\u062f\u0631 \u06a9\u0646\u06cc\u062f:<br \/>\nimport React from &#8216;react&#8217;;<br \/>\nimport ReactDOM from &#8216;react-dom&#8217;;<br \/>\nimport App from &#8216;.\/App&#8217;;<\/p>\n<p>ReactDOM.render(&lt;App \/&gt;, document.getElementById(&#8216;root&#8217;));<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u0645\u0627 \u06cc\u06a9 \u0645\u0624\u0644\u0641\u0647 \u062e\u0648\u0634\u200c\u0622\u0645\u062f\u06af\u0648\u06cc\u06cc \u0633\u0627\u062f\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u0645 \u06a9\u0647 \u067e\u06cc\u0627\u0645 \u062a\u0628\u0631\u06cc\u06a9 \u0631\u0627 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u0627\u0632 \u0622\u0646 \u062f\u0631 \u062f\u0627\u062e\u0644 \u0645\u0624\u0644\u0641\u0647 App \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u06cc\u0645.<\/p>\n<p>  \u0627\u062c\u0632\u0627\u0621 \u0648 \u0648\u0636\u0639\u06cc\u062a<\/p>\n<p>  \u0644\u0648\u0627\u0632\u0645 \u062c\u0627\u0646\u0628\u06cc<\/p>\n<p>\u0644\u0648\u0627\u0632\u0645 \u062c\u0627\u0646\u0628\u06cc \u0648\u0631\u0648\u062f\u06cc \u0647\u0627\u06cc \u06cc\u06a9 \u062c\u0632\u0621 React \u0647\u0633\u062a\u0646\u062f.  \u0622\u0646\u0647\u0627 \u0628\u0647 \u0647\u0645\u0627\u0646 \u0631\u0648\u0634\u06cc \u06a9\u0647 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0647\u0627 \u0628\u0647 \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u0646\u062f \u0628\u0647 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u0646\u062f.<\/p>\n<p>\u0646\u0645\u0648\u0646\u0647 \u0627\u06cc \u0627\u0632 \u0642\u0637\u0639\u0627\u062a \u067e\u0627\u0633:<\/p>\n<p>function Welcome(props) {<br \/>\n  return &lt;h1&gt;Hello, {props.name}!&lt;\/h1&gt;;<br \/>\n}<\/p>\n<p>&lt;Welcome name=&#8221;Alice&#8221; \/&gt;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c name \u06cc\u06a9 \u067e\u0627\u06cc\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a Welcome \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f<\/p>\n<p>  \u062d\u0627\u0644\u062a<\/p>\n<p>\u062d\u0627\u0644\u062a \u0631\u0648\u0634\u06cc \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u0637\u0648\u0644 \u0632\u0645\u0627\u0646 \u062f\u0631 \u06cc\u06a9 \u062c\u0632\u0621 \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u0646\u062f.  State \u062f\u0631 \u062f\u0627\u062e\u0644 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc \u0634\u0648\u062f \u0648 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 useState Hook \u062f\u0631 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u06a9\u0631\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062d\u0627\u0644\u062a:<\/p>\n<p>import React, { useState } from &#8216;react&#8217;;<\/p>\n<p>function Counter() {<br \/>\n  const [count, setCount] = useState(0);<\/p>\n<p>  return (<br \/>\n    &lt;div&gt;<br \/>\n      &lt;p&gt;You clicked {count} times&lt;\/p&gt;<br \/>\n      &lt;button onClick={() =&gt; setCount(count + 1)}&gt;<br \/>\n        Click me<br \/>\n      &lt;\/button&gt;<br \/>\n    &lt;\/div&gt;<br \/>\n  );<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c Counter \u06cc\u06a9 \u062c\u0632\u0621 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0627\u0632 useState Hook \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a \u0634\u0645\u0627\u0631\u0634 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>  \u0622\u0647\u0646\u06af\u0633\u0627\u0632\u06cc \u0627\u062c\u0632\u0627\u0621<\/p>\n<p>\u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a UI \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062a\u0631 \u062a\u0631\u06a9\u06cc\u0628 \u06a9\u0631\u062f.  \u0628\u0647 \u0627\u06cc\u0646 \u0645\u06cc\u06af\u0646 \u06a9\u0627\u0645\u067e\u0648\u0632\u06cc\u062a \u0627\u062c\u0632\u0627.<\/p>\n<p>\u0645\u062b\u0627\u0644:<\/p>\n<p>function App() {<br \/>\n  return (<br \/>\n    &lt;div&gt;<br \/>\n      &lt;Header \/&gt;<br \/>\n      &lt;Content \/&gt;<br \/>\n      &lt;Footer \/&gt;<br \/>\n    &lt;\/div&gt;<br \/>\n  );<br \/>\n}<\/p>\n<p>function Header() {<br \/>\n  return &lt;h1&gt;This is the header&lt;\/h1&gt;;<br \/>\n}<\/p>\n<p>function Content() {<br \/>\n  return &lt;p&gt;This is the content&lt;\/p&gt;;<br \/>\n}<\/p>\n<p>function Footer() {<br \/>\n  return &lt;p&gt;This is the footer&lt;\/p&gt;;<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c App \u0627\u0632 \u0627\u062c\u0632\u0627\u06cc Header\u060c Content \u0648 Footer \u062a\u0634\u06a9\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>  \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634 \u0647\u0627 \u062f\u0631 \u0637\u0631\u0627\u062d\u06cc \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a<\/p>\n<p>\u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627 \u0631\u0627 \u06a9\u0648\u0686\u06a9 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u062f: \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0627\u062c\u0632\u0627\u06cc \u06a9\u0648\u0686\u06a9 \u0648 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0646\u06cc\u062f.  \u0627\u06cc\u0646 \u0627\u0645\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648 \u062f\u0631\u06a9 \u06a9\u062f \u0634\u0645\u0627 \u0631\u0627 \u0622\u0633\u0627\u0646 \u062a\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644: \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0633\u0627\u0646\u0647 \u0627\u062c\u062a\u0645\u0627\u0639\u06cc\u060c \u0628\u0647 \u062c\u0627\u06cc \u062f\u0627\u0634\u062a\u0646 \u06cc\u06a9 \u062c\u0632\u0621 \u0628\u0632\u0631\u06af \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0644 \u0635\u0641\u062d\u0647 \u0646\u0645\u0627\u06cc\u0647 \u06a9\u0627\u0631\u0628\u0631\u060c \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0627\u062c\u0632\u0627\u06cc \u06a9\u0648\u0686\u06a9\u062a\u0631 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0646\u06cc\u062f. ProfileHeader\u060c ProfilePicture\u060c ProfileBio\u060c \u0648 ProfilePosts.  \u0627\u06cc\u0646 \u0627\u0645\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u0633\u062a\u0642\u0644 \u0647\u0631 \u0645\u0624\u0644\u0641\u0647 \u0631\u0627 \u0622\u0633\u0627\u0646\u200c\u062a\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f<\/p>\n<p>\/\/ ProfileHeader.js<br \/>\nimport React from &#8216;react&#8217;;<\/p>\n<p>function ProfileHeader({ name }) {<br \/>\n  return &lt;h1&gt;{name}&#8217;s Profile;<br \/>\n}<\/p>\n<p>export default ProfileHeader;<\/p>\n<p>\/\/ ProfilePicture.js<br \/>\nimport React from &#8216;react&#8217;;<\/p>\n<p>function ProfilePicture({ imageUrl }) {<br \/>\n  return ;<br \/>\n}<\/p>\n<p>export default ProfilePicture;<\/p>\n<p>\/\/ ProfileBio.js<br \/>\nimport React from &#8216;react&#8217;;<\/p>\n<p>function ProfileBio({ bio }) {<br \/>\n  return {bio};<br \/>\n}<\/p>\n<p>export default ProfileBio;<\/p>\n<p>\/\/ ProfilePosts.js<br \/>\nimport React from &#8216;react&#8217;;<\/p>\n<p>function ProfilePosts({ posts }) {<br \/>\n  return (<\/p>\n<p>      {posts.map(post =&gt; (<br \/>\n        {post.content}<br \/>\n      ))}<\/p>\n<p>  );<br \/>\n}<\/p>\n<p>export default ProfilePosts;<\/p>\n<p>\/\/ UserProfile.js<br \/>\nimport React from &#8216;react&#8217;;<br \/>\nimport ProfileHeader from &#8216;.\/ProfileHeader&#8217;;<br \/>\nimport ProfilePicture from &#8216;.\/ProfilePicture&#8217;;<br \/>\nimport ProfileBio from &#8216;.\/ProfileBio&#8217;;<br \/>\nimport ProfilePosts from &#8216;.\/ProfilePosts&#8217;;<\/p>\n<p>function UserProfile({ user }) {<br \/>\n  return (<\/p>\n<p>  );<br \/>\n}<\/p>\n<p>export default UserProfile;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u0648\u0627\u062d\u062f: \u0647\u0631 \u062c\u0632\u0621 \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u062e\u0648\u0628\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u062f.  \u0627\u06cc\u0646 \u0627\u0645\u0631 \u0628\u0627\u0639\u062b \u0645\u06cc \u0634\u0648\u062f \u062a\u0627 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627 \u062a\u0633\u062a \u0648 \u0627\u0634\u06a9\u0627\u0644 \u0632\u062f\u0627\u06cc\u06cc \u0622\u0646\u0647\u0627 \u0631\u0627 \u0622\u0633\u0627\u0646 \u062a\u0631 \u06a9\u0646\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644: \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062a\u062c\u0627\u0631\u062a \u0627\u0644\u06a9\u062a\u0631\u0648\u0646\u06cc\u06a9\u06cc\u060c \u0627\u0644\u0641 ProductCard \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0641\u0642\u0637 \u0628\u0627\u06cc\u062f \u0645\u0633\u0626\u0648\u0644 \u0646\u0645\u0627\u06cc\u0634 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u062d\u0635\u0648\u0644 \u0628\u0627\u0634\u062f.  \u0647\u0631 \u06af\u0648\u0646\u0647 \u0645\u0646\u0637\u0642 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0627\u0641\u0632\u0648\u062f\u0646 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0633\u0628\u062f \u062e\u0631\u06cc\u062f \u0628\u0627\u06cc\u062f \u062a\u0648\u0633\u0637 \u06cc\u06a9 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0634\u0648\u062f AddToCartButton \u062c\u0632\u0621.  \u0627\u06cc\u0646 \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0647\u0631 \u062c\u0632\u0621 \u062f\u0627\u0631\u0627\u06cc \u06cc\u06a9 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u0648\u0627\u062d\u062f \u0627\u0633\u062a.<\/p>\n<p>\/\/ ProductCard.js<br \/>\nimport React from &#8216;react&#8217;;<\/p>\n<p>function ProductCard({ product }) {<br \/>\n  return (<br \/>\n    &lt;div&gt;<br \/>\n      &lt;h2&gt;{product.name}&lt;\/h2&gt;<br \/>\n      &lt;p&gt;{product.description}&lt;\/p&gt;<br \/>\n      &lt;p&gt;${product.price}&lt;\/p&gt;<br \/>\n    &lt;\/div&gt;<br \/>\n  );<br \/>\n}<\/p>\n<p>export default ProductCard;<\/p>\n<p>\/\/ AddToCartButton.js<br \/>\nimport React from &#8216;react&#8217;;<\/p>\n<p>function AddToCartButton({ onAddToCart }) {<br \/>\n  return &lt;button onClick={onAddToCart}&gt;Add to Cart&lt;\/button&gt;;<br \/>\n}<\/p>\n<p>export default AddToCartButton;<\/p>\n<p>\/\/ ProductPage.js<br \/>\nimport React from &#8216;react&#8217;;<br \/>\nimport ProductCard from &#8216;.\/ProductCard&#8217;;<br \/>\nimport AddToCartButton from &#8216;.\/AddToCartButton&#8217;;<\/p>\n<p>function ProductPage({ product, onAddToCart }) {<br \/>\n  return (<br \/>\n    &lt;div&gt;<br \/>\n      &lt;ProductCard product={product} \/&gt;<br \/>\n      &lt;AddToCartButton onAddToCart={onAddToCart} \/&gt;<br \/>\n    &lt;\/div&gt;<br \/>\n  );<br \/>\n}<\/p>\n<p>export default ProductPage;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u0632 Props \u0648 \u062d\u0627\u0644\u062a \u0639\u0627\u0642\u0644\u0627\u0646\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f: \u0627\u0632 props \u0628\u0631\u0627\u06cc \u0627\u0646\u062a\u0642\u0627\u0644 \u062f\u0627\u062f\u0647 \u0648 \u062d\u0627\u0644\u062a \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc \u06a9\u0646\u0646\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.  \u0627\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062d\u0627\u0644\u062a \u062f\u0631 \u0645\u06a9\u0627\u0646 \u0647\u0627\u06cc \u0632\u06cc\u0627\u062f \u062e\u0648\u062f\u062f\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f.  \u0622\u0646 \u0631\u0627 \u062f\u0631 \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0646\u0637\u0642\u06cc \u0627\u0633\u062a \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u062f<\/p>\n<p>\u0645\u062b\u0627\u0644: \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0622\u0628 \u0648 \u0647\u0648\u0627\u060c \u0627\u0632 props \u0628\u0631\u0627\u06cc \u0627\u0631\u0633\u0627\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0622\u0628 \u0648 \u0647\u0648\u0627\u06cc \u0641\u0639\u0644\u06cc \u0628\u0647 a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f WeatherDisplay \u062c\u0632\u0621.  \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062d\u0627\u0644\u062a \u062f\u0631 a WeatherFetcher \u062c\u0632\u0621 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0627\u06a9\u0634\u06cc \u0648 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0622\u0628 \u0648 \u0647\u0648\u0627.  \u0627\u06cc\u0646 \u062c\u0631\u06cc\u0627\u0646 \u062f\u0627\u062f\u0647 \u0631\u0627 \u0634\u0641\u0627\u0641 \u0648 \u0642\u0627\u0628\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0646\u06af\u0647 \u0645\u06cc \u062f\u0627\u0631\u062f.<\/p>\n<p>\/\/ WeatherDisplay.js<br \/>\nimport React from &#8216;react&#8217;;<\/p>\n<p>function WeatherDisplay({ weather }) {<br \/>\n  return (<br \/>\n    &lt;div&gt;<br \/>\n      &lt;h2&gt;Current Weather&lt;\/h2&gt;<br \/>\n      &lt;p&gt;Temperature: {weather.temperature}\u00b0C&lt;\/p&gt;<br \/>\n      &lt;p&gt;Condition: {weather.condition}&lt;\/p&gt;<br \/>\n    &lt;\/div&gt;<br \/>\n  );<br \/>\n}<\/p>\n<p>export default WeatherDisplay;<\/p>\n<p>\/\/ WeatherFetcher.js<br \/>\nimport React, { useState, useEffect } from &#8216;react&#8217;;<br \/>\nimport WeatherDisplay from &#8216;.\/WeatherDisplay&#8217;;<\/p>\n<p>function WeatherFetcher() {<br \/>\n  const [weather, setWeather] = useState(null);<\/p>\n<p>  useEffect(() =&gt; {<br \/>\n    fetch(&#8216;https:\/\/api.weatherapi.com\/v1\/current.json?key=YOUR_API_KEY&amp;q=London&#8217;)<br \/>\n      .then(response =&gt; response.json())<br \/>\n      .then(data =&gt; setWeather(data.current));<br \/>\n  }, []);<\/p>\n<p>  return weather ? &lt;WeatherDisplay weather={weather} \/&gt; : Loading&#8230;p&gt;;<br \/>\n}<\/p>\n<p>export default WeatherFetcher;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062a\u0631\u06a9\u06cc\u0628 \u0628\u06cc\u0634 \u0627\u0632 \u0627\u0631\u062b: \u0628\u0647 \u062c\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0648\u0631\u0627\u062b\u062a\u060c \u0627\u062c\u0632\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062a\u0631\u06a9\u06cc\u0628 \u06a9\u0646\u06cc\u062f.  \u0627\u06cc\u0646 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u062f \u0634\u0645\u0627 \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631\u062a\u0631 \u0628\u0627\u0634\u062f \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0622\u0646 \u0622\u0633\u0627\u0646\u200c\u062a\u0631 \u0634\u0648\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644: \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u0627\u0634\u0628\u0648\u0631\u062f\u060c \u0628\u0647 \u062c\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u067e\u0627\u06cc\u0647 Widget \u06a9\u0644\u0627\u0633 \u0648 \u0627\u0631\u062b \u0628\u0631\u062f\u0646 \u0627\u0632 \u0622\u0646\u060c \u0627\u062c\u0632\u0627\u06cc \u06a9\u0648\u0686\u06a9 \u0648 \u0642\u0627\u0628\u0644 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0645\u0627\u0646\u0646\u062f ChartWidget\u060c TableWidget\u060c \u0648 SummaryWidget.  \u0627\u06cc\u0646 \u0627\u062c\u0632\u0627 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u062a\u0631\u06a9\u06cc\u0628 \u06a9\u0646\u06cc\u062f Dashboard \u062c\u0632\u0621 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f UI \u0646\u0647\u0627\u06cc\u06cc.  \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631\u062a\u0631 \u0627\u0633\u062a \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0622\u0646 \u0622\u0633\u0627\u0646\u200c\u062a\u0631 \u0627\u0633\u062a.<\/p>\n<p>\/\/ ChartWidget.js<br \/>\nimport React from &#8216;react&#8217;;<\/p>\n<p>function ChartWidget() {<br \/>\n  return &lt;div&gt;Chart Widget&lt;\/div&gt;;<br \/>\n}<\/p>\n<p>export default ChartWidget;<\/p>\n<p>\/\/ TableWidget.js<br \/>\nimport React from &#8216;react&#8217;;<\/p>\n<p>function TableWidget() {<br \/>\n  return &lt;div&gt;Table Widget&lt;\/div&gt;;<br \/>\n}<\/p>\n<p>export default TableWidget;<\/p>\n<p>\/\/ SummaryWidget.js<br \/>\nimport React from &#8216;react&#8217;;<\/p>\n<p>function SummaryWidget() {<br \/>\n  return &lt;div&gt;Summary Widget&lt;\/div&gt;;<br \/>\n}<\/p>\n<p>export default SummaryWidget;<\/p>\n<p>\/\/ Dashboard.js<br \/>\nimport React from &#8216;react&#8217;;<br \/>\nimport ChartWidget from &#8216;.\/ChartWidget&#8217;;<br \/>\nimport TableWidget from &#8216;.\/TableWidget&#8217;;<br \/>\nimport SummaryWidget from &#8216;.\/SummaryWidget&#8217;;<\/p>\n<p>function Dashboard() {<br \/>\n  return (<br \/>\n    &lt;div&gt;<br \/>\n      &lt;ChartWidget \/&gt;<br \/>\n      &lt;TableWidget \/&gt;<br \/>\n      &lt;SummaryWidget \/&gt;<br \/>\n    &lt;\/div&gt;<br \/>\n  );<br \/>\n}<\/p>\n<p>export default Dashboard;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u06a9\u062f \u0642\u0627\u0628\u0644 \u062e\u0648\u0627\u0646\u062f\u0646 \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc: \u06a9\u062f\u0647\u0627\u06cc \u062a\u0645\u06cc\u0632 \u0648 \u062e\u0648\u0627\u0646\u0627 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f.  \u0627\u0632 \u0646\u0627\u0645 \u0647\u0627\u06cc \u0645\u0639\u0646\u06cc \u062f\u0627\u0631 \u0628\u0631\u0627\u06cc \u0627\u062c\u0632\u0627 \u0648 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.  \u062f\u0631 \u0635\u0648\u0631\u062a \u0644\u0632\u0648\u0645 \u0628\u0631\u0627\u06cc \u062a\u0648\u0636\u06cc\u062d \u0645\u0646\u0637\u0642 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0646\u0638\u0631\u0627\u062a \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644: \u062f\u0631 \u06cc\u06a9 \u067e\u0644\u062a \u0641\u0631\u0645 \u0648\u0628\u0644\u0627\u06af \u0646\u0648\u06cc\u0633\u06cc\u060c \u0627\u0632 \u0646\u0627\u0645 \u0647\u0627\u06cc \u0645\u0639\u0646\u06cc \u062f\u0627\u0631 \u0628\u0631\u0627\u06cc \u0627\u062c\u0632\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f Post\u060c Comment\u060c \u0648 AuthorBio.  \u0628\u0631\u0627\u06cc \u062a\u0648\u0636\u06cc\u062d \u0645\u0646\u0637\u0642 \u067e\u06cc\u0686\u06cc\u062f\u0647\u060c \u0645\u0627\u0646\u0646\u062f \u0686\u06af\u0648\u0646\u06af\u06cc Post \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u0648\u0627\u06a9\u0634\u06cc \u0648 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f.  \u0627\u06cc\u0646 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u062c\u062f\u06cc\u062f \u062f\u0631\u06a9 \u06a9\u0646\u0646\u062f \u0648 \u062f\u0631 \u0622\u0646 \u0645\u0634\u0627\u0631\u06a9\u062a \u06a9\u0646\u0646\u062f.<\/p>\n<p>\/\/ Post.js<br \/>\nimport React from &#8216;react&#8217;;<\/p>\n<p>\/\/ Post.js<br \/>\nimport React, { useState, useEffect } from &#8216;react&#8217;;<\/p>\n<p>function Post({ postId }) {<br \/>\n  const [post, setPost] = useState(null);<br \/>\n  const [loading, setLoading] = useState(true);<\/p>\n<p>  \/\/ Fetch the post data when the component mounts<br \/>\n  useEffect(() =&gt; {<br \/>\n    async function fetchPost() {<br \/>\n      try {<br \/>\n        const response = await fetch(`https:\/\/api.example.com\/posts\/${postId}`);<br \/>\n        const data = await response.json();<br \/>\n        setPost(data);<br \/>\n      } catch (error) {<br \/>\n        console.error(&#8216;Error fetching post:&#8217;, error);<br \/>\n      } finally {<br \/>\n        setLoading(false);<br \/>\n      }<br \/>\n    }<\/p>\n<p>    fetchPost();<br \/>\n  }, [postId]);<\/p>\n<p>  if (loading) {<br \/>\n    return &lt;p&gt;Loading&#8230;&lt;\/p&gt;;<br \/>\n  }<\/p>\n<p>  if (!post) {<br \/>\n    return &lt;p&gt;Post not found&lt;\/p&gt;;<br \/>\n  }<\/p>\n<p>  return (<br \/>\n    &lt;div&gt;<br \/>\n      &lt;h2&gt;{post.title}&lt;\/h2&gt;<br \/>\n      &lt;p&gt;{post.content}&lt;\/p&gt;<br \/>\n    &lt;\/div&gt;<br \/>\n  );<br \/>\n}<\/p>\n<p>export default Post;<\/p>\n<p>\/\/ Comment.js<br \/>\nimport React from &#8216;react&#8217;;<\/p>\n<p>function Comment({ author, text }) {<br \/>\n  return (<br \/>\n    &lt;div&gt;<br \/>\n      &lt;p&gt;&lt;strong&gt;{author}&lt;\/strong&gt;: {text}p&gt;<br \/>\n    &lt;\/div&gt;<br \/>\n  );<br \/>\n}<\/p>\n<p>export default Comment;<\/p>\n<p>\/\/ AuthorBio.js<br \/>\nimport React from &#8216;react&#8217;;<\/p>\n<p>function AuthorBio({ author }) {<br \/>\n  return (<br \/>\n    &lt;div&gt;<br \/>\n      &lt;h3&gt;About the Author&lt;\/h3&gt;<br \/>\n      &lt;p&gt;{author.bio}&lt;\/p&gt;<br \/>\n    &lt;\/div&gt;<br \/>\n  );<br \/>\n}<\/p>\n<p>export default AuthorBio;<\/p>\n<p>\/\/ Blog.js<br \/>\nimport React, { useState, useEffect } from &#8216;react&#8217;;<br \/>\nimport Post from &#8216;.\/Post&#8217;;<br \/>\nimport Comment from &#8216;.\/Comment&#8217;;<br \/>\nimport AuthorBio from &#8216;.\/AuthorBio&#8217;;<\/p>\n<p>function Blog({ postId }) {<br \/>\n  const [comments, setComments] = useState([]);<br \/>\n  const [author, setAuthor] = useState(null);<\/p>\n<p>  \/\/ Fetch comments and author data when the component mounts<br \/>\n  useEffect(() =&gt; {<br \/>\n    async function fetchComments() {<br \/>\n      try {<br \/>\n        const response = await fetch(`https:\/\/api.example.com\/posts\/${postId}\/comments`);<br \/>\n        const data = await response.json();<br \/>\n        setComments(data);<br \/>\n      } catch (error) {<br \/>\n        console.error(&#8216;Error fetching comments:&#8217;, error);<br \/>\n      }<br \/>\n    }<\/p>\n<p>    async function fetchAuthor() {<br \/>\n      try {<br \/>\n        const response = await fetch(`https:\/\/api.example.com\/posts\/${postId}\/author`);<br \/>\n        const data = await response.json();<br \/>\n        setAuthor(data);<br \/>\n      } catch (error) {<br \/>\n        console.error(&#8216;Error fetching author:&#8217;, error);<br \/>\n      }<br \/>\n    }<\/p>\n<p>    fetchComments();<br \/>\n    fetchAuthor();<br \/>\n  }, [postId]);<\/p>\n<p>  return (<br \/>\n    &lt;div&gt;<br \/>\n      &lt;Post postId={postId} \/&gt;<br \/>\n      {author &amp;&amp; &lt;AuthorBio author={author} \/&gt;}<br \/>\n      &lt;h3&gt;Comments&lt;\/h3&gt;<br \/>\n      {comments.map((comment) =&gt; (<br \/>\n        &lt;Comment key={comment.id} author={comment.author} text={comment.text} \/&gt;<br \/>\n      ))}<br \/>\n    &lt;\/div&gt;<br \/>\n  );<br \/>\n}<\/p>\n<p>export default Blog;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f: \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u06a9\u0646\u06cc\u06a9\u200c\u0647\u0627\u06cc \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u062f\u0627\u062e\u0644\u06cc React \u0627\u0632 \u0631\u0646\u062f\u0631\u0647\u0627\u06cc \u0645\u062c\u062f\u062f \u063a\u06cc\u0631\u0636\u0631\u0648\u0631\u06cc \u062e\u0648\u062f\u062f\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f React.memo \u0648 useCallback.<\/p>\n<p>\u0645\u062b\u0627\u0644: \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0686\u062a\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f React.memo \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0627\u0631\u0627\u0626\u0647 \u0645\u062c\u062f\u062f \u063a\u06cc\u0631 \u0636\u0631\u0648\u0631\u06cc MessageList \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u0634\u0648\u062f.  \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f useCallback \u0628\u0631\u0627\u06cc \u0628\u0647 \u062e\u0627\u0637\u0631 \u0633\u067e\u0631\u062f\u0646 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u0647\u0627\u06cc \u0631\u0648\u06cc\u062f\u0627\u062f \u062f\u0631 MessageInput \u062c\u0632\u0621 \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u062a\u0648\u0627\u0628\u0639 \u062c\u062f\u06cc\u062f \u062f\u0631 \u0647\u0631 \u0631\u0646\u062f\u0631.<\/p>\n<p>\/\/ MessageList.js<br \/>\nimport React from &#8216;react&#8217;;<\/p>\n<p>const MessageList = React.memo(({ messages }) =&gt; {<br \/>\n  return (<br \/>\n    &lt;ul&gt;<br \/>\n      {messages.map(message =&gt; (<br \/>\n        &lt;li key={message.id}&gt;{message.text}&lt;\/li&gt;<br \/>\n      ))}<br \/>\n    &lt;\/ul&gt;<br \/>\n  );<br \/>\n});<\/p>\n<p>export default MessageList;<\/p>\n<p>\/\/ MessageInput.js<br \/>\nimport React, { useState, useCallback } from &#8216;react&#8217;;<\/p>\n<p>function MessageInput({ onSendMessage }) {<br \/>\n  const [text, setText] = useState(&#8221;);<\/p>\n<p>  const handleChange = useCallback((e) =&gt; {<br \/>\n    setText(e.target.value);<br \/>\n  }, []);<\/p>\n<p>  const handleSubmit = useCallback((e) =&gt; {<br \/>\n    e.preventDefault();<br \/>\n    onSendMessage(text);<br \/>\n    setText(&#8221;);<br \/>\n  }, [text, onSendMessage]);<\/p>\n<p>  return (<br \/>\n    &lt;form onSubmit={handleSubmit}&gt;<br \/>\n      &lt;input type=&#8221;text&#8221; value={text} onChange={handleChange} \/&gt;<br \/>\n      &lt;button type=&#8221;submit&#8221;&gt;Send&lt;\/button&gt;<br \/>\n    &lt;\/form&gt;<br \/>\n  );<br \/>\n}<\/p>\n<p>export default MessageInput;<\/p>\n<p>\/\/ ChatApp.js<br \/>\nimport React, { useState } from &#8216;react&#8217;;<br \/>\nimport MessageList from &#8216;.\/MessageList&#8217;;<br \/>\nimport MessageInput from &#8216;.\/MessageInput&#8217;;<\/p>\n<p>function ChatApp() {<br \/>\n  const [messages, setMessages] = useState([]);<\/p>\n<p>  const handleSendMessage = (text) =&gt; {<br \/>\n    setMessages([&#8230;messages, { id: messages.length, text }]);<br \/>\n  };<\/p>\n<p>  return (<br \/>\n    &lt;div&gt;<br \/>\n      &lt;MessageList messages={messages} \/&gt;<br \/>\n      &lt;MessageInput onSendMessage={handleSendMessage} \/&gt;<br \/>\n    &lt;\/div&gt;<br \/>\n  );<br \/>\n}<\/p>\n<p>export default ChatApp;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u06cc\u06a9 \u0638\u0627\u0647\u0631 \u0637\u0631\u0627\u062d\u06cc \u0645\u0646\u0633\u062c\u0645: \u0627\u0632 \u06cc\u06a9 \u0631\u0648\u06cc\u06a9\u0631\u062f \u062b\u0627\u0628\u062a \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0627\u06cc\u0644 \u062f\u0627\u062f\u0646 \u0628\u0647 \u0627\u062c\u0632\u0627\u06cc \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.  \u0627\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0645\u0627\u0698\u0648\u0644 \u0647\u0627\u06cc CSS\u060c \u0645\u0648\u0644\u0641\u0647 \u0647\u0627\u06cc \u0633\u0628\u06a9 \u06cc\u0627 \u0631\u0648\u0634 \u062f\u06cc\u06af\u0631\u06cc \u0628\u0627\u0634\u062f \u06a9\u0647 \u0628\u0631\u0627\u06cc \u062a\u06cc\u0645 \u0634\u0645\u0627 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644: \u062f\u0631 \u06cc\u06a9 \u0648\u0628\u200c\u0633\u0627\u06cc\u062a \u0634\u0631\u06a9\u062a\u06cc\u060c \u0627\u0632 \u0645\u0627\u0698\u0648\u0644\u200c\u0647\u0627\u06cc CSS \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0627\u0633\u062a\u0627\u06cc\u0644\u200c\u0647\u0627 \u0628\u0647 \u0627\u062c\u0632\u0627\u06cc \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0645\u062d\u062f\u0648\u062f \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 \u0627\u0632 \u062a\u0636\u0627\u062f \u0633\u0628\u06a9 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.  \u06cc\u0627 \u0627\u0632 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0627\u06cc \u0645\u0627\u0646\u0646\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f styled-components \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0633\u0628\u06a9 \u0647\u0627\u06cc \u0633\u0627\u0632\u06af\u0627\u0631 \u0648 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u062f\u0631 \u0633\u0631\u0627\u0633\u0631 \u0628\u0631\u0646\u0627\u0645\u0647.<\/p>\n<p>\/\/ ProfileHeader.module.css<br \/>\n.header {<br \/>\n  font-size: 2em;<br \/>\n  color: blue;<br \/>\n}<\/p>\n<p>\/\/ ProfileHeader.js<br \/>\nimport React from &#8216;react&#8217;;<br \/>\nimport styles from &#8216;.\/ProfileHeader.module.css&#8217;;<\/p>\n<p>function ProfileHeader({ name }) {<br \/>\n  return &lt;h1 className={styles.header}&gt;{name}&#8217;s Profile;<br \/>\n}<\/p>\n<p>export default ProfileHeader;<\/p>\n<p>\/\/ Profile.js<br \/>\nimport React from &#8216;react&#8217;;<br \/>\nimport ProfileHeader from &#8216;.\/ProfileHeader&#8217;;<\/p>\n<p>function Profile({ user }) {<br \/>\n  return (<\/p>\n<p>  );<br \/>\n}<\/p>\n<p>export default Profile;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0627 \u067e\u06cc\u0631\u0648\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0634\u06cc\u0648\u0647\u200c\u0647\u0627\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u0624\u0644\u0641\u0647\u200c\u0647\u0627\u06cc React \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647\u060c \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0648 \u0645\u0642\u06cc\u0627\u0633\u200c\u0628\u0646\u062f\u06cc \u0622\u0646\u200c\u0647\u0627 \u0622\u0633\u0627\u0646 \u0628\u0627\u0634\u062f.<\/p>\n<p>  \u0646\u062a\u06cc\u062c\u0647<\/p>\n<p>\u0628\u0627 \u062a\u0633\u0644\u0637 \u0628\u0631 \u0627\u0635\u0648\u0644 \u0637\u0631\u0627\u062d\u06cc \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u062f\u0631 React\u060c \u0634\u0645\u0627 \u0622\u0645\u0627\u062f\u0647 \u0627\u06cc\u062c\u0627\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0648\u0628 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631\u060c \u06a9\u0627\u0631\u0622\u0645\u062f \u0648 \u0642\u0627\u0628\u0644 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u0648\u062f.  \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627 \u0628\u0644\u0648\u06a9 \u0647\u0627\u06cc \u0633\u0627\u0632\u0646\u062f\u0647 React \u0647\u0633\u062a\u0646\u062f \u0648 \u062f\u0631\u06a9 \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u0648\u062b\u0631 \u0648 \u062a\u0631\u06a9\u06cc\u0628 \u0622\u0646\u0647\u0627 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a.  \u0628\u0647 \u06cc\u0627\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0634\u06cc\u0648\u0647 \u0647\u0627 \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f\u060c \u0645\u0627\u0646\u0646\u062f \u06a9\u0648\u0686\u06a9 \u0646\u06af\u0647 \u062f\u0627\u0634\u062a\u0646 \u0627\u062c\u0632\u0627\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0639\u0627\u0642\u0644\u0627\u0646\u0647 \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u0648 \u062d\u0627\u0644\u062a \u0647\u0627\u060c \u0648 \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f.  \u0628\u0627 \u0627\u06cc\u0646 \u0645\u0647\u0627\u0631\u062a \u0647\u0627\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0631\u0627\u0628\u0637 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0628\u0633\u0627\u0632\u06cc\u062f.  \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u0635\u0648\u0631\u062a \u0622\u0646\u0644\u0627\u06cc\u0646 \u062f\u0631\u0628\u0627\u0631\u0647 \u0622\u0646 \u062a\u062d\u0642\u06cc\u0642 \u06a9\u0646\u06cc\u062f.  \u0627\u06af\u0631 \u0645\u0627\u06cc\u0644 \u0628\u0648\u062f\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0645\u0646 \u062f\u0631 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0627\u0634\u06cc\u062f \u062a\u0648\u06cc\u06cc\u062a\u0631.  \u06a9\u062f \u0646\u0648\u06cc\u0633\u06cc \u0645\u0628\u0627\u0631\u06a9!  <\/p>\n<p>\u0645\u0645\u0646\u0648\u0646 \u06a9\u0647 \u062e\u0648\u0627\u0646\u062f\u06cc\u062f \ud83d\ude42<\/p>\n<div data-article-id=\"1890041\" id=\"article-body\">\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/a-beginners-guide-to-component-design-in-react-521g\/#%D9%85%D8%B9%D8%B1%D9%81%DB%8C\" >\u0645\u0639\u0631\u0641\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/a-beginners-guide-to-component-design-in-react-521g\/#%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA_%DA%86%DB%8C%D8%B3%D8%AA%D8%9F\" >\u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0686\u06cc\u0633\u062a\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/a-beginners-guide-to-component-design-in-react-521g\/#%D8%A7%D9%86%D9%88%D8%A7%D8%B9_%D9%82%D8%B7%D8%B9%D8%A7%D8%AA\" >\u0627\u0646\u0648\u0627\u0639 \u0642\u0637\u0639\u0627\u062a<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/a-beginners-guide-to-component-design-in-react-521g\/#%D8%A7%D8%AC%D8%B2%D8%A7%DB%8C_%D8%B9%D9%85%D9%84%DA%A9%D8%B1%D8%AF%DB%8C\" >\u0627\u062c\u0632\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/a-beginners-guide-to-component-design-in-react-521g\/#%D8%A7%D8%AC%D8%B2%D8%A7%DB%8C_%DA%A9%D9%84%D8%A7%D8%B3\" >\u0627\u062c\u0632\u0627\u06cc \u06a9\u0644\u0627\u0633<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/a-beginners-guide-to-component-design-in-react-521g\/#%D8%B3%D8%A7%D8%AE%D8%AA%D9%86_%D8%A7%D9%88%D9%84%DB%8C%D9%86_%D9%85%D8%A4%D9%84%D9%81%D9%87\" >\u0633\u0627\u062e\u062a\u0646 \u0627\u0648\u0644\u06cc\u0646 \u0645\u0624\u0644\u0641\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/a-beginners-guide-to-component-design-in-react-521g\/#%D8%A7%D8%AC%D8%B2%D8%A7%D8%A1_%D9%88_%D9%88%D8%B6%D8%B9%DB%8C%D8%AA\" >\u0627\u062c\u0632\u0627\u0621 \u0648 \u0648\u0636\u0639\u06cc\u062a<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/a-beginners-guide-to-component-design-in-react-521g\/#%D9%84%D9%88%D8%A7%D8%B2%D9%85_%D8%AC%D8%A7%D9%86%D8%A8%DB%8C\" >\u0644\u0648\u0627\u0632\u0645 \u062c\u0627\u0646\u0628\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/a-beginners-guide-to-component-design-in-react-521g\/#%D8%AD%D8%A7%D9%84%D8%AA\" >\u062d\u0627\u0644\u062a<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/a-beginners-guide-to-component-design-in-react-521g\/#%D8%A2%D9%87%D9%86%DA%AF%D8%B3%D8%A7%D8%B2%DB%8C_%D8%A7%D8%AC%D8%B2%D8%A7%D8%A1\" >\u0622\u0647\u0646\u06af\u0633\u0627\u0632\u06cc \u0627\u062c\u0632\u0627\u0621<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/nabfollower.com\/blog\/a-beginners-guide-to-component-design-in-react-521g\/#%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86_%D8%B1%D9%88%D8%B4_%D9%87%D8%A7_%D8%AF%D8%B1_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA\" >\u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634 \u0647\u0627 \u062f\u0631 \u0637\u0631\u0627\u062d\u06cc \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/nabfollower.com\/blog\/a-beginners-guide-to-component-design-in-react-521g\/#%D9%86%D8%AA%DB%8C%D8%AC%D9%87\" >\u0646\u062a\u06cc\u062c\u0647<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B9%D8%B1%D9%81%DB%8C\"><\/span>\n<p>  \u0645\u0639\u0631\u0641\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><strong>\u0648\u0627\u06a9\u0646\u0634 \u0646\u0634\u0627\u0646 \u062f\u0647\u06cc\u062f<\/strong> \u06cc\u06a9 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0645\u062d\u0628\u0648\u0628 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0631\u0627\u0628\u0637 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0647 \u0648\u06cc\u0698\u0647 \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u062a\u06a9 \u0635\u0641\u062d\u0647 \u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.  \u06cc\u06a9\u06cc \u0627\u0632 \u0645\u0641\u0627\u0647\u06cc\u0645 \u06a9\u0644\u06cc\u062f\u06cc \u062f\u0631 React \u0637\u0631\u0627\u062d\u06cc \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0627\u0633\u062a.  \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627 \u0628\u0644\u0648\u06a9 \u0647\u0627\u06cc \u0633\u0627\u0632\u0646\u062f\u0647 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 React \u0647\u0633\u062a\u0646\u062f.  \u062f\u0631\u06a9 \u0686\u06af\u0648\u0646\u06af\u06cc \u0627\u06cc\u062c\u0627\u062f \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u0648\u062b\u0631 \u0627\u0632 \u0622\u0646\u0647\u0627 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u06a9\u0627\u0631\u0622\u0645\u062f \u0648 \u0642\u0627\u0628\u0644 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a.  \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0637\u0631\u0627\u062d\u06cc \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u062f\u0631 React \u0631\u0627 \u0628\u0647 \u0632\u0628\u0627\u0646 \u0633\u0627\u062f\u0647 \u0648 \u0628\u0627 \u0645\u062b\u0627\u0644\u200c\u0647\u0627\u06cc \u0641\u0631\u0627\u0648\u0627\u0646 \u0628\u0631\u0627\u06cc \u062f\u0631\u06a9 \u0622\u0633\u0627\u0646 \u0622\u0646 \u062a\u0648\u0636\u06cc\u062d \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA_%DA%86%DB%8C%D8%B3%D8%AA%D8%9F\"><\/span>\n<p>  \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0686\u06cc\u0633\u062a\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0622 <strong>\u062c\u0632\u0621<\/strong> \u062f\u0631 React \u0645\u0627\u0646\u0646\u062f \u06cc\u06a9 \u06a9\u062f \u06a9\u0648\u0686\u06a9 \u0648 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0627\u0633\u062a \u06a9\u0647 \u0628\u062e\u0634\u06cc \u0627\u0632 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f.  \u0628\u0647 \u0627\u062c\u0632\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u0628\u0644\u0648\u06a9 \u0647\u0627\u06cc LEGO \u0641\u06a9\u0631 \u06a9\u0646\u06cc\u062f.  \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0628\u0644\u0648\u06a9 \u0647\u0627\u06cc \u0644\u06af\u0648 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0633\u0627\u062e\u062a\u0627\u0631\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627\u06cc React \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0628\u062e\u0634 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p><strong>\u0645\u062b\u0627\u0644 \u0631\u0648\u0632\u0645\u0631\u0647<\/strong>:<\/p>\n<p>\u06cc\u06a9 \u0645\u0627\u0634\u06cc\u0646 \u0631\u0627 \u062a\u0635\u0648\u0631 \u06a9\u0646\u06cc\u062f.  \u062e\u0648\u062f\u0631\u0648 \u0627\u0632 \u0642\u0637\u0639\u0627\u062a \u0628\u0633\u06cc\u0627\u0631\u06cc \u0645\u0627\u0646\u0646\u062f \u0645\u0648\u062a\u0648\u0631\u060c \u0686\u0631\u062e \u0647\u0627 \u0648 \u0635\u0646\u062f\u0644\u06cc \u0647\u0627 \u062a\u0634\u06a9\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a.  \u0647\u0631 \u06cc\u06a9 \u0627\u0632 \u0627\u06cc\u0646 \u0642\u0633\u0645\u062a \u0647\u0627 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u06cc\u06a9 \u062c\u0632\u0621 \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a.  \u0628\u0647 \u0647\u0645\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628\u060c \u06cc\u06a9 \u0635\u0641\u062d\u0647 \u0648\u0628 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u0627\u062c\u0632\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0645\u0627\u0646\u0646\u062f \u0647\u062f\u0631\u060c \u067e\u0627\u0648\u0631\u0642\u06cc \u0648 \u0646\u0627\u062d\u06cc\u0647 \u0645\u062d\u062a\u0648\u0627 \u062a\u0634\u06a9\u06cc\u0644 \u0634\u0648\u062f.<\/p>\n<p>\u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 React\u060c \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u062f\u0631 \u062f\u0627\u062e\u0644 \u0627\u062c\u0632\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f \u062a\u0627 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u062f.  \u0647\u0631 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0645\u0633\u0626\u0648\u0644 \u0627\u0631\u0627\u0626\u0647 \u0628\u062e\u0634 \u06a9\u0648\u0686\u06a9\u06cc \u0627\u0632 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0627\u0633\u062a.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D9%86%D9%88%D8%A7%D8%B9_%D9%82%D8%B7%D8%B9%D8%A7%D8%AA\"><\/span>\n<p>  \u0627\u0646\u0648\u0627\u0639 \u0642\u0637\u0639\u0627\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A7%D8%AC%D8%B2%D8%A7%DB%8C_%D8%B9%D9%85%D9%84%DA%A9%D8%B1%D8%AF%DB%8C\"><\/span>\n<p>  \u0627\u062c\u0632\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0622 <strong>\u062c\u0632\u0621 \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc<\/strong> \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0633\u0627\u062f\u0647 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u0633\u062a \u06a9\u0647 props \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0645\u06cc \u06af\u06cc\u0631\u062f \u0648 \u06cc\u06a9 \u0639\u0646\u0635\u0631 React \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f.  \u0646\u0648\u0634\u062a\u0646 \u0648 \u062f\u0631\u06a9 \u0627\u06cc\u0646 \u0627\u062c\u0632\u0627 \u0622\u0633\u0627\u0646 \u0627\u0633\u062a.<\/p>\n<p><strong>\u0645\u062b\u0627\u0644<\/strong>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">function<\/span> <span class=\"nf\">Welcome<\/span><span class=\"p\">(<\/span><span class=\"nx\">props<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"o\">&lt;<\/span><span class=\"nx\">h1<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">Hello<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span><span class=\"nx\">props<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span><span class=\"p\">}<\/span><span class=\"o\">!&lt;<\/span><span class=\"sr\">\/h1&gt;<\/span><span class=\"err\">;\n<\/span><span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c Welcome \u06cc\u06a9 \u0645\u0624\u0644\u0641\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0627\u0633\u062a \u06a9\u0647 \u067e\u0631\u0648\u067e\u0648\u0632\u0627\u0644 \u0647\u0627 \u0631\u0627 \u0645\u06cc \u067e\u0630\u06cc\u0631\u062f \u0648 \u067e\u06cc\u0627\u0645 \u062a\u0628\u0631\u06cc\u06a9 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f.<\/p>\n<p><strong>\u0632\u0645\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u062c\u0632\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc<\/strong>:<\/p>\n<ul>\n<li>\n<p>\u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0628\u0647 \u06cc\u06a9 \u062c\u0632\u0621 \u0633\u0627\u062f\u0647 \u0648 \u0628\u062f\u0648\u0646 \u062d\u0627\u0644\u062a \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f<\/p>\n<\/li>\n<li>\n<p>\u0628\u0631\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0647\u062a\u0631 \u062f\u0631 \u0627\u06a9\u062b\u0631 \u0645\u0648\u0627\u0631\u062f<\/p>\n<\/li>\n<li>\n<p>\u0628\u0627 React Hooks\u060c \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u062d\u0627\u0644\u062a \u0648 \u0639\u0648\u0627\u0631\u0636 \u062c\u0627\u0646\u0628\u06cc \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u0646\u062f<\/p>\n<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A7%D8%AC%D8%B2%D8%A7%DB%8C_%DA%A9%D9%84%D8%A7%D8%B3\"><\/span>\n<p>  \u0627\u062c\u0632\u0627\u06cc \u06a9\u0644\u0627\u0633<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0622 <strong>\u062c\u0632\u0621 \u06a9\u0644\u0627\u0633<\/strong> \u062c\u0632\u0621 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062a\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062d\u0627\u0644\u062a \u062e\u0648\u062f \u0631\u0627 \u0646\u06af\u0647 \u062f\u0627\u0631\u062f \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u062f.  \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u062d\u0648 \u06a9\u0644\u0627\u0633 ES6 \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p><strong>\u0645\u062b\u0627\u0644:<\/strong><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">class<\/span> <span class=\"nc\">Welcome<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">React<\/span><span class=\"p\">.<\/span><span class=\"nx\">Component<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nf\">render<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">return<\/span> <span class=\"o\">&lt;<\/span><span class=\"nx\">h1<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">Hello<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span><span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">props<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span><span class=\"p\">}<\/span><span class=\"o\">!&lt;<\/span><span class=\"sr\">\/h1&gt;<\/span><span class=\"err\">;\n<\/span>  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c Welcome \u06cc\u06a9 \u062c\u0632\u0621 \u06a9\u0644\u0627\u0633 \u0627\u0633\u062a \u06a9\u0647 \u0647\u0645\u0686\u0646\u06cc\u0646 props \u0631\u0627 \u0645\u06cc \u067e\u0630\u06cc\u0631\u062f \u0648 \u06cc\u06a9 \u067e\u06cc\u0627\u0645 \u062a\u0628\u0631\u06cc\u06a9 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f.<\/p>\n<p><strong>\u0632\u0645\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u062c\u0632\u0627\u06cc \u06a9\u0644\u0627\u0633:<\/strong><\/p>\n<ul>\n<li>\u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0631\u0648\u0634 \u0647\u0627\u06cc \u062d\u0627\u0644\u062a \u06cc\u0627 \u0686\u0631\u062e\u0647 \u062d\u06cc\u0627\u062a \u062f\u0627\u0631\u06cc\u062f<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B3%D8%A7%D8%AE%D8%AA%D9%86_%D8%A7%D9%88%D9%84%DB%8C%D9%86_%D9%85%D8%A4%D9%84%D9%81%D9%87\"><\/span>\n<p>  \u0633\u0627\u062e\u062a\u0646 \u0627\u0648\u0644\u06cc\u0646 \u0645\u0624\u0644\u0641\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0633\u0627\u062f\u0647 \u0628\u0633\u0627\u0632\u06cc\u0645 \u0648 \u0622\u0646 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 React \u0631\u0646\u062f\u0631 \u06a9\u0646\u06cc\u0645.<\/p>\n<p><strong>\u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06af\u0627\u0645 \u0628\u0647 \u06af\u0627\u0645:<\/strong><\/p>\n<ol>\n<li>\n<p><strong>\u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u062c\u062f\u06cc\u062f \u0628\u0647 \u0646\u0627\u0645 App.js \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/strong><\/p>\n<pre class=\"highlight javascript\"><code><span class=\"k\">import<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">App<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;<\/span>\n      <span class=\"o\">&lt;<\/span><span class=\"nx\">h1<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">My<\/span> <span class=\"nx\">First<\/span> <span class=\"nx\">Component<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/h1<\/span><span class=\"err\">&gt;\n<\/span>      <span class=\"o\">&lt;<\/span><span class=\"nx\">Welcome<\/span> <span class=\"nx\">name<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">John<\/span><span class=\"dl\">\"<\/span> <span class=\"o\">\/&gt;<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"sr\">\/div<\/span><span class=\"err\">&gt;\n<\/span>  <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">Welcome<\/span><span class=\"p\">(<\/span><span class=\"nx\">props<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"o\">&lt;<\/span><span class=\"nx\">h1<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">Hello<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span><span class=\"nx\">props<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span><span class=\"p\">}<\/span><span class=\"o\">!&lt;<\/span><span class=\"sr\">\/h1&gt;<\/span><span class=\"err\">;\n<\/span><span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">App<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>\u0645\u0648\u0644\u0641\u0647 App \u0631\u0627 \u062f\u0631 index.js \u0631\u0646\u062f\u0631 \u06a9\u0646\u06cc\u062f:<\/strong><\/p>\n<pre class=\"highlight javascript\"><code><span class=\"k\">import<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">ReactDOM<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react-dom<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">App<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/App<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"nx\">ReactDOM<\/span><span class=\"p\">.<\/span><span class=\"nf\">render<\/span><span class=\"p\">(<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">App<\/span> <span class=\"o\">\/&gt;<\/span><span class=\"p\">,<\/span> <span class=\"nb\">document<\/span><span class=\"p\">.<\/span><span class=\"nf\">getElementById<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">root<\/span><span class=\"dl\">'<\/span><span class=\"p\">));<\/span>\n<\/code><\/pre>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u0645\u0627 \u06cc\u06a9 \u0645\u0624\u0644\u0641\u0647 \u062e\u0648\u0634\u200c\u0622\u0645\u062f\u06af\u0648\u06cc\u06cc \u0633\u0627\u062f\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u0645 \u06a9\u0647 \u067e\u06cc\u0627\u0645 \u062a\u0628\u0631\u06cc\u06a9 \u0631\u0627 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u0627\u0632 \u0622\u0646 \u062f\u0631 \u062f\u0627\u062e\u0644 \u0645\u0624\u0644\u0641\u0647 App \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u06cc\u0645.<\/p>\n<\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%AC%D8%B2%D8%A7%D8%A1_%D9%88_%D9%88%D8%B6%D8%B9%DB%8C%D8%AA\"><\/span>\n<p>  \u0627\u062c\u0632\u0627\u0621 \u0648 \u0648\u0636\u0639\u06cc\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"%D9%84%D9%88%D8%A7%D8%B2%D9%85_%D8%AC%D8%A7%D9%86%D8%A8%DB%8C\"><\/span>\n<p>  \u0644\u0648\u0627\u0632\u0645 \u062c\u0627\u0646\u0628\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>\u0644\u0648\u0627\u0632\u0645 \u062c\u0627\u0646\u0628\u06cc<\/strong> \u0648\u0631\u0648\u062f\u06cc \u0647\u0627\u06cc \u06cc\u06a9 \u062c\u0632\u0621 React \u0647\u0633\u062a\u0646\u062f.  \u0622\u0646\u0647\u0627 \u0628\u0647 \u0647\u0645\u0627\u0646 \u0631\u0648\u0634\u06cc \u06a9\u0647 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0647\u0627 \u0628\u0647 \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u0646\u062f \u0628\u0647 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u0646\u062f.<\/p>\n<p><strong>\u0646\u0645\u0648\u0646\u0647 \u0627\u06cc \u0627\u0632 \u0642\u0637\u0639\u0627\u062a \u067e\u0627\u0633:<\/strong><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">function<\/span> <span class=\"nf\">Welcome<\/span><span class=\"p\">(<\/span><span class=\"nx\">props<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"o\">&lt;<\/span><span class=\"nx\">h1<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">Hello<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span><span class=\"nx\">props<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span><span class=\"p\">}<\/span><span class=\"o\">!&lt;<\/span><span class=\"sr\">\/h1&gt;<\/span><span class=\"err\">;\n<\/span><span class=\"p\">}<\/span>\n\n<span class=\"o\">&lt;<\/span><span class=\"nx\">Welcome<\/span> <span class=\"nx\">name<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Alice<\/span><span class=\"dl\">\"<\/span> <span class=\"o\">\/&gt;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c name \u06cc\u06a9 \u067e\u0627\u06cc\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a Welcome \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AD%D8%A7%D9%84%D8%AA\"><\/span>\n<p>  \u062d\u0627\u0644\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>\u062d\u0627\u0644\u062a<\/strong> \u0631\u0648\u0634\u06cc \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u0637\u0648\u0644 \u0632\u0645\u0627\u0646 \u062f\u0631 \u06cc\u06a9 \u062c\u0632\u0621 \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u0646\u062f.  State \u062f\u0631 \u062f\u0627\u062e\u0644 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc \u0634\u0648\u062f \u0648 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 useState Hook \u062f\u0631 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u06a9\u0631\u062f.<\/p>\n<p><strong>\u0645\u062b\u0627\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062d\u0627\u0644\u062a:<\/strong><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"k\">import<\/span> <span class=\"nx\">React<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">useState<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">Counter<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">count<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setCount<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useState<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;<\/span>\n      <span class=\"o\">&lt;<\/span><span class=\"nx\">p<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">You<\/span> <span class=\"nx\">clicked<\/span> <span class=\"p\">{<\/span><span class=\"nx\">count<\/span><span class=\"p\">}<\/span> <span class=\"nx\">times<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/p<\/span><span class=\"err\">&gt;\n<\/span>      <span class=\"o\">&lt;<\/span><span class=\"nx\">button<\/span> <span class=\"nx\">onClick<\/span><span class=\"o\">=<\/span><span class=\"p\">{()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nf\">setCount<\/span><span class=\"p\">(<\/span><span class=\"nx\">count<\/span> <span class=\"o\">+<\/span> <span class=\"mi\">1<\/span><span class=\"p\">)}<\/span><span class=\"o\">&gt;<\/span>\n        <span class=\"nx\">Click<\/span> <span class=\"nx\">me<\/span>\n      <span class=\"o\">&lt;<\/span><span class=\"sr\">\/button<\/span><span class=\"err\">&gt;\n<\/span>    <span class=\"o\">&lt;<\/span><span class=\"sr\">\/div<\/span><span class=\"err\">&gt;\n<\/span>  <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c Counter \u06cc\u06a9 \u062c\u0632\u0621 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0627\u0632 useState Hook \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a \u0634\u0645\u0627\u0631\u0634 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A2%D9%87%D9%86%DA%AF%D8%B3%D8%A7%D8%B2%DB%8C_%D8%A7%D8%AC%D8%B2%D8%A7%D8%A1\"><\/span>\n<p>  \u0622\u0647\u0646\u06af\u0633\u0627\u0632\u06cc \u0627\u062c\u0632\u0627\u0621<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a UI \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062a\u0631 \u062a\u0631\u06a9\u06cc\u0628 \u06a9\u0631\u062f.  \u0628\u0647 \u0627\u06cc\u0646 \u0645\u06cc\u06af\u0646 \u06a9\u0627\u0645\u067e\u0648\u0632\u06cc\u062a \u0627\u062c\u0632\u0627.<\/p>\n<p><strong>\u0645\u062b\u0627\u0644:<\/strong><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">function<\/span> <span class=\"nf\">App<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;<\/span>\n      <span class=\"o\">&lt;<\/span><span class=\"nx\">Header<\/span> <span class=\"o\">\/&gt;<\/span>\n      <span class=\"o\">&lt;<\/span><span class=\"nx\">Content<\/span> <span class=\"o\">\/&gt;<\/span>\n      <span class=\"o\">&lt;<\/span><span class=\"nx\">Footer<\/span> <span class=\"o\">\/&gt;<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"sr\">\/div<\/span><span class=\"err\">&gt;\n<\/span>  <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">Header<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"o\">&lt;<\/span><span class=\"nx\">h1<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">This<\/span> <span class=\"nx\">is<\/span> <span class=\"nx\">the<\/span> <span class=\"nx\">header<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/h1&gt;<\/span><span class=\"err\">;\n<\/span><span class=\"p\">}<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">Content<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"o\">&lt;<\/span><span class=\"nx\">p<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">This<\/span> <span class=\"nx\">is<\/span> <span class=\"nx\">the<\/span> <span class=\"nx\">content<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/p&gt;<\/span><span class=\"err\">;\n<\/span><span class=\"p\">}<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">Footer<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"o\">&lt;<\/span><span class=\"nx\">p<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">This<\/span> <span class=\"nx\">is<\/span> <span class=\"nx\">the<\/span> <span class=\"nx\">footer<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/p&gt;<\/span><span class=\"err\">;\n<\/span><span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c App \u0627\u0632 \u0627\u062c\u0632\u0627\u06cc Header\u060c Content \u0648 Footer \u062a\u0634\u06a9\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86_%D8%B1%D9%88%D8%B4_%D9%87%D8%A7_%D8%AF%D8%B1_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA\"><\/span>\n<p>  \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634 \u0647\u0627 \u062f\u0631 \u0637\u0631\u0627\u062d\u06cc \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>\n<p><strong>\u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627 \u0631\u0627 \u06a9\u0648\u0686\u06a9 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u062f<\/strong>: \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0627\u062c\u0632\u0627\u06cc \u06a9\u0648\u0686\u06a9 \u0648 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0646\u06cc\u062f.  \u0627\u06cc\u0646 \u0627\u0645\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648 \u062f\u0631\u06a9 \u06a9\u062f \u0634\u0645\u0627 \u0631\u0627 \u0622\u0633\u0627\u0646 \u062a\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p><strong>\u0645\u062b\u0627\u0644:<\/strong> \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0633\u0627\u0646\u0647 \u0627\u062c\u062a\u0645\u0627\u0639\u06cc\u060c \u0628\u0647 \u062c\u0627\u06cc \u062f\u0627\u0634\u062a\u0646 \u06cc\u06a9 \u062c\u0632\u0621 \u0628\u0632\u0631\u06af \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0644 \u0635\u0641\u062d\u0647 \u0646\u0645\u0627\u06cc\u0647 \u06a9\u0627\u0631\u0628\u0631\u060c \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0627\u062c\u0632\u0627\u06cc \u06a9\u0648\u0686\u06a9\u062a\u0631 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0646\u06cc\u062f. <code>ProfileHeader<\/code>\u060c <code>ProfilePicture<\/code>\u060c <code>ProfileBio<\/code>\u060c \u0648 <code>ProfilePosts<\/code>.  \u0627\u06cc\u0646 \u0627\u0645\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u0633\u062a\u0642\u0644 \u0647\u0631 \u0645\u0624\u0644\u0641\u0647 \u0631\u0627 \u0622\u0633\u0627\u0646\u200c\u062a\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f<\/p>\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"c1\">\/\/ ProfileHeader.js<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">ProfileHeader<\/span><span class=\"p\">({<\/span> <span class=\"nx\">name<\/span> <span class=\"p\">})<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"o\">&lt;<\/span><span class=\"nx\">h1<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">{<\/span><span class=\"nx\">name<\/span><span class=\"p\">}<\/span><span class=\"dl\">'<\/span><span class=\"s1\">s Profile;\n}\n\nexport default ProfileHeader;\n\n\/\/ ProfilePicture.js\nimport React from <\/span><span class=\"dl\">'<\/span><span class=\"nx\">react<\/span><span class=\"dl\">'<\/span><span class=\"s1\">;\n\nfunction ProfilePicture({ imageUrl }) {\n  return ;\n}\n\nexport default ProfilePicture;\n\n\/\/ ProfileBio.js\nimport React from <\/span><span class=\"dl\">'<\/span><span class=\"nx\">react<\/span><span class=\"dl\">'<\/span><span class=\"s1\">;\n\nfunction ProfileBio({ bio }) {\n  return <p>{bio}<\/p>;\n}\n\nexport default ProfileBio;\n\n\/\/ ProfilePosts.js\nimport React from <\/span><span class=\"dl\">'<\/span><span class=\"nx\">react<\/span><span class=\"dl\">'<\/span><span class=\"s1\">;\n\nfunction ProfilePosts({ posts }) {\n  return (\n    <ul>\n      {posts.map(post =&gt; (\n        <li key=\"{post.id}\">{post.content}<\/li>\n      ))}\n    <\/ul>\n  );\n}\n\nexport default ProfilePosts;\n\n\/\/ UserProfile.js\nimport React from <\/span><span class=\"dl\">'<\/span><span class=\"nx\">react<\/span><span class=\"dl\">'<\/span><span class=\"s1\">;\nimport ProfileHeader from <\/span><span class=\"dl\">'<\/span><span class=\"p\">.<\/span><span class=\"o\">\/<\/span><span class=\"nx\">ProfileHeader<\/span><span class=\"dl\">'<\/span><span class=\"s1\">;\nimport ProfilePicture from <\/span><span class=\"dl\">'<\/span><span class=\"p\">.<\/span><span class=\"o\">\/<\/span><span class=\"nx\">ProfilePicture<\/span><span class=\"dl\">'<\/span><span class=\"s1\">;\nimport ProfileBio from <\/span><span class=\"dl\">'<\/span><span class=\"p\">.<\/span><span class=\"o\">\/<\/span><span class=\"nx\">ProfileBio<\/span><span class=\"dl\">'<\/span><span class=\"s1\">;\nimport ProfilePosts from <\/span><span class=\"dl\">'<\/span><span class=\"p\">.<\/span><span class=\"o\">\/<\/span><span class=\"nx\">ProfilePosts<\/span><span class=\"dl\">'<\/span><span class=\"s1\">;\n\nfunction UserProfile({ user }) {\n  return (\n    \n  );\n}\n\nexport default UserProfile;\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\n<p><strong>\u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u0648\u0627\u062d\u062f<\/strong>: \u0647\u0631 \u062c\u0632\u0621 \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u062e\u0648\u0628\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u062f.  \u0627\u06cc\u0646 \u0627\u0645\u0631 \u0628\u0627\u0639\u062b \u0645\u06cc \u0634\u0648\u062f \u062a\u0627 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627 \u062a\u0633\u062a \u0648 \u0627\u0634\u06a9\u0627\u0644 \u0632\u062f\u0627\u06cc\u06cc \u0622\u0646\u0647\u0627 \u0631\u0627 \u0622\u0633\u0627\u0646 \u062a\u0631 \u06a9\u0646\u062f.<\/p>\n<p><strong>\u0645\u062b\u0627\u0644:<\/strong> \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062a\u062c\u0627\u0631\u062a \u0627\u0644\u06a9\u062a\u0631\u0648\u0646\u06cc\u06a9\u06cc\u060c \u0627\u0644\u0641 <code>ProductCard<\/code> \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0641\u0642\u0637 \u0628\u0627\u06cc\u062f \u0645\u0633\u0626\u0648\u0644 \u0646\u0645\u0627\u06cc\u0634 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u062d\u0635\u0648\u0644 \u0628\u0627\u0634\u062f.  \u0647\u0631 \u06af\u0648\u0646\u0647 \u0645\u0646\u0637\u0642 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0627\u0641\u0632\u0648\u062f\u0646 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0633\u0628\u062f \u062e\u0631\u06cc\u062f \u0628\u0627\u06cc\u062f \u062a\u0648\u0633\u0637 \u06cc\u06a9 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0634\u0648\u062f <code>AddToCartButton<\/code> \u062c\u0632\u0621.  \u0627\u06cc\u0646 \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0647\u0631 \u062c\u0632\u0621 \u062f\u0627\u0631\u0627\u06cc \u06cc\u06a9 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u0648\u0627\u062d\u062f \u0627\u0633\u062a.<\/p>\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"c1\">\/\/ ProductCard.js<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">ProductCard<\/span><span class=\"p\">({<\/span> <span class=\"nx\">product<\/span> <span class=\"p\">})<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;<\/span>\n      <span class=\"o\">&lt;<\/span><span class=\"nx\">h2<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">{<\/span><span class=\"nx\">product<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span><span class=\"p\">}<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/h2<\/span><span class=\"err\">&gt;\n<\/span>      <span class=\"o\">&lt;<\/span><span class=\"nx\">p<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">{<\/span><span class=\"nx\">product<\/span><span class=\"p\">.<\/span><span class=\"nx\">description<\/span><span class=\"p\">}<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/p<\/span><span class=\"err\">&gt;\n<\/span>      <span class=\"o\">&lt;<\/span><span class=\"nx\">p<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">$<\/span><span class=\"p\">{<\/span><span class=\"nx\">product<\/span><span class=\"p\">.<\/span><span class=\"nx\">price<\/span><span class=\"p\">}<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/p<\/span><span class=\"err\">&gt;\n<\/span>    <span class=\"o\">&lt;<\/span><span class=\"sr\">\/div<\/span><span class=\"err\">&gt;\n<\/span>  <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">ProductCard<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ AddToCartButton.js<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">AddToCartButton<\/span><span class=\"p\">({<\/span> <span class=\"nx\">onAddToCart<\/span> <span class=\"p\">})<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"o\">&lt;<\/span><span class=\"nx\">button<\/span> <span class=\"nx\">onClick<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">onAddToCart<\/span><span class=\"p\">}<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">Add<\/span> <span class=\"nx\">to<\/span> <span class=\"nx\">Cart<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/button&gt;<\/span><span class=\"err\">;\n<\/span><span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">AddToCartButton<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ ProductPage.js<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">ProductCard<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/ProductCard<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">AddToCartButton<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/AddToCartButton<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">ProductPage<\/span><span class=\"p\">({<\/span> <span class=\"nx\">product<\/span><span class=\"p\">,<\/span> <span class=\"nx\">onAddToCart<\/span> <span class=\"p\">})<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;<\/span>\n      <span class=\"o\">&lt;<\/span><span class=\"nx\">ProductCard<\/span> <span class=\"nx\">product<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">product<\/span><span class=\"p\">}<\/span> <span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>      <span class=\"o\">&lt;<\/span><span class=\"nx\">AddToCartButton<\/span> <span class=\"nx\">onAddToCart<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">onAddToCart<\/span><span class=\"p\">}<\/span> <span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>    <span class=\"o\">&lt;<\/span><span class=\"sr\">\/div<\/span><span class=\"err\">&gt;\n<\/span>  <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">ProductPage<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\n<p><strong>\u0627\u0632 Props \u0648 \u062d\u0627\u0644\u062a \u0639\u0627\u0642\u0644\u0627\u0646\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/strong>: \u0627\u0632 props \u0628\u0631\u0627\u06cc \u0627\u0646\u062a\u0642\u0627\u0644 \u062f\u0627\u062f\u0647 \u0648 \u062d\u0627\u0644\u062a \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc \u06a9\u0646\u0646\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.  \u0627\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062d\u0627\u0644\u062a \u062f\u0631 \u0645\u06a9\u0627\u0646 \u0647\u0627\u06cc \u0632\u06cc\u0627\u062f \u062e\u0648\u062f\u062f\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f.  \u0622\u0646 \u0631\u0627 \u062f\u0631 \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0646\u0637\u0642\u06cc \u0627\u0633\u062a \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u062f<\/p>\n<p><strong>\u0645\u062b\u0627\u0644:<\/strong> \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0622\u0628 \u0648 \u0647\u0648\u0627\u060c \u0627\u0632 props \u0628\u0631\u0627\u06cc \u0627\u0631\u0633\u0627\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0622\u0628 \u0648 \u0647\u0648\u0627\u06cc \u0641\u0639\u0644\u06cc \u0628\u0647 a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>WeatherDisplay<\/code> \u062c\u0632\u0621.  \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062d\u0627\u0644\u062a \u062f\u0631 a <code>WeatherFetcher<\/code> \u062c\u0632\u0621 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0627\u06a9\u0634\u06cc \u0648 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0622\u0628 \u0648 \u0647\u0648\u0627.  \u0627\u06cc\u0646 \u062c\u0631\u06cc\u0627\u0646 \u062f\u0627\u062f\u0647 \u0631\u0627 \u0634\u0641\u0627\u0641 \u0648 \u0642\u0627\u0628\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0646\u06af\u0647 \u0645\u06cc \u062f\u0627\u0631\u062f.<\/p>\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"c1\">\/\/ WeatherDisplay.js<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">WeatherDisplay<\/span><span class=\"p\">({<\/span> <span class=\"nx\">weather<\/span> <span class=\"p\">})<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;<\/span>\n      <span class=\"o\">&lt;<\/span><span class=\"nx\">h2<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">Current<\/span> <span class=\"nx\">Weather<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/h2<\/span><span class=\"err\">&gt;\n<\/span>      <span class=\"o\">&lt;<\/span><span class=\"nx\">p<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">Temperature<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span><span class=\"nx\">weather<\/span><span class=\"p\">.<\/span><span class=\"nx\">temperature<\/span><span class=\"p\">}<\/span><span class=\"err\">\u00b0<\/span><span class=\"nx\">C<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/p<\/span><span class=\"err\">&gt;\n<\/span>      <span class=\"o\">&lt;<\/span><span class=\"nx\">p<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">Condition<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span><span class=\"nx\">weather<\/span><span class=\"p\">.<\/span><span class=\"nx\">condition<\/span><span class=\"p\">}<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/p<\/span><span class=\"err\">&gt;\n<\/span>    <span class=\"o\">&lt;<\/span><span class=\"sr\">\/div<\/span><span class=\"err\">&gt;\n<\/span>  <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">WeatherDisplay<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ WeatherFetcher.js<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">useState<\/span><span class=\"p\">,<\/span> <span class=\"nx\">useEffect<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">WeatherDisplay<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/WeatherDisplay<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">WeatherFetcher<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">weather<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setWeather<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useState<\/span><span class=\"p\">(<\/span><span class=\"kc\">null<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"nf\">useEffect<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nf\">fetch<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">https:\/\/api.weatherapi.com\/v1\/current.json?key=YOUR_API_KEY&amp;q=London<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span>\n      <span class=\"p\">.<\/span><span class=\"nf\">then<\/span><span class=\"p\">(<\/span><span class=\"nx\">response<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nf\">json<\/span><span class=\"p\">())<\/span>\n      <span class=\"p\">.<\/span><span class=\"nf\">then<\/span><span class=\"p\">(<\/span><span class=\"nx\">data<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nf\">setWeather<\/span><span class=\"p\">(<\/span><span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">current<\/span><span class=\"p\">));<\/span>\n  <span class=\"p\">},<\/span> <span class=\"p\">[]);<\/span>\n\n  <span class=\"k\">return<\/span> <span class=\"nx\">weather<\/span> <span class=\"p\">?<\/span> <span class=\"o\">&lt;<\/span><span class=\"nx\">WeatherDisplay<\/span> <span class=\"nx\">weather<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">weather<\/span><span class=\"p\">}<\/span> <span class=\"sr\">\/&gt; : <p>Loading...<\/p><\/span><span class=\"nx\">p<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">WeatherFetcher<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\n<p><strong>\u062a\u0631\u06a9\u06cc\u0628 \u0628\u06cc\u0634 \u0627\u0632 \u0627\u0631\u062b<\/strong>: \u0628\u0647 \u062c\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0648\u0631\u0627\u062b\u062a\u060c \u0627\u062c\u0632\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062a\u0631\u06a9\u06cc\u0628 \u06a9\u0646\u06cc\u062f.  \u0627\u06cc\u0646 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u062f \u0634\u0645\u0627 \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631\u062a\u0631 \u0628\u0627\u0634\u062f \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0622\u0646 \u0622\u0633\u0627\u0646\u200c\u062a\u0631 \u0634\u0648\u062f.<\/p>\n<p><strong>\u0645\u062b\u0627\u0644:<\/strong> \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u0627\u0634\u0628\u0648\u0631\u062f\u060c \u0628\u0647 \u062c\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u067e\u0627\u06cc\u0647 <code>Widget<\/code> \u06a9\u0644\u0627\u0633 \u0648 \u0627\u0631\u062b \u0628\u0631\u062f\u0646 \u0627\u0632 \u0622\u0646\u060c \u0627\u062c\u0632\u0627\u06cc \u06a9\u0648\u0686\u06a9 \u0648 \u0642\u0627\u0628\u0644 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0645\u0627\u0646\u0646\u062f <code>ChartWidget<\/code>\u060c <code>TableWidget<\/code>\u060c \u0648 <code>SummaryWidget<\/code>.  \u0627\u06cc\u0646 \u0627\u062c\u0632\u0627 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u062a\u0631\u06a9\u06cc\u0628 \u06a9\u0646\u06cc\u062f <code>Dashboard<\/code> \u062c\u0632\u0621 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f UI \u0646\u0647\u0627\u06cc\u06cc.  \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631\u062a\u0631 \u0627\u0633\u062a \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0622\u0646 \u0622\u0633\u0627\u0646\u200c\u062a\u0631 \u0627\u0633\u062a.<\/p>\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"c1\">\/\/ ChartWidget.js<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">ChartWidget<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">Chart<\/span> <span class=\"nx\">Widget<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/div&gt;<\/span><span class=\"err\">;\n<\/span><span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">ChartWidget<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ TableWidget.js<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">TableWidget<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">Table<\/span> <span class=\"nx\">Widget<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/div&gt;<\/span><span class=\"err\">;\n<\/span><span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">TableWidget<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ SummaryWidget.js<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">SummaryWidget<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">Summary<\/span> <span class=\"nx\">Widget<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/div&gt;<\/span><span class=\"err\">;\n<\/span><span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">SummaryWidget<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ Dashboard.js<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">ChartWidget<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/ChartWidget<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">TableWidget<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/TableWidget<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">SummaryWidget<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/SummaryWidget<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">Dashboard<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;<\/span>\n      <span class=\"o\">&lt;<\/span><span class=\"nx\">ChartWidget<\/span> <span class=\"o\">\/&gt;<\/span>\n      <span class=\"o\">&lt;<\/span><span class=\"nx\">TableWidget<\/span> <span class=\"o\">\/&gt;<\/span>\n      <span class=\"o\">&lt;<\/span><span class=\"nx\">SummaryWidget<\/span> <span class=\"o\">\/&gt;<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"sr\">\/div<\/span><span class=\"err\">&gt;\n<\/span>  <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">Dashboard<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\n<p><strong>\u06a9\u062f \u0642\u0627\u0628\u0644 \u062e\u0648\u0627\u0646\u062f\u0646 \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc<\/strong>: \u06a9\u062f\u0647\u0627\u06cc \u062a\u0645\u06cc\u0632 \u0648 \u062e\u0648\u0627\u0646\u0627 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f.  \u0627\u0632 \u0646\u0627\u0645 \u0647\u0627\u06cc \u0645\u0639\u0646\u06cc \u062f\u0627\u0631 \u0628\u0631\u0627\u06cc \u0627\u062c\u0632\u0627 \u0648 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.  \u062f\u0631 \u0635\u0648\u0631\u062a \u0644\u0632\u0648\u0645 \u0628\u0631\u0627\u06cc \u062a\u0648\u0636\u06cc\u062d \u0645\u0646\u0637\u0642 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0646\u0638\u0631\u0627\u062a \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p><strong>\u0645\u062b\u0627\u0644:<\/strong> \u062f\u0631 \u06cc\u06a9 \u067e\u0644\u062a \u0641\u0631\u0645 \u0648\u0628\u0644\u0627\u06af \u0646\u0648\u06cc\u0633\u06cc\u060c \u0627\u0632 \u0646\u0627\u0645 \u0647\u0627\u06cc \u0645\u0639\u0646\u06cc \u062f\u0627\u0631 \u0628\u0631\u0627\u06cc \u0627\u062c\u0632\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>Post<\/code>\u060c <code>Comment<\/code>\u060c \u0648 <code>AuthorBio<\/code>.  \u0628\u0631\u0627\u06cc \u062a\u0648\u0636\u06cc\u062d \u0645\u0646\u0637\u0642 \u067e\u06cc\u0686\u06cc\u062f\u0647\u060c \u0645\u0627\u0646\u0646\u062f \u0686\u06af\u0648\u0646\u06af\u06cc <code>Post<\/code> \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u0648\u0627\u06a9\u0634\u06cc \u0648 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f.  \u0627\u06cc\u0646 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u062c\u062f\u06cc\u062f \u062f\u0631\u06a9 \u06a9\u0646\u0646\u062f \u0648 \u062f\u0631 \u0622\u0646 \u0645\u0634\u0627\u0631\u06a9\u062a \u06a9\u0646\u0646\u062f.<\/p>\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"c1\">\/\/ Post.js<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ Post.js<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">useState<\/span><span class=\"p\">,<\/span> <span class=\"nx\">useEffect<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">Post<\/span><span class=\"p\">({<\/span> <span class=\"nx\">postId<\/span> <span class=\"p\">})<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">post<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setPost<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useState<\/span><span class=\"p\">(<\/span><span class=\"kc\">null<\/span><span class=\"p\">);<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">loading<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setLoading<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useState<\/span><span class=\"p\">(<\/span><span class=\"kc\">true<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"c1\">\/\/ Fetch the post data when the component mounts<\/span>\n  <span class=\"nf\">useEffect<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">async<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">fetchPost<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">response<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nf\">fetch<\/span><span class=\"p\">(<\/span><span class=\"s2\">`https:\/\/api.example.com\/posts\/<\/span><span class=\"p\">${<\/span><span class=\"nx\">postId<\/span><span class=\"p\">}<\/span><span class=\"s2\">`<\/span><span class=\"p\">);<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">data<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nf\">json<\/span><span class=\"p\">();<\/span>\n        <span class=\"nf\">setPost<\/span><span class=\"p\">(<\/span><span class=\"nx\">data<\/span><span class=\"p\">);<\/span>\n      <span class=\"p\">}<\/span> <span class=\"k\">catch <\/span><span class=\"p\">(<\/span><span class=\"nx\">error<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">error<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">Error fetching post:<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">error<\/span><span class=\"p\">);<\/span>\n      <span class=\"p\">}<\/span> <span class=\"k\">finally<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nf\">setLoading<\/span><span class=\"p\">(<\/span><span class=\"kc\">false<\/span><span class=\"p\">);<\/span>\n      <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"nf\">fetchPost<\/span><span class=\"p\">();<\/span>\n  <span class=\"p\">},<\/span> <span class=\"p\">[<\/span><span class=\"nx\">postId<\/span><span class=\"p\">]);<\/span>\n\n  <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">loading<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">return<\/span> <span class=\"o\">&lt;<\/span><span class=\"nx\">p<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">Loading<\/span><span class=\"p\">...<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/p&gt;<\/span><span class=\"err\">;\n<\/span>  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"nx\">post<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">return<\/span> <span class=\"o\">&lt;<\/span><span class=\"nx\">p<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">Post<\/span> <span class=\"nx\">not<\/span> <span class=\"nx\">found<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/p&gt;<\/span><span class=\"err\">;\n<\/span>  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;<\/span>\n      <span class=\"o\">&lt;<\/span><span class=\"nx\">h2<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">{<\/span><span class=\"nx\">post<\/span><span class=\"p\">.<\/span><span class=\"nx\">title<\/span><span class=\"p\">}<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/h2<\/span><span class=\"err\">&gt;\n<\/span>      <span class=\"o\">&lt;<\/span><span class=\"nx\">p<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">{<\/span><span class=\"nx\">post<\/span><span class=\"p\">.<\/span><span class=\"nx\">content<\/span><span class=\"p\">}<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/p<\/span><span class=\"err\">&gt;\n<\/span>    <span class=\"o\">&lt;<\/span><span class=\"sr\">\/div<\/span><span class=\"err\">&gt;\n<\/span>  <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">Post<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ Comment.js<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">Comment<\/span><span class=\"p\">({<\/span> <span class=\"nx\">author<\/span><span class=\"p\">,<\/span> <span class=\"nx\">text<\/span> <span class=\"p\">})<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;<\/span>\n      <span class=\"o\">&lt;<\/span><span class=\"nx\">p<\/span><span class=\"o\">&gt;&lt;<\/span><span class=\"nx\">strong<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">{<\/span><span class=\"nx\">author<\/span><span class=\"p\">}<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/strong&gt;: {text}<\/span><span class=\"nx\">p<\/span><span class=\"o\">&gt;<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"sr\">\/div<\/span><span class=\"err\">&gt;\n<\/span>  <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">Comment<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ AuthorBio.js<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">AuthorBio<\/span><span class=\"p\">({<\/span> <span class=\"nx\">author<\/span> <span class=\"p\">})<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;<\/span>\n      <span class=\"o\">&lt;<\/span><span class=\"nx\">h3<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">About<\/span> <span class=\"nx\">the<\/span> <span class=\"nx\">Author<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/h3<\/span><span class=\"err\">&gt;\n<\/span>      <span class=\"o\">&lt;<\/span><span class=\"nx\">p<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">{<\/span><span class=\"nx\">author<\/span><span class=\"p\">.<\/span><span class=\"nx\">bio<\/span><span class=\"p\">}<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/p<\/span><span class=\"err\">&gt;\n<\/span>    <span class=\"o\">&lt;<\/span><span class=\"sr\">\/div<\/span><span class=\"err\">&gt;\n<\/span>  <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">AuthorBio<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ Blog.js<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">useState<\/span><span class=\"p\">,<\/span> <span class=\"nx\">useEffect<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">Post<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/Post<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">Comment<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/Comment<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">AuthorBio<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/AuthorBio<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">Blog<\/span><span class=\"p\">({<\/span> <span class=\"nx\">postId<\/span> <span class=\"p\">})<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">comments<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setComments<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useState<\/span><span class=\"p\">([]);<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">author<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setAuthor<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useState<\/span><span class=\"p\">(<\/span><span class=\"kc\">null<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"c1\">\/\/ Fetch comments and author data when the component mounts<\/span>\n  <span class=\"nf\">useEffect<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">async<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">fetchComments<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">response<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nf\">fetch<\/span><span class=\"p\">(<\/span><span class=\"s2\">`https:\/\/api.example.com\/posts\/<\/span><span class=\"p\">${<\/span><span class=\"nx\">postId<\/span><span class=\"p\">}<\/span><span class=\"s2\">\/comments`<\/span><span class=\"p\">);<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">data<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nf\">json<\/span><span class=\"p\">();<\/span>\n        <span class=\"nf\">setComments<\/span><span class=\"p\">(<\/span><span class=\"nx\">data<\/span><span class=\"p\">);<\/span>\n      <span class=\"p\">}<\/span> <span class=\"k\">catch <\/span><span class=\"p\">(<\/span><span class=\"nx\">error<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">error<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">Error fetching comments:<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">error<\/span><span class=\"p\">);<\/span>\n      <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">async<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">fetchAuthor<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">response<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nf\">fetch<\/span><span class=\"p\">(<\/span><span class=\"s2\">`https:\/\/api.example.com\/posts\/<\/span><span class=\"p\">${<\/span><span class=\"nx\">postId<\/span><span class=\"p\">}<\/span><span class=\"s2\">\/author`<\/span><span class=\"p\">);<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">data<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nf\">json<\/span><span class=\"p\">();<\/span>\n        <span class=\"nf\">setAuthor<\/span><span class=\"p\">(<\/span><span class=\"nx\">data<\/span><span class=\"p\">);<\/span>\n      <span class=\"p\">}<\/span> <span class=\"k\">catch <\/span><span class=\"p\">(<\/span><span class=\"nx\">error<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">error<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">Error fetching author:<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">error<\/span><span class=\"p\">);<\/span>\n      <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"nf\">fetchComments<\/span><span class=\"p\">();<\/span>\n    <span class=\"nf\">fetchAuthor<\/span><span class=\"p\">();<\/span>\n  <span class=\"p\">},<\/span> <span class=\"p\">[<\/span><span class=\"nx\">postId<\/span><span class=\"p\">]);<\/span>\n\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;<\/span>\n      <span class=\"o\">&lt;<\/span><span class=\"nx\">Post<\/span> <span class=\"nx\">postId<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">postId<\/span><span class=\"p\">}<\/span> <span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>      <span class=\"p\">{<\/span><span class=\"nx\">author<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"o\">&lt;<\/span><span class=\"nx\">AuthorBio<\/span> <span class=\"nx\">author<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">author<\/span><span class=\"p\">}<\/span> <span class=\"sr\">\/&gt;<\/span><span class=\"err\">}\n<\/span>      <span class=\"o\">&lt;<\/span><span class=\"nx\">h3<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">Comments<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/h3<\/span><span class=\"err\">&gt;\n<\/span>      <span class=\"p\">{<\/span><span class=\"nx\">comments<\/span><span class=\"p\">.<\/span><span class=\"nf\">map<\/span><span class=\"p\">((<\/span><span class=\"nx\">comment<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">(<\/span>\n        <span class=\"o\">&lt;<\/span><span class=\"nx\">Comment<\/span> <span class=\"nx\">key<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">comment<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span><span class=\"p\">}<\/span> <span class=\"nx\">author<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">comment<\/span><span class=\"p\">.<\/span><span class=\"nx\">author<\/span><span class=\"p\">}<\/span> <span class=\"nx\">text<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">comment<\/span><span class=\"p\">.<\/span><span class=\"nx\">text<\/span><span class=\"p\">}<\/span> <span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>      <span class=\"p\">))}<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"sr\">\/div<\/span><span class=\"err\">&gt;\n<\/span>  <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">Blog<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\n<p><strong>\u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f<\/strong>: \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u06a9\u0646\u06cc\u06a9\u200c\u0647\u0627\u06cc \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u062f\u0627\u062e\u0644\u06cc React \u0627\u0632 \u0631\u0646\u062f\u0631\u0647\u0627\u06cc \u0645\u062c\u062f\u062f \u063a\u06cc\u0631\u0636\u0631\u0648\u0631\u06cc \u062e\u0648\u062f\u062f\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f <code>React.memo<\/code> \u0648 <code>useCallback<\/code>.<\/p>\n<p><strong>\u0645\u062b\u0627\u0644<\/strong>: \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0686\u062a\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>React.memo<\/code> \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0627\u0631\u0627\u0626\u0647 \u0645\u062c\u062f\u062f \u063a\u06cc\u0631 \u0636\u0631\u0648\u0631\u06cc <code>MessageList<\/code> \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u0634\u0648\u062f.  \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>useCallback<\/code> \u0628\u0631\u0627\u06cc \u0628\u0647 \u062e\u0627\u0637\u0631 \u0633\u067e\u0631\u062f\u0646 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u0647\u0627\u06cc \u0631\u0648\u06cc\u062f\u0627\u062f \u062f\u0631 <code>MessageInput<\/code> \u062c\u0632\u0621 \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u062a\u0648\u0627\u0628\u0639 \u062c\u062f\u06cc\u062f \u062f\u0631 \u0647\u0631 \u0631\u0646\u062f\u0631.<\/p>\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"c1\">\/\/ MessageList.js<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">MessageList<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">React<\/span><span class=\"p\">.<\/span><span class=\"nf\">memo<\/span><span class=\"p\">(({<\/span> <span class=\"nx\">messages<\/span> <span class=\"p\">})<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"nx\">ul<\/span><span class=\"o\">&gt;<\/span>\n      <span class=\"p\">{<\/span><span class=\"nx\">messages<\/span><span class=\"p\">.<\/span><span class=\"nf\">map<\/span><span class=\"p\">(<\/span><span class=\"nx\">message<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">(<\/span>\n        <span class=\"o\">&lt;<\/span><span class=\"nx\">li<\/span> <span class=\"nx\">key<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">message<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span><span class=\"p\">}<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">{<\/span><span class=\"nx\">message<\/span><span class=\"p\">.<\/span><span class=\"nx\">text<\/span><span class=\"p\">}<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/li<\/span><span class=\"err\">&gt;\n<\/span>      <span class=\"p\">))}<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"sr\">\/ul<\/span><span class=\"err\">&gt;\n<\/span>  <span class=\"p\">);<\/span>\n<span class=\"p\">});<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">MessageList<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ MessageInput.js<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">useState<\/span><span class=\"p\">,<\/span> <span class=\"nx\">useCallback<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">MessageInput<\/span><span class=\"p\">({<\/span> <span class=\"nx\">onSendMessage<\/span> <span class=\"p\">})<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">text<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setText<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useState<\/span><span class=\"p\">(<\/span><span class=\"dl\">''<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"kd\">const<\/span> <span class=\"nx\">handleChange<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useCallback<\/span><span class=\"p\">((<\/span><span class=\"nx\">e<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nf\">setText<\/span><span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">.<\/span><span class=\"nx\">target<\/span><span class=\"p\">.<\/span><span class=\"nx\">value<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">},<\/span> <span class=\"p\">[]);<\/span>\n\n  <span class=\"kd\">const<\/span> <span class=\"nx\">handleSubmit<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useCallback<\/span><span class=\"p\">((<\/span><span class=\"nx\">e<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">e<\/span><span class=\"p\">.<\/span><span class=\"nf\">preventDefault<\/span><span class=\"p\">();<\/span>\n    <span class=\"nf\">onSendMessage<\/span><span class=\"p\">(<\/span><span class=\"nx\">text<\/span><span class=\"p\">);<\/span>\n    <span class=\"nf\">setText<\/span><span class=\"p\">(<\/span><span class=\"dl\">''<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">},<\/span> <span class=\"p\">[<\/span><span class=\"nx\">text<\/span><span class=\"p\">,<\/span> <span class=\"nx\">onSendMessage<\/span><span class=\"p\">]);<\/span>\n\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"nx\">form<\/span> <span class=\"nx\">onSubmit<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">handleSubmit<\/span><span class=\"p\">}<\/span><span class=\"o\">&gt;<\/span>\n      <span class=\"o\">&lt;<\/span><span class=\"nx\">input<\/span> <span class=\"nx\">type<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">text<\/span><span class=\"dl\">\"<\/span> <span class=\"nx\">value<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">text<\/span><span class=\"p\">}<\/span> <span class=\"nx\">onChange<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">handleChange<\/span><span class=\"p\">}<\/span> <span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>      <span class=\"o\">&lt;<\/span><span class=\"nx\">button<\/span> <span class=\"nx\">type<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">submit<\/span><span class=\"dl\">\"<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">Send<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/button<\/span><span class=\"err\">&gt;\n<\/span>    <span class=\"o\">&lt;<\/span><span class=\"sr\">\/form<\/span><span class=\"err\">&gt;\n<\/span>  <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">MessageInput<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ ChatApp.js<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">useState<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">MessageList<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/MessageList<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">MessageInput<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/MessageInput<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">ChatApp<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">messages<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setMessages<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useState<\/span><span class=\"p\">([]);<\/span>\n\n  <span class=\"kd\">const<\/span> <span class=\"nx\">handleSendMessage<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"nx\">text<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nf\">setMessages<\/span><span class=\"p\">([...<\/span><span class=\"nx\">messages<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"nx\">messages<\/span><span class=\"p\">.<\/span><span class=\"nx\">length<\/span><span class=\"p\">,<\/span> <span class=\"nx\">text<\/span> <span class=\"p\">}]);<\/span>\n  <span class=\"p\">};<\/span>\n\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"nx\">div<\/span><span class=\"o\">&gt;<\/span>\n      <span class=\"o\">&lt;<\/span><span class=\"nx\">MessageList<\/span> <span class=\"nx\">messages<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">messages<\/span><span class=\"p\">}<\/span> <span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>      <span class=\"o\">&lt;<\/span><span class=\"nx\">MessageInput<\/span> <span class=\"nx\">onSendMessage<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">handleSendMessage<\/span><span class=\"p\">}<\/span> <span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>    <span class=\"o\">&lt;<\/span><span class=\"sr\">\/div<\/span><span class=\"err\">&gt;\n<\/span>  <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">ChatApp<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\n<p><strong>\u06cc\u06a9 \u0638\u0627\u0647\u0631 \u0637\u0631\u0627\u062d\u06cc \u0645\u0646\u0633\u062c\u0645<\/strong>: \u0627\u0632 \u06cc\u06a9 \u0631\u0648\u06cc\u06a9\u0631\u062f \u062b\u0627\u0628\u062a \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0627\u06cc\u0644 \u062f\u0627\u062f\u0646 \u0628\u0647 \u0627\u062c\u0632\u0627\u06cc \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.  \u0627\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0645\u0627\u0698\u0648\u0644 \u0647\u0627\u06cc CSS\u060c \u0645\u0648\u0644\u0641\u0647 \u0647\u0627\u06cc \u0633\u0628\u06a9 \u06cc\u0627 \u0631\u0648\u0634 \u062f\u06cc\u06af\u0631\u06cc \u0628\u0627\u0634\u062f \u06a9\u0647 \u0628\u0631\u0627\u06cc \u062a\u06cc\u0645 \u0634\u0645\u0627 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p><strong>\u0645\u062b\u0627\u0644<\/strong>: \u062f\u0631 \u06cc\u06a9 \u0648\u0628\u200c\u0633\u0627\u06cc\u062a \u0634\u0631\u06a9\u062a\u06cc\u060c \u0627\u0632 \u0645\u0627\u0698\u0648\u0644\u200c\u0647\u0627\u06cc CSS \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0627\u0633\u062a\u0627\u06cc\u0644\u200c\u0647\u0627 \u0628\u0647 \u0627\u062c\u0632\u0627\u06cc \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0645\u062d\u062f\u0648\u062f \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 \u0627\u0632 \u062a\u0636\u0627\u062f \u0633\u0628\u06a9 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.  \u06cc\u0627 \u0627\u0632 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0627\u06cc \u0645\u0627\u0646\u0646\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>styled-components<\/code> \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0633\u0628\u06a9 \u0647\u0627\u06cc \u0633\u0627\u0632\u06af\u0627\u0631 \u0648 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u062f\u0631 \u0633\u0631\u0627\u0633\u0631 \u0628\u0631\u0646\u0627\u0645\u0647.<\/p>\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"c1\">\/\/ ProfileHeader.module.css<\/span>\n<span class=\"p\">.<\/span><span class=\"nx\">header<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">font<\/span><span class=\"o\">-<\/span><span class=\"nx\">size<\/span><span class=\"p\">:<\/span> <span class=\"mi\">2<\/span><span class=\"nx\">em<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">color<\/span><span class=\"p\">:<\/span> <span class=\"nx\">blue<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ ProfileHeader.js<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">styles<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/ProfileHeader.module.css<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">ProfileHeader<\/span><span class=\"p\">({<\/span> <span class=\"nx\">name<\/span> <span class=\"p\">})<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"o\">&lt;<\/span><span class=\"nx\">h1<\/span> <span class=\"nx\">className<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">styles<\/span><span class=\"p\">.<\/span><span class=\"nx\">header<\/span><span class=\"p\">}<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">{<\/span><span class=\"nx\">name<\/span><span class=\"p\">}<\/span><span class=\"dl\">'<\/span><span class=\"s1\">s Profile;\n}\n\nexport default ProfileHeader;\n\n\/\/ Profile.js\nimport React from <\/span><span class=\"dl\">'<\/span><span class=\"nx\">react<\/span><span class=\"dl\">'<\/span><span class=\"s1\">;\nimport ProfileHeader from <\/span><span class=\"dl\">'<\/span><span class=\"p\">.<\/span><span class=\"o\">\/<\/span><span class=\"nx\">ProfileHeader<\/span><span class=\"dl\">'<\/span><span class=\"s1\">;\n\nfunction Profile({ user }) {\n  return (\n    \n  );\n}\n\nexport default Profile;\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0627 \u067e\u06cc\u0631\u0648\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0634\u06cc\u0648\u0647\u200c\u0647\u0627\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u0624\u0644\u0641\u0647\u200c\u0647\u0627\u06cc React \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647\u060c \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0648 \u0645\u0642\u06cc\u0627\u0633\u200c\u0628\u0646\u062f\u06cc \u0622\u0646\u200c\u0647\u0627 \u0622\u0633\u0627\u0646 \u0628\u0627\u0634\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D8%AA%DB%8C%D8%AC%D9%87\"><\/span>\n<p>  \u0646\u062a\u06cc\u062c\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0627 \u062a\u0633\u0644\u0637 \u0628\u0631 \u0627\u0635\u0648\u0644 \u0637\u0631\u0627\u062d\u06cc \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u062f\u0631 React\u060c \u0634\u0645\u0627 \u0622\u0645\u0627\u062f\u0647 \u0627\u06cc\u062c\u0627\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0648\u0628 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631\u060c \u06a9\u0627\u0631\u0622\u0645\u062f \u0648 \u0642\u0627\u0628\u0644 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u0648\u062f.  \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627 \u0628\u0644\u0648\u06a9 \u0647\u0627\u06cc \u0633\u0627\u0632\u0646\u062f\u0647 React \u0647\u0633\u062a\u0646\u062f \u0648 \u062f\u0631\u06a9 \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u0648\u062b\u0631 \u0648 \u062a\u0631\u06a9\u06cc\u0628 \u0622\u0646\u0647\u0627 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a.  \u0628\u0647 \u06cc\u0627\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0634\u06cc\u0648\u0647 \u0647\u0627 \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f\u060c \u0645\u0627\u0646\u0646\u062f \u06a9\u0648\u0686\u06a9 \u0646\u06af\u0647 \u062f\u0627\u0634\u062a\u0646 \u0627\u062c\u0632\u0627\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0639\u0627\u0642\u0644\u0627\u0646\u0647 \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u0648 \u062d\u0627\u0644\u062a \u0647\u0627\u060c \u0648 \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f.  \u0628\u0627 \u0627\u06cc\u0646 \u0645\u0647\u0627\u0631\u062a \u0647\u0627\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0631\u0627\u0628\u0637 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0628\u0633\u0627\u0632\u06cc\u062f.  \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u0635\u0648\u0631\u062a \u0622\u0646\u0644\u0627\u06cc\u0646 \u062f\u0631\u0628\u0627\u0631\u0647 \u0622\u0646 \u062a\u062d\u0642\u06cc\u0642 \u06a9\u0646\u06cc\u062f.  \u0627\u06af\u0631 \u0645\u0627\u06cc\u0644 \u0628\u0648\u062f\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0645\u0646 \u062f\u0631 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0627\u0634\u06cc\u062f <a href=\"https:\/\/twitter.com\/lovishdtwts\" rel=\"nofollow noopener\" target=\"_blank\"><strong>\u062a\u0648\u06cc\u06cc\u062a\u0631<\/strong><\/a>.  \u06a9\u062f \u0646\u0648\u06cc\u0633\u06cc \u0645\u0628\u0627\u0631\u06a9!  <\/p>\n<p>\u0645\u0645\u0646\u0648\u0646 \u06a9\u0647 \u062e\u0648\u0627\u0646\u062f\u06cc\u062f \ud83d\ude42<\/p>\n<\/p><\/div>\n<p><script async src=\"\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u0645\u0639\u0631\u0641\u06cc \u0648\u0627\u06a9\u0646\u0634 \u0646\u0634\u0627\u0646 \u062f\u0647\u06cc\u062f \u06cc\u06a9 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0645\u062d\u0628\u0648\u0628 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0631\u0627\u0628\u0637 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0647 \u0648\u06cc\u0698\u0647 \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u062a\u06a9 \u0635\u0641\u062d\u0647 \u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f. \u06cc\u06a9\u06cc \u0627\u0632 \u0645\u0641\u0627\u0647\u06cc\u0645 \u06a9\u0644\u06cc\u062f\u06cc \u062f\u0631 React \u0637\u0631\u0627\u062d\u06cc \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0627\u0633\u062a. \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627 \u0628\u0644\u0648\u06a9 \u0647\u0627\u06cc \u0633\u0627\u0632\u0646\u062f\u0647 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 React \u0647\u0633\u062a\u0646\u062f. \u062f\u0631\u06a9 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":66869,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-66868","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/66868","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=66868"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/66868\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/66869"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=66868"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=66868"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=66868"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}