<?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: Swapnadeep Mohapatra</title>
    <description>The latest articles on DEV Community by Swapnadeep Mohapatra (@swapnadeepmohapatra).</description>
    <link>https://dev.to/swapnadeepmohapatra</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F347987%2F6f074c64-4c98-446d-a6bc-9bd1c00478fc.jpeg</url>
      <title>DEV Community: Swapnadeep Mohapatra</title>
      <link>https://dev.to/swapnadeepmohapatra</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/swapnadeepmohapatra"/>
    <language>en</language>
    <item>
      <title>Mastering JavaScript in 30 Days: My Transformational Journey</title>
      <dc:creator>Swapnadeep Mohapatra</dc:creator>
      <pubDate>Wed, 26 Feb 2025 14:52:55 +0000</pubDate>
      <link>https://dev.to/swapnadeepmohapatra/mastering-javascript-in-30-days-my-transformational-journey-29li</link>
      <guid>https://dev.to/swapnadeepmohapatra/mastering-javascript-in-30-days-my-transformational-journey-29li</guid>
      <description>&lt;p&gt;A few months ago, I was frustrated with JavaScript. No matter how many tutorials I watched or articles I read, I couldn’t fully grasp its concepts. Asynchronous programming felt like a mystery, closures confused me, and debugging code felt like an endless struggle. I knew I needed a structured approach—something that would take me from a beginner to a confident developer. &lt;/p&gt;

&lt;p&gt;That’s when I came across the &lt;strong&gt;&lt;a href="https://www.kodekarma.dev/frontend/courses/30-days-of-javascript" rel="noopener noreferrer"&gt;30 Days of JavaScript course&lt;/a&gt;&lt;/strong&gt;. The idea of committing to a daily learning routine intrigued me, so I decided to give it a shot. What followed was a transformational journey that completely changed how I understood JavaScript. &lt;/p&gt;

&lt;h2&gt;
  
  
  What Made This Course a Game-Changer? 🔥
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Step-by-Step Learning Path&lt;/strong&gt; – Each lesson was structured in a way that made even the most complex topics easy to digest.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hands-On Practice&lt;/strong&gt; – Instead of just passively consuming content, I worked on daily coding exercises that solidified my understanding.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Gradual Progression&lt;/strong&gt; – The course started with the fundamentals and gradually introduced advanced concepts, making the transition seamless.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;A Supportive Community&lt;/strong&gt; – Learning alongside others and discussing challenges kept me motivated and accountable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Practical Projects&lt;/strong&gt; – By the end, I had built multiple projects that showcased my skills, reinforcing my confidence.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyiw7e0tf7b7hur9ol37w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyiw7e0tf7b7hur9ol37w.png" alt="Image description" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Key Lessons I Learned 📚
&lt;/h2&gt;

&lt;p&gt;Every day brought a new concept, and by the end of 30 days, I had developed a strong grasp of JavaScript:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Days 1-5&lt;/strong&gt;: JavaScript Basics – Variables, Data Types, Operators, Functions, Scope&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Days 6-10&lt;/strong&gt;: Control Flow – Loops, Conditional Statements, Debugging Techniques&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Days 11-15&lt;/strong&gt;: Data Structures – Arrays, Objects, Higher-Order Functions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Days 16-20&lt;/strong&gt;: DOM Manipulation – Event Handling, Forms, Dynamic UI Updates&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Days 21-25&lt;/strong&gt;: Asynchronous JavaScript – Promises, Async/Await, Fetch API, API Calls&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Days 26-30&lt;/strong&gt;: Advanced JavaScript – Closures, ES6 Features, Local Storage, Performance Optimization&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My Biggest Takeaways ✅
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;JavaScript is not as intimidating as it seems. With the right approach, even the trickiest concepts become manageable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Consistency is the key to mastery. Learning every day, even for a short time, helped me absorb and retain information.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Real-world practice is essential. The more I applied what I learned through projects, the more confident I became.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Who Should Take This Course? 💻
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpuxmx85z7pzbmg0ncru2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpuxmx85z7pzbmg0ncru2.png" alt="Image description" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Beginners looking for a structured, step-by-step guide to learning JavaScript.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Developers who want to brush up on their JavaScript skills and strengthen their foundations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Frontend Enthusiasts eager to build interactive, dynamic web applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Job Seekers &amp;amp; Interview Candidates preparing for coding assessments and technical interviews.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My Advice for JavaScript Learners 🎓
&lt;/h2&gt;

&lt;p&gt;If you’ve been struggling with JavaScript like I was, don’t give up! Find a structured course, stay consistent, and apply your knowledge through coding challenges and projects. In just 30 days, I went from feeling lost to confidently writing and debugging JavaScript code. &lt;/p&gt;

&lt;h3&gt;
  
  
  Ready to Take Your JavaScript Skills to the Next Level?
&lt;/h3&gt;

&lt;p&gt;If my journey resonates with you, I highly recommend checking out &lt;a href="https://www.kodekarma.dev/frontend/courses/30-days-of-javascript" rel="noopener noreferrer"&gt;30 Days of JavaScript&lt;/a&gt;. Commit to it, and in just a month, you’ll see a significant improvement in your JavaScript skills. &lt;/p&gt;

&lt;p&gt;This course transformed my learning experience—maybe it can do the same for you! 🚀&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Performance Metrics - WebPerf#0</title>
      <dc:creator>Swapnadeep Mohapatra</dc:creator>
      <pubDate>Thu, 18 Aug 2022 08:16:09 +0000</pubDate>
      <link>https://dev.to/swapnadeepmohapatra/performance-metrics-webperf0-57hc</link>
      <guid>https://dev.to/swapnadeepmohapatra/performance-metrics-webperf0-57hc</guid>
      <description>&lt;p&gt;You must have visited a lot of websites in your lifetime. And the user experience on the site is&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--D4oMPc27--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xjbe1rswdax9oy0wqcl5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--D4oMPc27--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xjbe1rswdax9oy0wqcl5.png" alt="sometimes maybe good sometimes maybe shit meme" width="634" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Good site performance is sometimes vital for a good user experience (UX). But what is performance, how can it be measured, and how can it be improved? &lt;/p&gt;

&lt;h2&gt;
  
  
  Web Vitals
&lt;/h2&gt;

&lt;p&gt;Web Vitals are the parameters on which a Site’s Performance is measured. Just like in a human body we have vitals like Blood Pressure, Pulse Rate, etc which are essential to know about the performance of a person, we have parameters like &lt;strong&gt;Largest Contentful Paint, First Contentful Paint, Cumulative Layout Shift, First Input Delay,&lt;/strong&gt; etc to measure a website’s performance. &lt;/p&gt;

