<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>reactJs &#8211; طراحی سایت، ربات تلگرام و راهکارهای هوش مصنوعی | پشتیبانی 24 ساعته | مشاوره رایگان | Piero.ir</title>
	<atom:link href="https://piero.ir/tag/reactjs/feed/" rel="self" type="application/rss+xml" />
	<link>https://piero.ir</link>
	<description>Piero.ir ارائه‌دهنده طراحی سایت حرفه‌ای، ساخت ربات تلگرام، اتوماسیون n8n، هوش مصنوعی، یادگیری ماشین و راه‌اندازی استارتاپ‌های نوآورانه. راهکارهای اختصاصی و مشتری‌محور برای رشد کسب‌وکار شما.</description>
	<lastBuildDate>Fri, 26 Sep 2025 01:46:23 +0000</lastBuildDate>
	<language>fa-IR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>

<image>
	<url>https://piero.ir/wp-content/uploads/2025/08/logopiero-100x100.png</url>
	<title>reactJs &#8211; طراحی سایت، ربات تلگرام و راهکارهای هوش مصنوعی | پشتیبانی 24 ساعته | مشاوره رایگان | Piero.ir</title>
	<link>https://piero.ir</link>
	<width>32</width>
	<height>32</height>
</image> 
        <wp_options>
            <wp_option>
                <name>
                    shopengine_activated_templates                </name>
                <val>
                    a:0:{}                </val>
            </wp_option>
        </wp_options>
        	<item>
		<title>آموزش کامل و حرفه‌ای React JSX &#124; مثال‌های کاربردی و نکات پیشرفته</title>
		<link>https://piero.ir/jsx/</link>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Sun, 24 Sep 2017 14:57:29 +0000</pubDate>
				<category><![CDATA[آموزش reactJs]]></category>
		<category><![CDATA[دسته‌بندی نشده]]></category>
		<category><![CDATA[reactJs]]></category>
		<guid isPermaLink="false">http://www.piero.ir/?p=857</guid>

					<description><![CDATA[آموزش حرفه‌ای React JSX: از اصول تا الگوهای پیشرفته JSX یک سینتکس شبیه HTML است که داخل جاوااسکریپت استفاده می‌شود و به‌صورت Declarative رابط کاربری را توصیف می‌کند. این آموزش از مبانی تا تکنیک‌های حرفه‌ای (شرطی‌سازی، لیست‌ها و کلیدها، مدیریت state، هوک‌ها، پرفورمنس و الگوهای پیشرفته) را پوشش می‌دهد. ۱) JSX چیست و چرا؟ خوانایی [&#8230;]]]></description>
										<content:encoded><![CDATA[<div dir="rtl">
<h1>آموزش حرفه‌ای React JSX: از اصول تا الگوهای پیشرفته</h1>
<p>JSX یک سینتکس شبیه HTML است که داخل جاوااسکریپت استفاده می‌شود و به‌صورت <em>Declarative</em> رابط کاربری را توصیف می‌کند. این آموزش از مبانی تا تکنیک‌های حرفه‌ای (شرطی‌سازی، لیست‌ها و کلیدها، مدیریت state، هوک‌ها، پرفورمنس و الگوهای پیشرفته) را پوشش می‌دهد.</p>
<hr />
<h2>۱) JSX چیست و چرا؟</h2>
<ul>
<li>خوانایی بالا و نزدیکی به ساختار UI</li>
<li>اسکوپ و منطق جاوااسکریپت در کنار View</li>
<li>بهینه‌سازی هوشمند توسط React و ابزارهای ساخت</li>
</ul>
<h3>قواعد JSX</h3>
<ul>
<li>کامپوننت‌ها باید <strong>یک ریشه</strong> داشته باشند (از &lt;div&gt; یا &lt;React.Fragment&gt; استفاده کنید).</li>
<li>به‌جای <code>class</code> از <code>className</code> استفاده کنید.</li>
<li>استایل inline به‌صورت آبجکت جاوااسکریپت است (camelCase).</li>
<li>عبارت‌های JS را داخل <code>{}</code> قرار دهید.</li>
</ul>
<pre><pre class="brush: jscript; title: ; notranslate">// یک کامپوننت ساده
function Hello() {
const name = &quot;Piero&quot;;
return (
&amp;amp;lt;div className=&quot;box&quot;&amp;amp;gt;
&amp;amp;lt;h2&amp;amp;gt;سلام، {name}!&amp;amp;lt;/h2&amp;amp;gt;
&amp;amp;lt;/div&amp;amp;gt;
);
}</pre>
<hr />
<h2>۲) درج متغیرها و عبارات در JSX</h2>
<p>هر عبارت جاوااسکریپت را می‌توانید با آکولاد در JSX بنویسید.</p>
<pre><pre class="brush: jscript; title: ; notranslate">const price = 129_000;
const user = { firstName: &quot;Sara&quot;, lastName: &quot;Karimi&quot; };

export default function Card() {
return (
&amp;amp;lt;section&amp;amp;gt;

مبلغ: {price.toLocaleString(&quot;fa-IR&quot;)}

نام: {${user.firstName} ${user.lastName}}
{price &amp;amp;gt; 100000 ? &amp;amp;lt;strong&amp;amp;gt;پیشنهاد ویژه!&amp;amp;lt;/strong&amp;amp;gt; : null}
&amp;amp;lt;/section&amp;amp;gt;
);
}</pre>
<hr />
<h2>۳) شرطی‌سازی در JSX</h2>
<p>از عملگر سه‌تایی، AND منطقی یا جداسازی منطق قبل از return استفاده کنید.</p>
<pre><pre class="brush: jscript; title: ; notranslate">// 1) سه‌تایی
{isLoading ? &amp;amp;lt;Spinner /&amp;amp;gt; : &amp;amp;lt;DataList /&amp;amp;gt;}

// 2) AND منطقی (برای نمایش شرطی کوتاه)
{error &amp;amp;amp;&amp;amp;amp; 
خطا: {error.message}
}

// 3) جداسازی منطق
let content;
if (isLoading) content = &amp;amp;lt;Spinner /&amp;amp;gt;;
else if (error) content = &amp;amp;lt;ErrorView /&amp;amp;gt;;
else content = &amp;amp;lt;DataList /&amp;amp;gt;;
return &amp;amp;lt;div&amp;amp;gt;{content}&amp;amp;lt;/div&amp;amp;gt;;</pre>
<hr />
<h2>۴) رندر لیست‌ها و کلیدها (keys)</h2>
<p>برای عملکرد و جلوگیری از باگ در Diff، به هر آیتم یک <code>key</code> یکتا بدهید (از id پایدار استفاده کنید).</p>
<pre><pre class="brush: jscript; title: ; notranslate">const items = &#x5B;
{ id: &quot;a1&quot;, title: &quot;React&quot; },
{ id: &quot;b2&quot;, title: &quot;JSX&quot; },
{ id: &quot;c3&quot;, title: &quot;Hooks&quot; },
];

