<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jyoti Ranjan Sharma</title>
    <description>The latest articles on DEV Community by Jyoti Ranjan Sharma (@researchjrs).</description>
    <link>https://dev.to/researchjrs</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F999921%2F86e8c874-aaf9-4468-9ad6-f4f60e59690e.jpg</url>
      <title>DEV Community: Jyoti Ranjan Sharma</title>
      <link>https://dev.to/researchjrs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/researchjrs"/>
    <language>en</language>
    <item>
      <title>How JSX works in ReactJS? 🤗</title>
      <dc:creator>Jyoti Ranjan Sharma</dc:creator>
      <pubDate>Sun, 01 Jan 2023 14:42:23 +0000</pubDate>
      <link>https://dev.to/researchjrs/how-jsx-works-in-reactjs-38n3</link>
      <guid>https://dev.to/researchjrs/how-jsx-works-in-reactjs-38n3</guid>
      <description>&lt;p&gt;React uses JSX to make developer experience better than other environments. JSX is just an HTML like syntax, but not HTML in Javascript. The Browser can't understand JSX code on it's own. It needs transpilers like &lt;strong&gt;Babel&lt;/strong&gt; to &lt;em&gt;convert&lt;/em&gt; JSX code to &lt;strong&gt;React.createElement()&lt;/strong&gt; code, &lt;strong&gt;React.createElement()&lt;/strong&gt; are nothing but &lt;strong&gt;JavaScript Objects&lt;/strong&gt; and then those &lt;strong&gt;objects&lt;/strong&gt; are &lt;em&gt;converted&lt;/em&gt; to &lt;strong&gt;DOM&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So the flow goes like:&lt;br&gt;
&lt;em&gt;JSX&lt;/em&gt; &lt;strong&gt;=&amp;gt;&lt;/strong&gt; &lt;em&gt;Babel&lt;/em&gt; &lt;strong&gt;=&amp;gt;&lt;/strong&gt; &lt;em&gt;React.createElement&lt;/em&gt; &lt;strong&gt;=&amp;gt;&lt;/strong&gt; &lt;em&gt;Obj&lt;/em&gt; &lt;strong&gt;=&amp;gt;&lt;/strong&gt; &lt;em&gt;HTML code(DOM)&lt;/em&gt;&lt;/p&gt;



&lt;blockquote&gt;
&lt;p&gt;"Babel is a Beast."&lt;/p&gt;
&lt;/blockquote&gt;



&lt;p&gt;Before compiling React JSX code, we need Babel to transpile it to the React API format.&lt;/p&gt;

&lt;p&gt;JSX Element&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;reactElement&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;h1&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Hello&lt;/span&gt; &lt;span class="nx"&gt;World&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/h1&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Babel transpiled react version&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;reactElement&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="cm"&gt;/*#__PURE__*/&lt;/span&gt;&lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;createElement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;h1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello World&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3j04Bn9u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.iconfinder.com/icons/1174949/download/png/48" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3j04Bn9u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.iconfinder.com/icons/1174949/download/png/48" alt="Reactlogo" width="48" height="48"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;JSX is HTML-like syntax, but not actual HTML in JS file.&lt;/li&gt;
&lt;li&gt;Babel is a Beast.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a href="https://www.youtube.com/channel/UCyjSE3te6b_--hn_Mvxs5ew"&gt;YouTube Link&lt;/a&gt;&lt;br&gt;
&lt;a href="mailto:jyotisemail@gmail.com"&gt;jyotisemail@gmail.com&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