&lt;h2&gt;
  
  
  Core Web Vitals
&lt;/h2&gt;

&lt;p&gt;Core Web Vitals are the subset of Web Vitals that apply to all web pages. The three Core Web Vitals are: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Largest Contentful Paint (LCP)&lt;/li&gt;
&lt;li&gt;First Input Delay (FID)&lt;/li&gt;
&lt;li&gt;Cumulative Layout Shift (CLS)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These core web vitals are based on the three main aspects of user experience: &lt;strong&gt;Loading, Interactivity&lt;/strong&gt;, and &lt;strong&gt;Visual Stability&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We will be learning these in very detail so here is a brief on them&lt;/p&gt;

&lt;h3&gt;
  
  
  Largest Contentful Paint (LCP)
&lt;/h3&gt;

&lt;p&gt;It is the time taken by the site to load the largest image or text block visible within the viewport of a site. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jnsJRjQ6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ssybvk854zox06o07wgs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jnsJRjQ6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ssybvk854zox06o07wgs.png" alt="Largest Contentful Paint" width="171" height="150"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  First Input Delay (TID)
&lt;/h3&gt;

&lt;p&gt;It is the time from when a user first interacts with a page (i.e. click a link, tap on a button) to the time when the site is able to begin processing event handlers in response to that interaction.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LrmHJhl1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9m5rsee5etc8pxu5eyk4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LrmHJhl1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9m5rsee5etc8pxu5eyk4.png" alt="First Input Delay" width="171" height="150"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Cumulative Layout Shift (CLS)
&lt;/h3&gt;

&lt;p&gt;You might have seen in some sites that the banner or the navbar is not rendered in the first go and is rendered afterward which causes the components below it to shift. CLS is a measure of that layout shift. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dMllLfCy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/67fla27w3uxe2b4gguvq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dMllLfCy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/67fla27w3uxe2b4gguvq.png" alt="Cumulative Layout Shift" width="171" height="150"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  How is the core web vitals measured?
&lt;/h2&gt;

&lt;p&gt;They can be measured by a variety of tools. Some of the most popular ones are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It can be measured by a tool present in the chrome browser itself known as Lighhouse. Or it can be installed as a &lt;a href="https://chrome.google.com/webstore/detail/lighthouse/blipmdconlkpinefehnmjammfjpmpbjk?hl=en"&gt;browser extension&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;It can be also measured through &lt;a href="https://pagespeed.web.dev/"&gt;PageSpeed Insights&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;There is also a javascript library known as &lt;a href="https://github.com/GoogleChrome/web-vitals"&gt;web-vitals&lt;/a&gt; which can be also used.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Example of how Web Vitals looks like
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nljWXiiI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qho6sotop2p9r9s5tz7f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nljWXiiI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qho6sotop2p9r9s5tz7f.png" alt="example of web vitals measurement" width="880" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the measurement of my portfolio site. &lt;a href="http://www.swapnadeep.com"&gt;swapandeep.com&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Connect with me
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;For more awesome JS or WebDev related blogs &lt;a href="https://dev.to/swapnadeepmohapatra"&gt;check out my profile&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/swapnadeep-mohapatra-11b371159/"&gt;LinkedIn&lt;/a&gt; &lt;a href="https://www.swapnadeep.com/"&gt;My Portfolio&lt;/a&gt; &lt;a href="https://www.twitter.com/swapnadeeptukk/"&gt;Twitter&lt;/a&gt; &lt;a href="https://www.instagram.com/swapnadeep_mohapatra/"&gt;Instagram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Image credits: &lt;a href="https://web.dev/"&gt;web.dev&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>webperf</category>
      <category>performance</category>
      <category>javascript</category>
    </item>
    <item>
      <title>.map() Polyfill</title>
      <dc:creator>Swapnadeep Mohapatra</dc:creator>
      <pubDate>Sun, 29 Aug 2021 17:21:35 +0000</pubDate>
      <link>https://dev.to/swapnadeepmohapatra/map-polyfill-5b84</link>
      <guid>https://dev.to/swapnadeepmohapatra/map-polyfill-5b84</guid>
      <description>&lt;h2&gt;
  
  
  What is a polyfill?
&lt;/h2&gt;

&lt;p&gt;Polyfill is code that implements a feature on web browsers that is expected to be provided by the browser natively but is not available. The developer uses one's logic to implement the solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is .map()
&lt;/h2&gt;

&lt;p&gt;It is an array function that is used to iterate over an array and create a new array with the results of the calling of the function. This comes in handy when we don't want to implement the for loop from scratch and want to modify all the elements of the array in the same way, hence saving a lot of time as well as some lines of code.&lt;/p&gt;

&lt;p&gt;The function is applied in an array and takes in another function as a parameter (known as callback function). In the callback function's parameters &lt;strong&gt;the current element of the array&lt;/strong&gt;, &lt;strong&gt;index&lt;/strong&gt; , and &lt;strong&gt;the complete array&lt;/strong&gt; are passed. They same way it happens in the &lt;strong&gt;&lt;em&gt;.forEach()&lt;/em&gt;&lt;/strong&gt; function.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;.map()&lt;/code&gt; is very similar to that of &lt;code&gt;.forEach()&lt;/code&gt;. But instead of returning the items, &lt;code&gt;.map()&lt;/code&gt; returns the a new array by modifying the existing elements. (the old array doesn't get changed)&lt;/p&gt;

&lt;h2&gt;
  
  
  Writing the Polyfill
&lt;/h2&gt;