function List() {
return (
&amp;amp;lt;ul&amp;amp;gt;
{items.map(item =&amp;amp;gt; (
&amp;amp;lt;li key={item.id}&amp;amp;gt;{item.title}&amp;amp;lt;/li&amp;amp;gt;
))}
&amp;amp;lt;/ul&amp;amp;gt;
);
}</pre>
<hr />
<h2>۵) پراپس‌ها، State و رویدادها</h2>
<h3>پراپس‌ها</h3>
<pre><pre class="brush: jscript; title: ; notranslate">function Button({ children, onClick, type = &quot;button&quot; }) { return &amp;amp;lt;button type={type} onClick={onClick}&amp;amp;gt;{children}&amp;amp;lt;/button&amp;amp;gt;; }

// استفاده
&amp;amp;lt;Button onClick={() =&amp;amp;gt; alert(&quot;clicked!&quot;)}&amp;amp;gt;کلیک&amp;amp;lt;/Button&amp;amp;gt;</pre>
<h3>State و رویدادها با Hooks</h3>
<pre><pre class="brush: jscript; title: ; notranslate">import { useState } from &quot;react&quot;;

function Counter() {
const &#x5B;count, setCount] = useState(0);
return (
&amp;amp;lt;div&amp;amp;gt;

شمارنده: {count}
&amp;amp;lt;button onClick={() =&amp;amp;gt; setCount((c) =&amp;amp;gt; c + 1)}&amp;amp;gt;افزایش&amp;amp;lt;/button&amp;amp;gt;
&amp;amp;lt;/div&amp;amp;gt;
);
}</pre>
<h3>کنترل فرم (Controlled Components)</h3>
<pre><pre class="brush: jscript; title: ; notranslate">import { useState } from &quot;react&quot;;

function LoginForm() {
const &#x5B;email, setEmail] = useState(&quot;&quot;);

const submit = (e) =&amp;amp;gt; {
e.preventDefault();
console.log({ email });
};

return (
&amp;amp;lt;form onSubmit={submit}&amp;amp;gt;
&amp;amp;lt;input
value={email}
onChange={(e) =&amp;amp;gt; setEmail(e.target.value)}
placeholder=&quot;ایمیل&quot;
/&amp;amp;gt;
&amp;amp;lt;button&amp;amp;gt;ارسال&amp;amp;lt;/button&amp;amp;gt;
&amp;amp;lt;/form&amp;amp;gt;
);
}</pre>
<hr />
<h2>۶) Fragment، Portal و Context</h2>
<h3>Fragment</h3>
<pre><pre class="brush: jscript; title: ; notranslate">return ( &amp;amp;lt;&amp;amp;gt; &amp;amp;lt;Header /&amp;amp;gt; &amp;amp;lt;Main /&amp;amp;gt; &amp;amp;lt;/&amp;amp;gt; );</pre>
<h3>Portal (رندر خارج از سلسله‌مراتب معمول)</h3>
<pre><pre class="brush: jscript; title: ; notranslate">import { createPortal } from &quot;react-dom&quot;;

function Modal({ children }) {
return createPortal(
&amp;amp;lt;div className=&quot;backdrop&quot;&amp;amp;gt;{children}&amp;amp;lt;/div&amp;amp;gt;,
document.getElementById(&quot;modal-root&quot;)
);
}</pre>
<h3>Context (مدیریت وضعیت سراسری سبک)</h3>
<pre><pre class="brush: jscript; title: ; notranslate">import { createContext, useContext } from &quot;react&quot;;

const ThemeContext = createContext(&quot;light&quot;);

function App() {
return (
&amp;amp;lt;ThemeContext.Provider value=&quot;dark&quot;&amp;amp;gt;
&amp;amp;lt;Toolbar /&amp;amp;gt;
&amp;amp;lt;/ThemeContext.Provider&amp;amp;gt;
);
}

function Toolbar() {
const theme = useContext(ThemeContext);
return &amp;amp;lt;div data-theme={theme}&amp;amp;gt;Toolbar&amp;amp;lt;/div&amp;amp;gt;;
}</pre>
<hr />
<h2>۷) الگوهای حرفه‌ای با Hooks</h2>
<h3>بهینه‌سازی پرفورمنس: memo, useMemo, useCallback</h3>
<pre><pre class="brush: jscript; title: ; notranslate">import React, { useMemo, useCallback } from &quot;react&quot;;

const Expensive = React.memo(function Expensive({ value }) {
console.log(&quot;render&quot;);
return &amp;amp;lt;div&amp;amp;gt;محاسبه: {value}&amp;amp;lt;/div&amp;amp;gt;;
});