&lt;p&gt;We will be iterating over an array of some listed companies in NSE and adding the prefix of "NSE:" before every stock.&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;var&lt;/span&gt; &lt;span class="nx"&gt;stocks&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;COLPAL&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ITC&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;IOC&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;NHPC&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;INFY&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Firstly let's try running the native &lt;code&gt;.map()&lt;/code&gt;&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="nx"&gt;nseStocks&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;stocks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;stock&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;`NSE: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;stock&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;nseStocks&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;// ["NSE: COLPAL", "NSE: ITC", "NSE: IOC", "NSE: NHPC", "NSE: INFY"]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So, now let's write the polyfill and add the map function to the prototype of Array.&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="nb"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;myMap&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;callback&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;newArray&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;
  &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;newArray&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;callback&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;newArray&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now let's try running our polyfill.&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="nx"&gt;nseStocks&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;stocks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;myMap&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;stock&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;`NSE: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;stock&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;nseStocks&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;// ["NSE: COLPAL", "NSE: ITC", "NSE: IOC", "NSE: NHPC", "NSE: INFY"]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Connect with me
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;For more &lt;strong&gt;&lt;em&gt;awesome&lt;/em&gt;&lt;/strong&gt; JS or WebDev related blogs &lt;a href="https://dev.to/swapnadeepmohapatra/"&gt;check out my profile&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/swapnadeep-mohapatra-11b371159/"&gt;LinkedIn&lt;/a&gt; &lt;a href="https://www.swapnadeep.com/"&gt;My Portfolio&lt;/a&gt; &lt;a href="https://www.twitter.com/swapnadeeptukk/"&gt;Twitter&lt;/a&gt; &lt;a href="https://www.instagram.com/swapnadeep_mohapatra/"&gt;Instagram&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>functional</category>
    </item>
    <item>
      <title>.forEach() Polyfill</title>
      <dc:creator>Swapnadeep Mohapatra</dc:creator>
      <pubDate>Wed, 18 Aug 2021 12:20:38 +0000</pubDate>
      <link>https://dev.to/swapnadeepmohapatra/foreach-polyfill-13ll</link>
      <guid>https://dev.to/swapnadeepmohapatra/foreach-polyfill-13ll</guid>
      <description>&lt;h2&gt;
  
  
  What is a polyfill?
&lt;/h2&gt;

&lt;p&gt;Polyfill is code that implements a feature on web browsers that is expected to be provided by the browser natively but is not available. The developer uses one's logic to implement the solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is .forEach()
&lt;/h2&gt;

&lt;p&gt;It is an array function that is used to iterate over an array. This function comes in handy when we don't want to implement the for loop from scratch, hence saving a lot of time as well as some lines of code.&lt;/p&gt;

&lt;p&gt;The function is applied in an array and takes in another function as a parameter (known as callback function). In the callback function's parameters &lt;strong&gt;the current element of the array&lt;/strong&gt;, &lt;strong&gt;index&lt;/strong&gt; , and &lt;strong&gt;the complete array&lt;/strong&gt; are passed. &lt;/p&gt;

&lt;h2&gt;
  
  
  Writing the Polyfill
&lt;/h2&gt;

&lt;p&gt;We will be iterating over an array of some listed companies in NSE.&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;var&lt;/span&gt; &lt;span class="nx"&gt;nseStocks&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;PIDILITIND&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ASIANPAINT&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ZOMATO&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;RELIANCE&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;INFY&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Firstly let's try running the native &lt;code&gt;.forEach()&lt;/code&gt;&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="nx"&gt;nseStocks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;stock&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;stock&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="c1"&gt;// PIDILITIND&lt;/span&gt;
&lt;span class="c1"&gt;// ASIANPAINT&lt;/span&gt;
&lt;span class="c1"&gt;// ZOMATO&lt;/span&gt;
&lt;span class="c1"&gt;// RELIANCE&lt;/span&gt;
&lt;span class="c1"&gt;// INFY&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So, we will be adding the forEach function to the prototype of &lt;code&gt;Array&lt;/code&gt;.&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="nb"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;myForEach&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;callback&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;callback&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now let's try running our polyfill.&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="nx"&gt;nseStocks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;myForEach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;stock&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;stock&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="c1"&gt;// PIDILITIND&lt;/span&gt;
&lt;span class="c1"&gt;// ASIANPAINT&lt;/span&gt;
&lt;span class="c1"&gt;// ZOMATO&lt;/span&gt;
&lt;span class="c1"&gt;// RELIANCE&lt;/span&gt;
&lt;span class="c1"&gt;// INFY&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Connect with me
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;For more &lt;strong&gt;&lt;em&gt;awesome&lt;/em&gt;&lt;/strong&gt; JS or WebDev related blogs &lt;a href="https://dev.to/swapnadeepmohapatra/"&gt;check out my profile&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/swapnadeep-mohapatra-11b371159/"&gt;LinkedIn&lt;/a&gt; &lt;a href="https://www.swapnadeep.com/"&gt;My Portfolio&lt;/a&gt; &lt;a href="https://www.twitter.com/swapnadeeptukk/"&gt;Twitter&lt;/a&gt; &lt;a href="https://www.instagram.com/swapnadeep_mohapatra/"&gt;Instagram&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>functional</category>
    </item>
    <item>
      <title>How I landed a Software Developer job at the age 16</title>
      <dc:creator>Swapnadeep Mohapatra</dc:creator>
      <pubDate>Mon, 01 Jun 2020 07:36:43 +0000</pubDate>
      <link>https://dev.to/swapnadeepmohapatra/how-i-landed-a-software-developer-job-at-the-age-16-3cgb</link>
      <guid>https://dev.to/swapnadeepmohapatra/how-i-landed-a-software-developer-job-at-the-age-16-3cgb</guid>
      <description>&lt;h2&gt;
  
  
  How it began
&lt;/h2&gt;

&lt;p&gt;It was 14th December 2017 when I first installed Android Studio in my PC. Back then I didn’t understand a single line of code, was really overwhelmed to see such syntax and immediately shut it. Fast forward to March 2018, I took an Android Development Course from Udacity and my programing journey started from that day on. To be honest, Udacity’s simplified courses helped me overcome my fear of code and I was able to try things on my own. I also learnt Java and a bit of GitHub &amp;amp; Git from another website called LearnCodeOnline.&lt;/p&gt;

&lt;p&gt;Later that year I started working with IoT for one of my school projects and got the opportunity to travel across the country displaying my project and winning many nation level competitions as well. This gave me the confidence to explore more and soon I started to code as a hobby.&lt;br&gt;
Around March 2019 I started learning JavaScript, I really like that language – it is simple and the most important thing is that we do not need to declare the type. What also fascinated me was that we can develop pretty much everything with JavaScript. After completing JavaScript, I took a React-Native course from LCO which was pretty awesome. It was the first time I used JavaScript to develop products.&lt;/p&gt;

&lt;h2&gt;
  
  
  Experience with freelance
&lt;/h2&gt;

&lt;p&gt;In the summer of 2019, after learning React-Native, JavaScript and Android Development I thought to get my hands on some freelance projects. I started with supporting some college projects, gained a good initial experience, and gradually moved towards complex projects. Back then I wasn’t aware of the monetary value of this kind of work. I remember having worked on an Android project that had almost 20K lines of code with database, GPS, Notifications and a whole lot of other things, for INR 600. However, I learnt a lot from these projects. I faced many challenges while debugging that improved my debugging skills, and gave me a kick start to work with a real project. &lt;/p&gt;

&lt;h2&gt;
  
  
  #TeamTanay
&lt;/h2&gt;

&lt;p&gt;After June 2019, I didn’t get much time to code, as I had to study for my 10th board exams. One day I came across a particular video on Instagram where a Microsoft employee, Tanay Pratap was talking about the gaps in our college education system that really touched my heart. I followed him on social media and started learning React from his YouTube videos. It was through his channel that I got to know React is trending in the web world. Coding in React is pretty similar to React-Native and as I have a bit of experience in React-Native, it helped me understand the concepts of React to a great deal. Within a week I was quite comfortable with React.&lt;/p&gt;

&lt;p&gt;Finally after my board exams were over in March 2020, I came across the #TeamTanayJobChallenge where one has to build 5 projects, 3 blogs and get 2 reviews in order to get a job interview. I thought of giving it a try to understand the tech world and to assess myself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting into MERN stack
&lt;/h2&gt;

&lt;p&gt;I studied full stack development in MERN from an LCO course, and started with building an e-Commerce site that taught me a lot. I got to work with payment gateways and understood how file structure works in big apps.&lt;/p&gt;

&lt;p&gt;Once I had a solid knowledge in MERN, I thought of building clone of big apps as a learning experience. I started with Tinder whose swiping cards feature is cool. I came up with an app named TinDev where developers can left or right swipe other developers and can collaborate based on their coding preferences. It turned out to be quite good with 160+ users. &lt;/p&gt;

&lt;p&gt;Likewise, I built a clone of YouTube, called DevTube which has over 500 views. Here I worked with uploading files, playing views, handling likes, dislikes, comments, subscription and many other things. &lt;/p&gt;

&lt;p&gt;With different projects I built, I used different CSS frameworks so that I get to work with a variety of CSS flavors. &lt;/p&gt;

&lt;h2&gt;
  
  
  Getting my job interview
&lt;/h2&gt;

&lt;p&gt;After successfully completing 5P 3B 2R as part of the #TeamTanayJobChallenge, Tanay forwarded my profile to one of the hiring partners, he liked it and that’s how I got my first interview.&lt;/p&gt;

&lt;p&gt;It was not a regular interview where the recruiter asks about data structures, algorithms and other technical questions. Instead, I was given a Figma UI design and asked to code in React and submit. My code underwent some code reviews, I was suggested some changes which I addressed and I was hired. Although it seems simple, the whole process was unknown to me, I ended up doing quite a few typos and forgot to adhere to the best practices, but later it was all taken care of.&lt;/p&gt;

&lt;h2&gt;
  
  
  What do I do?
&lt;/h2&gt;

&lt;p&gt;I am working as a Frontend React Developer, and currently developing an application dashboard that will be managed by the end consumers. &lt;/p&gt;

&lt;p&gt;While adapting to this new atmosphere, I am learning a lot from the day to day challenges, and getting to work on new technologies (such as SASS). Overall, I am enjoying this whole experience and look forward to many such opportunities that will strengthen my skills and help me realize my goals.&lt;/p&gt;

&lt;h2&gt;
  
  
  Connect with me
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/swapnadeep-mohapatra-11b371159/"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.swapnadeep.com/"&gt;My Portfolio&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://projects.swapnadeep.com/"&gt;My Projects&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/swapnadeep_mohapatra/"&gt;Instagram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/swapnadeeptukk"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>reactnative</category>
      <category>challenge</category>
    </item>
    <item>
      <title>useEffect()- React Hooks</title>
      <dc:creator>Swapnadeep Mohapatra</dc:creator>
      <pubDate>Thu, 14 May 2020 08:16:31 +0000</pubDate>
      <link>https://dev.to/swapnadeepmohapatra/useeffect-react-hooks-25fb</link>
      <guid>https://dev.to/swapnadeepmohapatra/useeffect-react-hooks-25fb</guid>
      <description>&lt;h1&gt;
  
  
  What is React Hooks?
&lt;/h1&gt;

&lt;p&gt;Hooks are functions that let you use the React state and lifecycle events in a functional component. Hooks won't work inside classes. They came into existence to solve many problems created by the class-based components. In class, it was hard to reuse stateful logic between components. But in function, hooks allow us to reuse stateful logic without changing the component hierarchy. &lt;/p&gt;

&lt;p&gt;There are many Hooks. Two of the most commonly used are &lt;strong&gt;State Hook&lt;/strong&gt; and &lt;strong&gt;Effect Hook&lt;/strong&gt;. In this post, we will be taking a look at the Effect Hook.&lt;/p&gt;

&lt;h1&gt;
  
  
  What is Effect Hook?
&lt;/h1&gt;

&lt;p&gt;If you have used class-based components in react then you might be knowing about the Lifecycle events like componentDidMount, componentDidUpdate, and componentWillUnmount. The Effect Hook, useEffect, serves the same purpose as these but unified into a single API. &lt;/p&gt;

&lt;h1&gt;
  
  
  How to use Effect Hook?
&lt;/h1&gt;

&lt;p&gt;Now we will be using the mighty Effect Hook. &lt;/p&gt;

&lt;h4&gt;
  
  
  importing useEffect
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useEffect&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Calling on every render
&lt;/h4&gt;

&lt;p&gt;This function will be called on every render of the component.&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="c1"&gt;// called on every render&lt;/span&gt;
&lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;callMeEveryRender&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
    &lt;span class="c1"&gt;// do something&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Calling on Mount
&lt;/h4&gt;

&lt;p&gt;This function will be called when the component will be mounted.&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="c1"&gt;// called only on mount&lt;/span&gt;
&lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;callMeOnMount&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
    &lt;span class="c1"&gt;// do something&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Calling when value changes
&lt;/h4&gt;

&lt;p&gt;This function will be called when the value &lt;em&gt;count&lt;/em&gt; changes.&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="c1"&gt;// called when count changes&lt;/span&gt;
&lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;callMeOnCountChanges&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
    &lt;span class="c1"&gt;// do something&lt;/span&gt;