function Dashboard({ items }) {
const total = useMemo(() =&amp;amp;gt; items.reduce((s, x) =&amp;amp;gt; s + x, 0), &#x5B;items]);
const handleClick = useCallback(() =&amp;amp;gt; console.log(&quot;clicked&quot;), &#x5B;]);
return (
&amp;amp;lt;div&amp;amp;gt;

جمع: {total}
&amp;amp;lt;button onClick={handleClick}&amp;amp;gt;لاگ&amp;amp;lt;/button&amp;amp;gt;
&amp;amp;lt;Expensive value={total} /&amp;amp;gt;
&amp;amp;lt;/div&amp;amp;gt;
);
}</pre>
<h3>کداسپلیتینگ با lazy و Suspense</h3>
<pre><pre class="brush: jscript; title: ; notranslate">import React from &quot;react&quot;;

const Chart = React.lazy(() =&amp;amp;gt; import(&quot;./Chart&quot;));

function Reports() {
return (
&amp;amp;lt;React.Suspense fallback={&amp;amp;lt;div&amp;amp;gt;در حال بارگذاری...&amp;amp;lt;/div&amp;amp;gt;}&amp;amp;gt;
&amp;amp;lt;Chart /&amp;amp;gt;
&amp;amp;lt;/React.Suspense&amp;amp;gt;
);
}</pre>
<h3>Error Boundary</h3>
<pre><pre class="brush: jscript; title: ; notranslate">import React from &quot;react&quot;;

class ErrorBoundary extends React.Component {
state = { hasError: false };
static getDerivedStateFromError() { return { hasError: true }; }
componentDidCatch(err, info) { console.error(err, info); }
render() {
return this.state.hasError ? &amp;amp;lt;h3&amp;amp;gt;خطایی رخ داد&amp;amp;lt;/h3&amp;amp;gt; : this.props.children;
}
}

export default ErrorBoundary;</pre>
<hr />
<h2>۸) الگوی «بالابردن State» و ترکیب‌پذیری</h2>
<pre><pre class="brush: jscript; title: ; notranslate">import { useState } from &quot;react&quot;;

function Parent() {
const &#x5B;value, setValue] = useState(&quot;&quot;);
return (
&amp;amp;lt;&amp;amp;gt;
&amp;amp;lt;Input value={value} onChange={setValue} /&amp;amp;gt;
&amp;amp;lt;Preview value={value} /&amp;amp;gt;
&amp;amp;lt;/&amp;amp;gt;
);
}

function Input({ value, onChange }) {
return &amp;amp;lt;input value={value} onChange={(e) =&amp;amp;gt; onChange(e.target.value)} /&amp;amp;gt;;
}

function Preview({ value }) {
return 
پیش‌نمایش: {value}
;
}</pre>
<hr />
<h2>۹) استایل‌دهی در JSX</h2>
<p>گزینه‌ها: CSS Module، Styled Components، Tailwind، یا استایل inline.</p>
<pre><pre class="brush: jscript; title: ; notranslate">// استایل inline

&amp;amp;lt;div style={{ padding: 12, borderRadius: 8 }} /&amp;amp;gt;

// CSS Module
import styles from &quot;./box.module.css&quot;;

&amp;amp;lt;div className={styles.box}&amp;amp;gt;Box&amp;amp;lt;/div&amp;amp;gt;</pre>
<hr />
<h2>۱۰) دسترسی‌پذیری (a11y) و SEO فرانت‌اند</h2>
<ul>
<li>استفاده از تگ‌های معنایی (&lt;main&gt;, &lt;nav&gt;, &lt;header&gt;)</li>
<li>مشخص‌کردن alt برای تصاویر</li>
<li>مدیریت فوکوس و نسبت کنتراست مناسب</li>
</ul>
<hr />
<h2>۱۱) تست کامپوننت‌ها</h2>
<pre><pre class="brush: jscript; title: ; notranslate">// React Testing Library import { render, screen } from &quot;@testing-library/react&quot;; import Button from &quot;./Button&quot;;