&lt;span class="p"&gt;},[&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Calling and Cleaning up on every render
&lt;/h4&gt;

&lt;p&gt;This function will be called on every render of the component and perform the cleanup.&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="c1"&gt;// called when count changes&lt;/span&gt;
&lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;callMeAndCleanupEveryRender&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
        &lt;span class="c1"&gt;// do something&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Calling on Mount and cleanup before Unmount
&lt;/h4&gt;

&lt;p&gt;This function will be called when the component will be mounted and perform the cleanup before the component gets unmounted.&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="c1"&gt;// called only on mount and cleanup before unmount&lt;/span&gt;
&lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;callMeOnMountAndCleanupBeforeUnmount&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
        &lt;span class="c1"&gt;// do something&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;},[]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Some rules of useEffect
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Don’t call Hooks inside loops, conditions, or nested functions. Only call Hooks at the top level.&lt;/li&gt;
&lt;li&gt;Don’t call Hooks from regular JavaScript functions. Only call Hooks from React function components.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And don't break the rules, if you will then you will be in great trouble and may get into infinity loops.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F800%2F1%2A7_VMV9w0KdoOeHgNk_zn_g.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F800%2F1%2A7_VMV9w0KdoOeHgNk_zn_g.jpeg" alt="Rules Broken"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;We have seen how to use useEffect in a React Function Component &lt;/p&gt;

&lt;p&gt;I hope this helped you with understanding useEffect!&lt;br&gt;
Thanks for reading!&lt;br&gt;
&lt;strong&gt;Happy Coding!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>reactnative</category>
      <category>javascript</category>
      <category>functional</category>
    </item>
    <item>
      <title>How to get started with React Router</title>
      <dc:creator>Swapnadeep Mohapatra</dc:creator>
      <pubDate>Mon, 04 May 2020 16:07:43 +0000</pubDate>
      <link>https://dev.to/swapnadeepmohapatra/how-to-get-started-with-react-router-gck</link>
      <guid>https://dev.to/swapnadeepmohapatra/how-to-get-started-with-react-router-gck</guid>
      <description>&lt;h3&gt;
  
  
  What is React Router?
&lt;/h3&gt;

&lt;p&gt;Before learning about React Router let's see whats react and why we need to use react-router?&lt;/p&gt;

&lt;h2&gt;
  
  
  React
&lt;/h2&gt;

&lt;p&gt;React is a JavaScript framework that is used to make SPAs (Single Page Application).&lt;/p&gt;

&lt;h3&gt;
  
  
  Single Page Application (SPAs)
&lt;/h3&gt;

&lt;p&gt;It's a website that has only one page. It re-renders its content in response to actions without refreshing the page. Simply, You don’t need to refresh the whole page when you click on any link.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why to use react-router?
&lt;/h3&gt;

&lt;p&gt;As the page won't reload so how to change pages? So, here comes react-router which is used to move between different pages of the application without refreshing the page. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;So, I hope now you know why we use react-router.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Let's now start by creating a react project and use react-router in that. &lt;/p&gt;

&lt;h1&gt;
  
  
  Create a New React Application
&lt;/h1&gt;

&lt;p&gt;Firstly create a new react application and call it routerapp. Run the command below in your command prompt/terminal/git bash.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;create-react-app routerapp&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now, you will see a new folder created and inside the file, you can see something similar to this. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Ffirebasestorage.googleapis.com%2Fv0%2Fb%2Fswapnadeep-blog.appspot.com%2Fo%2FAnnotation%25202020-05-04%2520201050.png%3Falt%3Dmedia%26token%3D12ccaade-8adf-4e5f-924f-059867408dc6" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Ffirebasestorage.googleapis.com%2Fv0%2Fb%2Fswapnadeep-blog.appspot.com%2Fo%2FAnnotation%25202020-05-04%2520201050.png%3Falt%3Dmedia%26token%3D12ccaade-8adf-4e5f-924f-059867408dc6" alt="image1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now navigate into the folder using the below command. &lt;/p&gt;

&lt;p&gt;&lt;code&gt;cd routerapp&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Install React Router Dom
&lt;/h1&gt;

&lt;p&gt;Now it's time to install the react-router-dom NPM package into the project. To do run the below command. &lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install react-router-dom&lt;/code&gt;&lt;br&gt;
or&lt;br&gt;
&lt;code&gt;yarn add react-router-dom&lt;/code&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Let's run the app
&lt;/h1&gt;

&lt;p&gt;Now you can run the app using the below command.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm start&lt;/code&gt;&lt;br&gt;
or&lt;br&gt;
&lt;code&gt;yarn start&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;After a while, you can see the browser popping up and showing a site at &lt;code&gt;localhost:3000&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;And it looks something like this.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fpracticaldev%2Fimage%2Ffetch%2Fs--0eTKEdkr--%2Fc_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880%2Fhttps%3A%2F%2Fblog.crowdbotics.com%2Fcontent%2Fimages%2F2019%2F05%2Fss1-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fpracticaldev%2Fimage%2Ffetch%2Fs--0eTKEdkr--%2Fc_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880%2Fhttps%3A%2F%2Fblog.crowdbotics.com%2Fcontent%2Fimages%2F2019%2F05%2Fss1-1.png" alt="image2"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Open the project in Editor
&lt;/h1&gt;

&lt;p&gt;Open the project in your editor or IDE of your choice and open &lt;code&gt;app.js&lt;/code&gt; from the &lt;code&gt;src&lt;/code&gt; folder.&lt;/p&gt;

&lt;p&gt;Now delete the previously written code and let's write it from the scratch.&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="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;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;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Now let's add a new route
&lt;/h1&gt;

&lt;p&gt;To create the first route in our app, let us import &lt;code&gt;BrowserRouter&lt;/code&gt; from &lt;code&gt;react-router-dom&lt;/code&gt; library.&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="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;BrowserRouter&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Route&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react-router-dom&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now create a new file named &lt;code&gt;home.js&lt;/code&gt; and the home page should have a logic just like this.&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;Home&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;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;Home&lt;/span&gt; &lt;span class="nx"&gt;Page&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;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now let's import the home page into our App.js&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="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Home&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./home&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now it's time to create a route, for that we will be using  from the react-router-dom. A  has a prop called path which is always matched with the location of the app. On the basis of this prop, the desired component gets rendered.&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;App&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;BrowserRouter&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Route&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="nx"&gt;exact&lt;/span&gt; &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;Home&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/BrowserRouter&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will render the staring page as the home component. &lt;/p&gt;

&lt;p&gt;Now, if we visit the site we will see the Home component being rendered.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Ffirebasestorage.googleapis.com%2Fv0%2Fb%2Fswapnadeep-blog.appspot.com%2Fo%2FAnnotation%25202020-05-04%2520205244.png%3Falt%3Dmedia%26token%3Dd6dc6ca3-579b-4fec-9b3a-0f122bfc3600" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Ffirebasestorage.googleapis.com%2Fv0%2Fb%2Fswapnadeep-blog.appspot.com%2Fo%2FAnnotation%25202020-05-04%2520205244.png%3Falt%3Dmedia%26token%3Dd6dc6ca3-579b-4fec-9b3a-0f122bfc3600" alt="image3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now let's add another as the second route and let's name it About.&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="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;About&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;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;About&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;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;About&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now let's add this route to the App.js&lt;/p&gt;

&lt;p&gt;The App.js will look something like this.&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="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;BrowserRouter&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Route&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-router-dom&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Home&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./Home&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;About&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./About&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;BrowserRouter&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Route&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;exact&lt;/span&gt; &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;Home&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Route&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/about&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;exact&lt;/span&gt; &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;About&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/BrowserRouter&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If we go to &lt;code&gt;localhost:3000/about&lt;/code&gt;. We will something like this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Ffirebasestorage.googleapis.com%2Fv0%2Fb%2Fswapnadeep-blog.appspot.com%2Fo%2FAnnotation%25202020-05-04%2520210056.png%3Falt%3Dmedia%26token%3D13ebdc86-c5f4-4f91-8f5f-4769c27c410e" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Ffirebasestorage.googleapis.com%2Fv0%2Fb%2Fswapnadeep-blog.appspot.com%2Fo%2FAnnotation%25202020-05-04%2520210056.png%3Falt%3Dmedia%26token%3D13ebdc86-c5f4-4f91-8f5f-4769c27c410e" alt="image4"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Add Navigation
&lt;/h1&gt;

&lt;p&gt;Now let's add a navbar so that we can easily navigate through these pages.&lt;/p&gt;

&lt;p&gt;Firstly let's import &lt;code&gt;NavLink&lt;/code&gt; from &lt;code&gt;react-router-dom&lt;/code&gt;&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="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;BrowserRouter&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Route&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;NavLink&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-router-dom&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;Now let's wrap the routes inside a div and add a navbar on the top.&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;App&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;BrowserRouter&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;nav&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;NavLink&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Home&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/NavLink&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;NavLink&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/about&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;About&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/NavLink&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;                &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/nav&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;                &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Route&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;exact&lt;/span&gt; &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;Home&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;                &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Route&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/about&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;exact&lt;/span&gt; &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;About&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/BrowserRouter&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It will look something like this. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Ffirebasestorage.googleapis.com%2Fv0%2Fb%2Fswapnadeep-blog.appspot.com%2Fo%2FAnnotation%25202020-05-04%2520211532.png%3Falt%3Dmedia%26token%3Ddd2a59e2-00bd-43e8-bc65-6a93d97ecd66" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Ffirebasestorage.googleapis.com%2Fv0%2Fb%2Fswapnadeep-blog.appspot.com%2Fo%2FAnnotation%25202020-05-04%2520211532.png%3Falt%3Dmedia%26token%3Ddd2a59e2-00bd-43e8-bc65-6a93d97ecd66" alt="image5"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can add a bit of styling to make it look a bit beautiful.&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="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;BrowserRouter&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Route&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;NavLink&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-router-dom&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Home&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./Home&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;About&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./About&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;BrowserRouter&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{{&lt;/span&gt; &lt;span class="na"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="p"&gt;}}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;nav&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;NavLink&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{{&lt;/span&gt; &lt;span class="na"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="p"&gt;}}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
                        &lt;span class="nx"&gt;Home&lt;/span&gt;
                    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/NavLink&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;
                    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;NavLink&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/about&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{{&lt;/span&gt; &lt;span class="na"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="p"&gt;}}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
                        &lt;span class="nx"&gt;About&lt;/span&gt;
                    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/NavLink&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;                &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/nav&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;                &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Route&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;exact&lt;/span&gt; &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;Home&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;                &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Route&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/about&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;exact&lt;/span&gt; &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;About&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/BrowserRouter&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The app looks now a bit better. You can navigate between the pages by clicking on the links.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Ffirebasestorage.googleapis.com%2Fv0%2Fb%2Fswapnadeep-blog.appspot.com%2Fo%2FAnnotation%25202020-05-04%2520211532.png%3Falt%3Dmedia%26token%3Ddd2a59e2-00bd-43e8-bc65-6a93d97ecd66" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Ffirebasestorage.googleapis.com%2Fv0%2Fb%2Fswapnadeep-blog.appspot.com%2Fo%2FAnnotation%25202020-05-04%2520211532.png%3Falt%3Dmedia%26token%3Ddd2a59e2-00bd-43e8-bc65-6a93d97ecd66" alt="image6"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  The app is now completed. It's time for some theory.
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;exact&lt;/strong&gt;&lt;br&gt;
This will make the path to match exactly to assigned value. For example, in about route, it will be matched on &lt;code&gt;/about&lt;/code&gt; not &lt;code&gt;/about/me&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;path&lt;/strong&gt;&lt;br&gt;
Inside the path, the path that will link to the component is assigned. For example, &lt;code&gt;/about&lt;/code&gt; is assigned to go to the assigned component.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;component&lt;/strong&gt;&lt;br&gt;
Here the component that is to be rendered is passed. For example, &lt;code&gt;About&lt;/code&gt; is passed if the &lt;code&gt;About&lt;/code&gt; component is to be rendered.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;to&lt;/strong&gt;&lt;br&gt;
Here the path of the component that is to be rendered on click is passed. For example, &lt;code&gt;/about&lt;/code&gt; is passed if on click of the NavLink, 'about' is to be rendered.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;We have seen how to get started with React Router and enable routing in a React SPA. &lt;/p&gt;

&lt;p&gt;I hope this helped you with understanding React Routing!&lt;br&gt;
Thanks for reading!&lt;br&gt;
&lt;strong&gt;Happy Coding!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>reactnative</category>
      <category>javascript</category>
    </item>
    <item>
      <title>What is Redux?</title>
      <dc:creator>Swapnadeep Mohapatra</dc:creator>
      <pubDate>Mon, 04 May 2020 14:04:20 +0000</pubDate>
      <link>https://dev.to/swapnadeepmohapatra/what-is-redux-42m1</link>
      <guid>https://dev.to/swapnadeepmohapatra/what-is-redux-42m1</guid>
      <description>&lt;h3&gt;
  
  
  Everyone on this planet refers Redux to be a state management JavaScript Library but what it is exactly.
&lt;/h3&gt;

&lt;p&gt;Redux is obviously a State Management Library. With this, the state of the application is stored aside in a store and every component can access this from this Central Store.&lt;/p&gt;

&lt;h1&gt;
  
  
  Why you need state management?
&lt;/h1&gt;

&lt;p&gt;In apps of most libraries like React, React Native, Angular, etc data travels from one component to another one step at a time. This may be easy for an app having fewer components like 5 or 10 components. But when an app has like 50 or 100 components then it becomes really confusing to track how information is passed from one to another and thus making debugging really tough.&lt;/p&gt;

&lt;p&gt;On the other hand with Redux. When a component does some changes that go straight to our store from where the change is then communicated to all other components. Therefore, it makes it debugging easy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XLaGKERH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/1%2AkhTBgbVaSlE_r8rH8MT9Ow.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XLaGKERH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/1%2AkhTBgbVaSlE_r8rH8MT9Ow.png" alt="image1" width="880" height="495"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Green is the components that updates and blue is the central store&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  How Redux Works?
&lt;/h1&gt;

&lt;p&gt;Before knowing how it works let’s see a real like example so that we can relate to it.&lt;/p&gt;

&lt;p&gt;If in a country people are unhappy with some law and they want to make some changes, they cannot do that directly. For that, there are some procedures.&lt;/p&gt;

&lt;p&gt;Firstly, people make a protest for a law to be changed. They make their appeal to the ministers who are in power. The ministers take that for debates into the parliament and after that, the law is amended in the parliament. Then the parliament notifies the press so that they can notify the people about the changes made.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--t3AXGz34--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/1%2AjjDTgd2MgMWS9YkOaNuCQg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--t3AXGz34--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/1%2AjjDTgd2MgMWS9YkOaNuCQg.png" alt="image2" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Similarly, Redux works.&lt;/p&gt;

&lt;p&gt;Firstly, a component dispatches an action. The action goes to the reducers. The reducers make changes in the Central Store. The Central Store triggers subscriptions that pass updated States as Props to the component about the changes made.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jch5zRy0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/1%2AEnCgblCBejhyg3DjjtPUHQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jch5zRy0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/1%2AEnCgblCBejhyg3DjjtPUHQ.png" alt="image3" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Here what is what?
&lt;/h3&gt;

&lt;p&gt;Components are the People. Dispatches are just like Protests. Actions are the laws. Reducers work as ministers. Here Central Store is the Parliament. Triggers are just like notifications. Subscriptions are the Press. And finally, the updated States As Props are passed like the news is passed.&lt;/p&gt;

&lt;h1&gt;
  
  
  Learning about the Jargons
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Actions
&lt;/h3&gt;

&lt;p&gt;They are what we want to do. They are the events and the only way to send data to the store. For example, “add a number”&lt;/p&gt;

&lt;h3&gt;
  
  
  Reducer
&lt;/h3&gt;

&lt;p&gt;They are the functions that tell how the state should change in response to each action. For example, “our state should be higher than our existing state”&lt;/p&gt;

&lt;h3&gt;
  
  
  Store
&lt;/h3&gt;

&lt;p&gt;It is the one and only place where the store state of the application is present. It brings everything together. For example, “it contains the number”.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;We have seen how Redux works and what redux is exactly. We will further see Redux in action in some other blog.&lt;/p&gt;

&lt;p&gt;Redux is used in some large scale applications. Without Redux, your apps will also work but it is better to get use Redux in your apps as it has its own benefits. &lt;br&gt;
But you should not go on adding Redux to all of your apps.&lt;/p&gt;

&lt;p&gt;I hope this helped you with understanding Redux! Thanks for reading! Happy Coding!&lt;/p&gt;

</description>
      <category>redux</category>
      <category>react</category>
      <category>reactnative</category>
    </item>
    <item>
      <title>19 App Ideas for the Job Challenge</title>
      <dc:creator>Swapnadeep Mohapatra</dc:creator>
      <pubDate>Mon, 04 May 2020 13:49:18 +0000</pubDate>
      <link>https://dev.to/swapnadeepmohapatra/19-app-ideas-for-the-job-challenge-poo</link>
      <guid>https://dev.to/swapnadeepmohapatra/19-app-ideas-for-the-job-challenge-poo</guid>
      <description>&lt;h3&gt;
  
  
  Here are some APIs and some app ideas that you can try for making projects and those can help you get a job or an internship.
&lt;/h3&gt;

&lt;p&gt;All the data has been collected from the live stream done by Tanay Pratap and Sarosh Mohammad in the Instagram account of &lt;a href="https://www.instagram.com/tanaypratap/"&gt;Tanay&lt;/a&gt;. You can get the list of all this API from the resources section given below.&lt;/p&gt;

&lt;h2&gt;
  
  
  Clarifai API
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;It offers image and video recognition as a service. It can recognize Celebrities, food, travel, face, NSFW and a lot more.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.clarifai.com/"&gt;https://www.clarifai.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can use this API to make a &lt;strong&gt;gallery app&lt;/strong&gt; that can tag your photos and you can use it to easily navigate to the right photo by searching for that tag.&lt;/p&gt;

&lt;p&gt;This can be also helped in a nutrition app where you can give it some photos and this API can get you the food name and type and combining with other APIs you can make the user know about the nutrition value of the app. This can turn out to be an awesome &lt;strong&gt;Diet App&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open Weather Weather API
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;It offers Current &amp;amp; Forecast weather data collection. Access current weather data for any location including over 200,000 cities.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openweathermap.org/"&gt;https://openweathermap.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This can be married with a &lt;strong&gt;travel booking app&lt;/strong&gt; so that you can get some really good suggestions about the weather of the location for which you are booking tickets for your travel period so that you can choose whether to go or not.&lt;/p&gt;

&lt;p&gt;It can also turn out to be a great &lt;strong&gt;Chrome Plugin&lt;/strong&gt; that can give you the weather for the location of the period for which you are planning your journey. And you can decide accordingly.&lt;/p&gt;

&lt;h2&gt;
  
  
  JokeAPI
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Can be used to get Programming and Miscellaneous jokes.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://sv443.net/jokeapi/v2"&gt;https://sv443.net/jokeapi/v2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can make an &lt;strong&gt;NPM package&lt;/strong&gt; out of it which can put some good jokes in front of the user while the page loads. This can make the waiting for the page load very interesting. This also may happen that the user stops the page loading to read the joke. 😉&lt;/p&gt;

&lt;p&gt;This can be used in a &lt;strong&gt;chatbot&lt;/strong&gt; which can suggest you put some jokes in the middle of any humorous conversation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Edamam API
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;It offers access to a vast database of Recipes! (Also with Nutrition info for the diet conscious)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.edamam.com/"&gt;https://developer.edamam.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can think of making a product where it challenges a recipe every day to make. Perfect skill to learn while quarantine is going on 😋. This can be a really good &lt;strong&gt;Recipe App&lt;/strong&gt; for the diet conscious people where they can put the nutrition value like the amount calorie, carb, protein, etc and it can suggest some really good recipe.&lt;/p&gt;

&lt;h2&gt;
  
  
  URLTOSCREENSHOT
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;This API gets a screenshot from a webpage. Simply indicate the webpage url, and our API will do the rest. You can also indicate various parameters such as width, height, allocated time, and mobile view settings.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.urltoscreenshot.com/"&gt;http://www.urltoscreenshot.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This can be used in a &lt;strong&gt;blog&lt;/strong&gt; to put some screenshots. In case the page is removed then this can be useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  IndiaStack
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;This provides API support for Aadhaar, eKYC, eSign, UPI and DigitalLocker. API’s for India made for people.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.indiastack.org/"&gt;https://www.indiastack.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This API can be used for &lt;strong&gt;verifying the Aadhar&lt;/strong&gt; number of users. And the use of &lt;strong&gt;UPI&lt;/strong&gt; can not be kept limited.&lt;/p&gt;

&lt;h2&gt;
  
  
  Corona API
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;This lets you get status of affected people, recovered cases and much more., you can access it here&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/pomber/covid19"&gt;https://github.com/pomber/covid19&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can make an &lt;strong&gt;infographic app&lt;/strong&gt; and show the status of this widespread pandemic.&lt;/p&gt;

&lt;h2&gt;
  
  
  languagelayer
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Provides you with JSON API supporting 173 languages, a simple way to automate language detection. You can access it here.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://languagelayer.com/"&gt;https://languagelayer.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This API is useful in interaction with people with other countries whose language you cannot understand. This can be used in a &lt;strong&gt;chatbot&lt;/strong&gt; or can be used in the &lt;strong&gt;chat of multiplayer games&lt;/strong&gt;. In multiplayer games like PUBG where gammers from different countries play together and chat, you can integrate this there and do the live translation of chats.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mailbox Validator:
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;The Single Email Validation API does validation on a single email address and returns all the validation results in either JSON or XML format.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.mailboxvalidator.com/api-single-validation?ref=apilist.fun"&gt;https://www.mailboxvalidator.com/api-single-validation?ref=apilist.fun&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This API can be great while &lt;strong&gt;email validation&lt;/strong&gt;. If the app uses the email for sending subscription emails or newsletter then it can be used greatly for the validation. The user cannot get away by entering a fake email id.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bored
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Provides API with the data of random activities to fight boredom.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.boredapi.com/documentation"&gt;https://www.boredapi.com/documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This can be merged with the &lt;strong&gt;Corona App&lt;/strong&gt; so that you don’t feel bored while the quarantine or self-isolation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Holidays
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Provides API with Historical data regarding holidays.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://holidayapi.com/"&gt;https://holidayapi.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This can be used as a very good &lt;strong&gt;trivia app&lt;/strong&gt;. This can be great if you can be integrated into a &lt;strong&gt;loader&lt;/strong&gt; in booking or planning applications. This is a great thing for engagement in your portfolio or your blog.&lt;/p&gt;

&lt;h2&gt;
  
  
  NASA API
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;They have APIs that return Mars images captured by rovers, APIs for earth pictures from space and an API that returns near-earth objects.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://api.nasa.gov/"&gt;https://api.nasa.gov/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This would be great to make a &lt;strong&gt;wallpaper app&lt;/strong&gt;. Some kind of theme app would be a great app to build around this API.&lt;/p&gt;

&lt;h2&gt;
  
  
  Spotify API
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;It provides API to manage spotify play list, pause, play songs, make playlist and much more&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.spotify.com/documentation/web-api/"&gt;https://developer.spotify.com/documentation/web-api/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This can be used to get a suggestion about some really good music. This can be used as an app that can &lt;strong&gt;suggest music&lt;/strong&gt; based on your mood. You can also give it a piece of music and you can get music out of that.&lt;/p&gt;

&lt;p&gt;This can be an added on top of &lt;strong&gt;Instagram&lt;/strong&gt; to give you music to put on your stories by the analysis of the images in the story.&lt;/p&gt;

&lt;h2&gt;
  
  
  Google Books API
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;By using google book API application can perform full-text searches and retrieve book information, viewability, and eBook availability. It can also manage personal bookshelves.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developers.google.com/books"&gt;https://developers.google.com/books&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This can turn out to be a great &lt;strong&gt;recommendation system&lt;/strong&gt; for books. You can get books based on your likes. You can put genre, past reading history, social profile, and other things and with the help of some AI Engines, you can get the recommendation and then can suggest some really good pieces of books.&lt;/p&gt;

&lt;p&gt;You can also you this to get quotes from a book or the other way around. This can also be turned into a &lt;strong&gt;Chrome Plugin&lt;/strong&gt; where you can get all of the details of the quote, who wrote it, from which book it came from and all other information.&lt;/p&gt;

&lt;h2&gt;
  
  
  PlayerUnknown’s Battlegrounds
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Provides API with data of PUBG players and stats.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.pubg.com/"&gt;https://developer.pubg.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With the help of this, you can develop some &lt;strong&gt;online games like the trump card&lt;/strong&gt;. This can be a stress buster and at the time of quarantine, it can help you get out of boredom.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rick and Morty API
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Information about the characters from the series, “Rick and Morty”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://rickandmortyapi.com/documentation"&gt;https://rickandmortyapi.com/documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With the API of this amazing cartoon series, you can make some &lt;strong&gt;trivia app&lt;/strong&gt;. You can also make an app for &lt;strong&gt;fan stories.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Resources
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://github.com/tanaypratap/teamtanay.jobchallenge.dev/issues/232"&gt;https://github.com/tanaypratap/teamtanay.jobchallenge.dev/issues/232&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/tanaypratap/status/1238738672075165696"&gt;https://twitter.com/tanaypratap/status/1238738672075165696&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  About me
&lt;/h1&gt;

&lt;p&gt;Hey folks, I am Swapnadeep Mohapatra. I just got done with my class 10 this week. I am an Android and Web Developer. I have been coding for the past 2 years. I have done about 6 freelance projects in my vacations. I have won 4 national level science exhibitions for my innovation. I was featured 4 times in newspapers including TOI &amp;amp; Indian Express. I have experience with IoT and I am currently trying my hands with MERN Stack.&lt;/p&gt;

&lt;h3&gt;
  
  
  Connect with me
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/swapnadeep-mohapatra-11b371159/"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.swapnadeep.com/"&gt;My Portfolio&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/swapnadeep_mohapatra/"&gt;Instagram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/swapnadeeptukk"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>challenge</category>
      <category>ideas</category>
      <category>appidea</category>
    </item>
  </channel>
</rss>