test(&quot;renders label&quot;, () =&amp;amp;gt; {
render(&amp;amp;lt;Button&amp;amp;gt;سلام&amp;amp;lt;/Button&amp;amp;gt;);
expect(screen.getByText(&quot;سلام&quot;)).toBeInTheDocument();
});</pre>
<hr />
<h2>۱۲) نمونهٔ اپ کوچک: فهرست کارها (Todo)</h2>
<pre><pre class="brush: jscript; title: ; notranslate">import { useState } from &quot;react&quot;;

export default function TodoApp() {
const &#x5B;items, setItems] = useState(&#x5B;]);
const &#x5B;text, setText] = useState(&quot;&quot;);

const add = () =&amp;amp;gt; {
if (!text.trim()) return;
setItems((prev) =&amp;amp;gt; &#x5B;...prev, { id: crypto.randomUUID(), text }]);
setText(&quot;&quot;);
};

const remove = (id) =&amp;amp;gt; setItems((prev) =&amp;amp;gt; prev.filter(i =&amp;amp;gt; i.id !== id));

return (
&amp;amp;lt;div className=&quot;todo&quot;&amp;amp;gt;
&amp;amp;lt;h2&amp;amp;gt;کارها&amp;amp;lt;/h2&amp;amp;gt;
&amp;amp;lt;input value={text} onChange={(e) =&amp;amp;gt; setText(e.target.value)} /&amp;amp;gt;
&amp;amp;lt;button onClick={add}&amp;amp;gt;افزودن&amp;amp;lt;/button&amp;amp;gt;
&amp;amp;lt;ul&amp;amp;gt;
{items.map(i =&amp;amp;gt; (
&amp;amp;lt;li key={i.id}&amp;amp;gt;
{i.text}
&amp;amp;lt;button onClick={() =&amp;amp;gt; remove(i.id)}&amp;amp;gt;حذف&amp;amp;lt;/button&amp;amp;gt;
&amp;amp;lt;/li&amp;amp;gt;
))}
&amp;amp;lt;/ul&amp;amp;gt;
&amp;amp;lt;/div&amp;amp;gt;
);
}</pre>
<hr />
<h2>۱۳) نکات حرفه‌ای برای پروژه‌های واقعی</h2>
<ul>
<li>ساختار پوشه‌ها بر اساس دامنه (Feature-Sliced) به‌جای تفکیک فایل‌محور.</li>
<li>TypeScript برای خودمستندسازی و ایمنی تایپی.</li>
<li>ESLint + Prettier برای یکپارچگی کد.</li>
<li>استفاده از React Query / SWR برای مدیریت سرور استیت.</li>
<li>Next.js برای SSR/SSG، بهبود SEO و رندر سمت سرور.</li>
</ul>
<hr />
<h2>پرسش‌های متداول (FAQ)</h2>
<p><strong>تفاوت JSX و HTML؟</strong> JSX یک سینتکس داخل جاوااسکریپت است؛ برخی ویژگی‌ها متفاوت‌اند (مثل className، onClick).<br />
<strong>آیا بدون Babel می‌توان JSX نوشت؟</strong> نه، JSX باید به جاوااسکریپت کامپایل شود (Vite/Next.js/CRA قدیمی).<br />
<strong>راه بهینه‌سازی سرعت رندر چیست؟</strong> کلیدهای پایدار، memo/useMemo/useCallback، تقسیم کد با lazy/Suspense و جلوگیری از رندرهای غیرضروری.</p>
<hr />
<h3></h3>
</div>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>آموزش  reactJS</title>
		<link>https://piero.ir/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d8%b1%db%8c-%d8%a7%da%a9%d8%aa-react/</link>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Sun, 24 Sep 2017 11:33:05 +0000</pubDate>
				<category><![CDATA[آموزش reactJs]]></category>
		<category><![CDATA[آموزش رایگان]]></category>
		<category><![CDATA[دسته‌بندی نشده]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jsx]]></category>
		<category><![CDATA[reactJs]]></category>
		<category><![CDATA[ری اکت]]></category>
		<guid isPermaLink="false">http://www.piero.ir/?p=781</guid>

					<description><![CDATA[به آموزش  reactJS  (ری اکت) قسمت اول خوش آمدید reactJS یک فریم ورک جاوا اسکریپت می باشد که توسط فیس بوک ساخته شده است . این فریم ورک از برترین فریم ورکهای جهان می باشد که دارای مزایای زیر می باشد. بسیار سریع : برنامه هایی که با این فریم ورک ساخته می شوند بسیار [&#8230;]]]></description>
										<content:encoded><![CDATA[<h3 style="text-align: justify;">به آموزش  reactJS  (ری اکت) قسمت اول خوش آمدید</h3>
<p style="text-align: justify;">reactJS یک فریم ورک جاوا اسکریپت می باشد که توسط فیس بوک ساخته شده است . این فریم ورک از برترین فریم ورکهای جهان می باشد که دارای مزایای زیر می باشد.</p>
<ol style="text-align: justify;">
<li><strong>بسیار سریع :</strong> برنامه هایی که با این فریم ورک ساخته می شوند بسیار سریع هستند زیرا reactJS بسیار بهینه ساخته شده است.</li>
<li><strong>بسیار ماژولار :</strong> در صورتی که شما بسیار برنامه ای بزرگ دارید شما می توانید با reactJS به قطعات کوچکتر تبدیل کنید .</li>
<li><strong>هماهنگ با داده های بزرگ :</strong> reactJS بسیار مناسب برای برناه هایی با داده های بالا است .</li>
<li><strong>انعطاف بالا :</strong> با reactJS هرکاری که شما فکر کنید می توان انجام داد .</li>
<li><strong>شهرت :</strong> وقتی شما تسلط بر این فریم ورک داشته باشید طبیعتا شرایط شما برای یافتن کار مناسب بسیار عالی می باشد .</li>
</ol>
<p style="text-align: justify;">لازم به ذکر است برای شروع نیاز است شما به زبان برنامه نویسی <strong>جاوا اسکریپت</strong>  مسلط باشید همچنین می بایست جاوا اسکریپت اکما اسکریپت ۶ را مسلط با شید که ما با استفاده از بابل آن را به نسخه های رایج مرور گرها تبدیل می کنیم . در لینکهای زیر شامل برترین منابع یادگیری جاوا اسکریپت است :</p>
<p dir="ltr" style="text-align: justify;"><a href="https://www.codecademy.com/learn/javascript" target="_blank" rel="noopener">https://www.codecademy.com/learn/javascript</a></p>
<p dir="ltr" style="text-align: justify;"><a href="https://www.w3schools.com/js/default.asp" target="_blank" rel="noopener">https://www.w3schools.com/js/default.asp</a></p>
<h2 style="text-align: justify;">شروع آموزش reactJS</h2>
<p style="text-align: justify;">به کد زیر توجه نمایید :</p>
<pre class="lang:default decode:true ">var h1 = &lt;h1&gt;Hello world&lt;/h1&gt;;</pre>
<p>&nbsp;</p>
<p style="text-align: justify;">در حالت عادی جاوا اسکریپت به این کد خطا می گیرد :</p>
<div class="panelNode panelNode-console contextUID=2">
<div class="logRow logRow-errorMessage ">
<div class=" " style="text-align: justify;">
<div class="logContent " dir="ltr">
<div class="errorTitle focusRow subLogRow "><span class="errorMessage " style="color: #ff0000;">The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol.</span></div>
</div>
</div>
<div class="logContent " dir="rtl" style="text-align: justify;">به این ساختار <em>JSX</em> می گویند در ادامه به این مبحث به طور کامل می پردازیم.</div>
<h1 class="logContent " dir="rtl" style="text-align: justify;"><em>JSX</em></h1>
<p style="text-align: justify;">JSX یک المنت است که تعریف می شود و می توان هر مقدار دلخواهی را درون آن قرار داد  مانند اعداد ، رشته ، HTML  ، شی ، آرایه و &#8230;</p>
<p style="text-align: justify;">در واقع شما با jsx می توانید یک متغیر تعریف کنید و آن متغیر را به یک المنت html تبدیل کنید و در مواقع لزوم از آن استفاده کنید .</p>
<pre class="lang:default decode:true ">var navBar = &lt;nav&gt;I am a nav bar&lt;/nav&gt;;</pre>
<p>&nbsp;</p>
<p style="text-align: justify;">ذخیره شدن المنتهای HTML در JSX</p>
<pre class="lang:default decode:true ">var Pistons2004 = {
  center:        &lt;li&gt;Ben Wallace&lt;/li&gt;,
  powerForward:  &lt;li&gt;Rasheed Wallace&lt;/li&gt;,
  smallForward:  &lt;li&gt;Tayshaun Prince&lt;/li&gt;,
  shootingGuard: &lt;li&gt;Richard Hamilton&lt;/li&gt;,
  pointGuard:    &lt;li&gt;Chauncey Billups&lt;/li&gt;
};</pre>
<p>&nbsp;</p>
<p style="text-align: justify;">المنتهای jsx می نوانند دارای ویژگی باشند همانند html</p>
<p style="text-align: justify;">و همانند html هم مقدار دهی می شوند .</p>
<pre dir="ltr" class="">&lt;a href="http://www.yahoo.com"&gt;Welcome to the Yahoo&lt;/a&gt;;
var title = &lt;h1 id="title"&gt;Introduction to React.js: Part I&lt;/h1&gt;;</pre>
<p style="text-align: justify;">همچنین می توانند تو در تو باشند و برای خوانایی بیشتر از فاصله ها یا رفتن به خط بعد استفاده کرد.</p>
<pre class="lang:default decode:true ">&lt;a href="https://www.google.net"&gt; &lt;h1&gt; Click me I am Goooogle &lt;/h1&gt; &lt;/a&gt;</pre>
<p>&nbsp;</p>
<p dir="rtl" style="text-align: justify;"><strong>ولی توجه کنید برای رفتن به خط بعد حتما باید کد ما در پرانتز قرار بگیرد:</strong></p>
<pre dir="ltr" class="">var theGoogle = (
   &lt;a href="https://www.google.net"&gt;
     &lt;h1&gt;
       Click me I am Gooooooooooogle
     &lt;/h1&gt;
   &lt;/a&gt;
 );</pre>
<p style="text-align: justify;">نکته مهم : شما فقط می توانید یک المنت پایه داشته باشید :</p>
<pre dir="ltr" class="">var paragraphs = (
  &lt;div id="i-am-the-outermost-element"&gt;
    &lt;p&gt;I am a paragraph.&lt;/p&gt;
    &lt;p&gt;I, too, am a paragraph.&lt;/p&gt;
  &lt;/div&gt;
);</pre>
<p style="text-align: justify;">در حالی که مثال زیر خطا می دهد :(به دلیل اینکه  تگهای p دارای ریشه نمی باشند )</p>
<pre dir="ltr">var paragraphs = (
  &lt;p&gt;I am a paragraph.&lt;/p&gt;
  &lt;p&gt;I, too, am a paragraph.&lt;/p&gt;
);</pre>
<p style="text-align: justify;">برای رفع خطا بهتر است المتهایمان را درون یک &lt;div&gt; بگزاریم.(هر متغیر فقط می تواند یک تگ ریشه داشته باشد)</p>
<pre>var blog = ( &lt;div&gt; &lt;img src="pics/192940u73.jpg" /&gt;
&lt;h1&gt; Welcome to Dan's Blog! &lt;/h1&gt;
&lt;article&gt; Wow I had the tastiest sandwich today. I &lt;strong&gt;literally&lt;/strong&gt; almost freaked out. &lt;/article&gt; &lt;/div&gt; );</pre>
<h2 style="text-align: justify;">رندر کردن reactJS</h2>
<p style="text-align: justify;">حالا که به ساختار آن اشنا شدید بهتر است نحوه استفاده از react رایاد بگیرید .</p>
<pre class="lang:default decode:true">var React = require('react');
var ReactDOM = require('react-dom');
// Copy code here:
ReactDOM.render(&lt;h1&gt;Hello world&lt;/h1&gt;, document.getElementById('app'));</pre>
<p>&nbsp;</p>
<h4 style="text-align: justify;">خروجی : Hello world</h4>
<p style="text-align: justify;">نگران نباشید الان به طور کامل براتون این مورد را شرح می دهیم:</p>
<p style="text-align: justify;">در خط اول و دوم کتابخانه reactJS را فراخوانی کردیم.</p>
<p style="text-align: justify;"><code>ReactDOM</code> چیست ؟</p>
<p style="text-align: justify;">یک کتابخانه جاوا اسکریپت است که ویژگی های ری اکت را در خود جا داده است . البته در ادامه با این مفهوم به طور کامل آشنا می شویم ولی الان برمیگردیم به فایلمان همان گونه که می بینید تکه کد زیر خروجی مناسب می دهد :</p>
<pre class="lang:default decode:true ">ReactDOM.render(&lt;h1&gt;Hello world&lt;/h1&gt;, document.getElementById('app'));</pre>
<p>&nbsp;</p>
<p>ReactDOM.render تابعی است که نوع jsx را خروجی می دهد به المنت دوم تابع در واقع این تابع دو آرگومان ورودی دارد :</p>
<p>ارگومان اول متغیر jsx را دریافت و در المنت دوم چاپ می کند .</p>
<p><strong>توجه : شما می بایست در فایل html خود المنتی با ایدی app داشته باشید</strong></p>
<p dir="ltr">  &lt;main id=&#8221;app&#8221;&gt;&lt;/main&gt;</p>
<h2 dir="rtl">بارگزاری متغیر reactJs</h2>
<pre class="lang:default decode:true" dir="ltr">var React = require('react');
var ReactDOM = require('react-dom');

// Write code here:
var myList=(&lt;ul&gt;
    &lt;li&gt;info@piero.ir&lt;/li&gt;
    &lt;li&gt;www.piero.ir &lt;/li&gt;
    &lt;/ul&gt;
    );
ReactDOM.render(myList,document.getElementById("app"));</pre>
<p>خروچی :</p>
<ul data-reactroot="">
<li>info@piero.ir</li>
<li>www.piero.ir</li>
</ul>
<p>همانگونه که دیدید متغیری تعریف نمودیم و در آن لیستی قرار دادیم و بعد آن را چاپ نمودیم.</p>
<p>نکته پایانی:</p>
<p>چون از المنت استفاده می کنیم درصورتی که یک کد دوبار نوشته شود دفعه دوم هیچ کاری انجام نمیدهد :</p>
<pre dir="ltr" class="">var hello = &lt;h1&gt;Hello world&lt;/h1&gt;;

// This will add "Hello world" to the screen:

ReactDOM.render(hello, document.getElementById('app'));

// This won't do anything at all:

ReactDOM.render(hello, document.getElementById('app'));</pre>
</div>
<p>لطفا با ارایه نظرتتان مارا در بهبود مطالب وب سایت یاری نمایید با تشکر</p>
<p>با تشکر پیروز جنابی</p>
</div>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
