<?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: Jaydeep Pipaliya</title>
    <description>The latest articles on DEV Community by Jaydeep Pipaliya (@itsjp).</description>
    <link>https://dev.to/itsjp</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%2F1347473%2F4e2c8d6c-350b-41ec-9383-96bb71c2e4c3.png</url>
      <title>DEV Community: Jaydeep Pipaliya</title>
      <link>https://dev.to/itsjp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/itsjp"/>
    <language>en</language>
    <item>
      <title>List of Various Hacking Forums 👀</title>
      <dc:creator>Jaydeep Pipaliya</dc:creator>
      <pubDate>Wed, 19 Feb 2025 10:39:08 +0000</pubDate>
      <link>https://dev.to/itsjp/list-of-various-hacking-forums-21bk</link>
      <guid>https://dev.to/itsjp/list-of-various-hacking-forums-21bk</guid>
      <description>

&lt;h1&gt;
  
  
  General Hacking Forums
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;0x00sec&lt;/strong&gt; – &lt;a href="https://0x00sec.org" rel="noopener noreferrer"&gt;0x00sec&lt;/a&gt;: A forum focused on information security and hacking, with an emphasis on technical discussions and research.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hack Forums&lt;/strong&gt; – &lt;a href="https://hackforums.net" rel="noopener noreferrer"&gt;Hack Forums&lt;/a&gt;: One of the oldest and most well-known hacking forums, covering a wide range of topics from programming to penetration testing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Greekhacking&lt;/strong&gt; – &lt;a href="https://greekhacking.gr" rel="noopener noreferrer"&gt;Greekhacking&lt;/a&gt;: A Greek hacking forum with various discussion sections.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Happy Hack&lt;/strong&gt; – &lt;a href="http://happy-hack.net/board" rel="noopener noreferrer"&gt;Happy Hack&lt;/a&gt;: A forum with discussions about hacking and IT.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hackonology&lt;/strong&gt; – &lt;a href="https://hackonology.com/forum" rel="noopener noreferrer"&gt;Hackonology&lt;/a&gt;: A forum dedicated to hacking, information security, and related topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HacksTurkey&lt;/strong&gt; – &lt;a href="https://hacksturkey.com" rel="noopener noreferrer"&gt;HacksTurkey&lt;/a&gt;: A Turkish forum about hacking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Underc0de&lt;/strong&gt; – &lt;a href="https://underc0de.org/foro" rel="noopener noreferrer"&gt;Underc0de&lt;/a&gt;: A Spanish-language community focused on hacking and information security.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Go4Expert&lt;/strong&gt; – &lt;a href="https://www.go4expert.com/forums" rel="noopener noreferrer"&gt;Go4Expert&lt;/a&gt;: A forum for IT professionals and experts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TrainingCircle&lt;/strong&gt; – &lt;a href="https://trainingcircle.in" rel="noopener noreferrer"&gt;TrainingCircle&lt;/a&gt;: A forum for learning in the IT field.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;YouHack&lt;/strong&gt; – &lt;a href="https://www.youhack.ru" rel="noopener noreferrer"&gt;YouHack&lt;/a&gt;: A large Russian-language forum about hacking and information security (also available in English).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nulled&lt;/strong&gt; – &lt;a href="https://www.nulled.to" rel="noopener noreferrer"&gt;Nulled&lt;/a&gt;: A forum for sharing and discussing various software, scripts, and hacking-related materials.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nsane Forums&lt;/strong&gt; – &lt;a href="https://nsaneforums.com" rel="noopener noreferrer"&gt;Nsane Forums&lt;/a&gt;: A forum for discussing various software, cracks, and exploits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory Hackers&lt;/strong&gt; – &lt;a href="https://memoryhackers.org" rel="noopener noreferrer"&gt;Memory Hackers&lt;/a&gt;: A forum dedicated to cheats and hacks in games.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ghostlyhaks&lt;/strong&gt; – &lt;a href="https://ghostlyhaks.com/forum" rel="noopener noreferrer"&gt;Ghostlyhaks&lt;/a&gt;: A forum with discussions on various hacking topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CyberForum RU&lt;/strong&gt; – &lt;a href="https://www.cyberforum.ru" rel="noopener noreferrer"&gt;CyberForum RU&lt;/a&gt;: A Russian-language forum for discussing IT topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SzeneBox&lt;/strong&gt; – &lt;a href="https://www.szenebox.org" rel="noopener noreferrer"&gt;SzeneBox&lt;/a&gt;: A German forum about cracking, software, and related topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Xaker.Name Team&lt;/strong&gt; – &lt;a href="https://xak.guru" rel="noopener noreferrer"&gt;Xaker.Name Team&lt;/a&gt;: A Russian-speaking community focused on hacking.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Data Leak and Darknet Forums
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;BreachForums&lt;/strong&gt; – &lt;a href="https://breached.to" rel="noopener noreferrer"&gt;BreachForums&lt;/a&gt;: A forum for publishing and discussing data leaks, one of the most well-known in this niche.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Leak Forum&lt;/strong&gt; – &lt;a href="https://leakforum.org" rel="noopener noreferrer"&gt;Leak Forum&lt;/a&gt;: A forum for publishing and discussing data leaks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Leak Zone&lt;/strong&gt; – &lt;a href="https://leakzone.net" rel="noopener noreferrer"&gt;Leak Zone&lt;/a&gt;: A forum for publishing and discussing data leaks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DirectLeaks&lt;/strong&gt; – &lt;a href="https://directleaks.to" rel="noopener noreferrer"&gt;DirectLeaks&lt;/a&gt;: A forum for publishing and discussing data leaks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cyber Leaks&lt;/strong&gt; – &lt;a href="https://cyberleaks.to" rel="noopener noreferrer"&gt;Cyber Leaks&lt;/a&gt;: A forum for publishing and discussing data leaks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cyber Nulled&lt;/strong&gt; – &lt;a href="https://cybernulled.com" rel="noopener noreferrer"&gt;Cyber Nulled&lt;/a&gt;: A forum for sharing and discussing software, scripts, and leaks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Darkweb Mafias&lt;/strong&gt; – &lt;a href="https://darkwebmafias.ws" rel="noopener noreferrer"&gt;Darkweb Mafias&lt;/a&gt;: A darknet forum focused on cybercrime.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DarkStash&lt;/strong&gt; – &lt;a href="https://darkstash.com" rel="noopener noreferrer"&gt;DarkStash&lt;/a&gt;: A darknet forum focused on cybercrime.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dark-Time&lt;/strong&gt; – &lt;a href="https://srv2.dark-time.life" rel="noopener noreferrer"&gt;Dark-Time&lt;/a&gt;: A darknet forum focused on cybercrime.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cyberarsenal&lt;/strong&gt; – &lt;a href="https://cyberarsenal.org" rel="noopener noreferrer"&gt;Cyberarsenal&lt;/a&gt;: A forum on the darknet dedicated to cybersecurity and leaks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DrDark&lt;/strong&gt; – &lt;a href="https://drdark.ru" rel="noopener noreferrer"&gt;DrDark&lt;/a&gt;: A Russian-language forum about the darknet and carding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Eternia&lt;/strong&gt; – &lt;a href="https://eternia.to" rel="noopener noreferrer"&gt;Eternia&lt;/a&gt;: A darknet forum focused on data leaks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DarkPro&lt;/strong&gt; – &lt;a href="https://darkpro.net" rel="noopener noreferrer"&gt;DarkPro&lt;/a&gt;: A forum with discussions on the darknet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sinisterly&lt;/strong&gt; – &lt;a href="https://sinister.ly" rel="noopener noreferrer"&gt;Sinisterly&lt;/a&gt;: A forum for sharing and discussing software, scripts, and leaks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Leaked BB&lt;/strong&gt; – &lt;a href="https://leakedbb.com" rel="noopener noreferrer"&gt;Leaked BB&lt;/a&gt;: A forum for sharing and discussing leaks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UnderWorldMafias&lt;/strong&gt; – &lt;a href="https://underworldmafias.net" rel="noopener noreferrer"&gt;UnderWorldMafias&lt;/a&gt;: A darknet forum focused on cybercrime.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VLMI&lt;/strong&gt; – &lt;a href="https://vlmi.ws" rel="noopener noreferrer"&gt;VLMI&lt;/a&gt;: A darknet forum focused on various criminal topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CyberShafarat (Article)&lt;/strong&gt; – &lt;a href="https://cybershafarat.com/2023/06/17/data-leaks-onions/" rel="noopener noreferrer"&gt;Data Leaks on the Darknet&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Reverse Engineering Forums
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Exetools&lt;/strong&gt; – &lt;a href="https://forum.exetools.com" rel="noopener noreferrer"&gt;Exetools&lt;/a&gt;: A forum dedicated to reverse engineering and software analysis.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory Hackers&lt;/strong&gt; – &lt;a href="https://memoryhackers.org" rel="noopener noreferrer"&gt;Memory Hackers&lt;/a&gt;: Also discusses reverse engineering along with game cheats.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reteam&lt;/strong&gt; – &lt;a href="http://reteam.org/board" rel="noopener noreferrer"&gt;Reteam&lt;/a&gt;: A forum focused on reverse engineering.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ROM Hacking&lt;/strong&gt; – &lt;a href="https://www.romhacking.net/forum" rel="noopener noreferrer"&gt;ROM Hacking&lt;/a&gt;: A forum for hacking and modifying ROMs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Carding Forums
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Alligator&lt;/strong&gt; – &lt;a href="https://alligator.cash" rel="noopener noreferrer"&gt;Alligator&lt;/a&gt;: A forum specializing in carding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ASCarding&lt;/strong&gt; – &lt;a href="https://ascarding.com" rel="noopener noreferrer"&gt;ASCarding&lt;/a&gt;: A forum dedicated to carding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Carder Forum Online&lt;/strong&gt; – &lt;a href="https://carder-forum.online" rel="noopener noreferrer"&gt;Carder Forum Online&lt;/a&gt;: A forum about carding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Carding Forum&lt;/strong&gt; – &lt;a href="https://cardingforum.cx" rel="noopener noreferrer"&gt;Carding Forum&lt;/a&gt;: A forum about carding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Carding Leaks&lt;/strong&gt; – &lt;a href="https://cardingleaks.ws" rel="noopener noreferrer"&gt;Carding Leaks&lt;/a&gt;: A forum focused on carding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CardVilla&lt;/strong&gt; – &lt;a href="https://cardvilla.cc" rel="noopener noreferrer"&gt;CardVilla&lt;/a&gt;: A forum about carding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CWEB Carding Forum&lt;/strong&gt; – &lt;a href="https://www.cweb.ws" rel="noopener noreferrer"&gt;CWEB Carding Forum&lt;/a&gt;: A forum for discussing carding-related issues.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EzCarder&lt;/strong&gt; – &lt;a href="https://ezcarder.cc" rel="noopener noreferrer"&gt;EzCarder&lt;/a&gt;: A forum dedicated to carding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Legit Carder&lt;/strong&gt; – &lt;a href="https://legitcarder.ru" rel="noopener noreferrer"&gt;Legit Carder&lt;/a&gt;: A Russian-language forum about carding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LegitCarders&lt;/strong&gt; – &lt;a href="https://legitcarders.ws" rel="noopener noreferrer"&gt;LegitCarders&lt;/a&gt;: A forum about carding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Russian Carder&lt;/strong&gt; – &lt;a href="https://russiancarder.net" rel="noopener noreferrer"&gt;Russian Carder&lt;/a&gt;: A Russian-language forum about carding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verified Carder&lt;/strong&gt; – &lt;a href="https://www.verifiedcarder.net" rel="noopener noreferrer"&gt;Verified Carder&lt;/a&gt;: A forum about carding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crimenetwork&lt;/strong&gt; – &lt;a href="https://crime.to" rel="noopener noreferrer"&gt;Crimenetwork&lt;/a&gt;: A forum for discussing carding and other types of cybercrime.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CrdCrew&lt;/strong&gt; – &lt;a href="https://crdcrew.cc" rel="noopener noreferrer"&gt;CrdCrew&lt;/a&gt;: A forum for discussing carding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CrdPro&lt;/strong&gt; – &lt;a href="https://crdpro.cc" rel="noopener noreferrer"&gt;CrdPro&lt;/a&gt;: A forum for discussing carding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Valid Market&lt;/strong&gt; – &lt;a href="https://www.validmarket.io" rel="noopener noreferrer"&gt;Valid Market&lt;/a&gt;: A forum specializing in the sale and purchase of valid cards.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Other Specialized Forums
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Altenen Forums&lt;/strong&gt; – &lt;a href="https://altenens.is" rel="noopener noreferrer"&gt;Altenen Forums&lt;/a&gt;: A diverse forum discussing various IT topics, hacking, and vulnerabilities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Antichat&lt;/strong&gt; – &lt;a href="https://forum.antichat.com" rel="noopener noreferrer"&gt;Antichat&lt;/a&gt;: A forum dedicated to anonymity and security on the Internet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Demon Forums&lt;/strong&gt; – &lt;a href="https://www.demonforums.net" rel="noopener noreferrer"&gt;Demon Forums&lt;/a&gt;: A forum covering various topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shield Forum&lt;/strong&gt; – &lt;a href="https://shieldforum.in" rel="noopener noreferrer"&gt;Shield Forum&lt;/a&gt;: A forum dedicated to cybersecurity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploit.in&lt;/strong&gt; – &lt;a href="https://exploit.in" rel="noopener noreferrer"&gt;Exploit.in&lt;/a&gt;: A forum for discussing vulnerabilities and exploits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ForumTeamSite&lt;/strong&gt; – &lt;a href="https://forumteam.site" rel="noopener noreferrer"&gt;ForumTeamSite&lt;/a&gt;: A forum with various topics, including hacking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FSSquad&lt;/strong&gt; – &lt;a href="https://fssquad.com" rel="noopener noreferrer"&gt;FSSquad&lt;/a&gt;: A forum dedicated to various IT topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;High-Minded&lt;/strong&gt; – &lt;a href="https://high-minded.net" rel="noopener noreferrer"&gt;High-Minded&lt;/a&gt;: A forum dedicated to various IT topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hide01 Forums&lt;/strong&gt; – &lt;a href="https://forums.hide01.ir" rel="noopener noreferrer"&gt;Hide01 Forums&lt;/a&gt;: An Iranian forum dedicated to various IT topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Iran-Cyber&lt;/strong&gt; – &lt;a href="https://iran-cyber.net/forums" rel="noopener noreferrer"&gt;Iran-Cyber&lt;/a&gt;: An Iranian forum on cybersecurity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kuketz Forum&lt;/strong&gt; – &lt;a href="https://forum.kuketz-blog.de" rel="noopener noreferrer"&gt;Kuketz Forum&lt;/a&gt;: A German forum dedicated to security and privacy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Leech&lt;/strong&gt; – &lt;a href="https://leech.is" rel="noopener noreferrer"&gt;Leech&lt;/a&gt;: A forum dedicated to file sharing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MaulTalk&lt;/strong&gt; – &lt;a href="https://www.maultalk.com" rel="noopener noreferrer"&gt;MaulTalk&lt;/a&gt;: A forum dedicated to various IT topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Niflheim&lt;/strong&gt; – &lt;a href="https://niflheim.top" rel="noopener noreferrer"&gt;Niflheim&lt;/a&gt;: A forum dedicated to various IT topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Noirth&lt;/strong&gt; – &lt;a href="https://noirth.com" rel="noopener noreferrer"&gt;Noirth&lt;/a&gt;: A forum on cybersecurity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nulled.Id&lt;/strong&gt; – &lt;a href="https://nulled.id" rel="noopener noreferrer"&gt;Nulled.Id&lt;/a&gt;: A forum for sharing and discussing various software, scripts, and materials.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Openssource&lt;/strong&gt; – &lt;a href="https://www.openssource.info" rel="noopener noreferrer"&gt;Openssource&lt;/a&gt;: A forum dedicated to various IT topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pegasus Hack Team&lt;/strong&gt; – &lt;a href="https://pegasushackteam.com" rel="noopener noreferrer"&gt;Pegasus Hack Team&lt;/a&gt;: A forum dedicated to hacking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;P0wersurge&lt;/strong&gt; – &lt;a href="https://p0wersurge.com/forums" rel="noopener noreferrer"&gt;P0wersurge&lt;/a&gt;: A forum covering various IT topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ProLogic&lt;/strong&gt; – &lt;a href="https://prologic.su" rel="noopener noreferrer"&gt;ProLogic&lt;/a&gt;: A Russian-language forum for IT specialists.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;R10&lt;/strong&gt; – &lt;a href="https://www.r10.net" rel="noopener noreferrer"&gt;R10&lt;/a&gt;: A forum for discussing various topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RST Forums&lt;/strong&gt; – &lt;a href="https://rstforums.com/forum" rel="noopener noreferrer"&gt;RST Forums&lt;/a&gt;: A forum dedicated to various IT topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Seopirat&lt;/strong&gt; – &lt;a href="https://www.seopirat.club" rel="noopener noreferrer"&gt;Seopirat&lt;/a&gt;: A forum dedicated to various IT topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sinful Site&lt;/strong&gt; – &lt;a href="https://sinfulsite.com" rel="noopener noreferrer"&gt;Sinful Site&lt;/a&gt;: A forum dedicated to various IT topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SoldierX&lt;/strong&gt; – &lt;a href="https://www.soldierx.com/bbs" rel="noopener noreferrer"&gt;SoldierX&lt;/a&gt;: A forum for discussing various IT topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trusted Sellers&lt;/strong&gt; – &lt;a href="https://trustedsellers.ws" rel="noopener noreferrer"&gt;Trusted Sellers&lt;/a&gt;: A forum for finding trusted sellers in different niches.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TurkHacks&lt;/strong&gt; – &lt;a href="https://www.turkhacks.com" rel="noopener noreferrer"&gt;TurkHacks&lt;/a&gt;: A Turkish forum about hacking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Webmasters&lt;/strong&gt; – &lt;a href="http://webmasters.ru/forum" rel="noopener noreferrer"&gt;Webmasters&lt;/a&gt;: A Russian-language forum for webmasters and IT specialists.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wilders Security&lt;/strong&gt; – &lt;a href="https://www.wilderssecurity.com" rel="noopener noreferrer"&gt;Wilders Security&lt;/a&gt;: A forum dedicated to information security.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;XSS.is&lt;/strong&gt; – &lt;a href="https://xss.is" rel="noopener noreferrer"&gt;XSS.is&lt;/a&gt;: A forum dedicated to XSS vulnerabilities and other web security issues.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Combolist&lt;/strong&gt; – &lt;a href="https://combolist.top" rel="noopener noreferrer"&gt;Combolist&lt;/a&gt;: A forum where you can find combo lists.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Black Hat Pro Tools&lt;/strong&gt; – &lt;a href="https://www.blackhatprotools.info" rel="noopener noreferrer"&gt;Black Hat Pro Tools&lt;/a&gt;: A forum offering various hacking tools.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crackia&lt;/strong&gt; – &lt;a href="https://crackia.com" rel="noopener noreferrer"&gt;Crackia&lt;/a&gt;: A forum about cracking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cracking&lt;/strong&gt; – &lt;a href="https://cracking.org" rel="noopener noreferrer"&gt;Cracking&lt;/a&gt;: A forum about cracking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crackingall&lt;/strong&gt; – &lt;a href="https://crackingall.com" rel="noopener noreferrer"&gt;Crackingall&lt;/a&gt;: A forum about cracking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cracking Hits&lt;/strong&gt; – &lt;a href="https://crackinghits.to" rel="noopener noreferrer"&gt;Cracking Hits&lt;/a&gt;: A forum about cracking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cracking Italy&lt;/strong&gt; – &lt;a href="https://crackingitaly.to" rel="noopener noreferrer"&gt;Cracking Italy&lt;/a&gt;: An Italian forum about cracking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cracking X&lt;/strong&gt; – &lt;a href="https://crackingx.com" rel="noopener noreferrer"&gt;Cracking X&lt;/a&gt;: A forum about cracking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crackingshare&lt;/strong&gt; – &lt;a href="https://crackingshare.com" rel="noopener noreferrer"&gt;Crackingshare&lt;/a&gt;: A forum about cracking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crackx&lt;/strong&gt; – &lt;a href="https://crackx.to" rel="noopener noreferrer"&gt;Crackx&lt;/a&gt;: A forum about cracking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hacking Father&lt;/strong&gt; – &lt;a href="https://hackingfather.com" rel="noopener noreferrer"&gt;Hacking Father&lt;/a&gt;: A forum on hacking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hack Seller&lt;/strong&gt; – &lt;a href="https://hackseller.com" rel="noopener noreferrer"&gt;Hack Seller&lt;/a&gt;: A forum where you can sell various hacking tools.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Psylab&lt;/strong&gt; – &lt;a href="https://psylab.cc" rel="noopener noreferrer"&gt;Psylab&lt;/a&gt;: A forum dedicated to various IT topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Null Cracker&lt;/strong&gt; – &lt;a href="https://nullcrack.store" rel="noopener noreferrer"&gt;Null Cracker&lt;/a&gt;: A forum where you can find cracked software.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chitachok&lt;/strong&gt; – &lt;a href="https://chitachok.fun" rel="noopener noreferrer"&gt;Chitachok&lt;/a&gt;: A forum dedicated to various IT topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Indetectables&lt;/strong&gt; – &lt;a href="https://indetectables.net/index.php" rel="noopener noreferrer"&gt;Indetectables&lt;/a&gt;: A forum about cheats and hacks in games.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>programming</category>
      <category>hacking</category>
      <category>forums</category>
    </item>
    <item>
      <title>💡 7 Portfolio Websites That Are Breaking the Internet 🌐</title>
      <dc:creator>Jaydeep Pipaliya</dc:creator>
      <pubDate>Thu, 02 Jan 2025 08:25:19 +0000</pubDate>
      <link>https://dev.to/itsjp/7-designer-portfolios-that-are-breaking-the-internet-1gci</link>
      <guid>https://dev.to/itsjp/7-designer-portfolios-that-are-breaking-the-internet-1gci</guid>
      <description>&lt;p&gt;When it comes to the world of design, having a standout portfolio is everything. It’s not just about showcasing your skills—it’s about telling a story, leaving a lasting impression, and standing out in a competitive industry.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. &lt;strong&gt;Namanbir Singh&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Website: &lt;a href="https://designbynaman.com/" rel="noopener noreferrer"&gt;designbynaman.com&lt;/a&gt;
&lt;/h3&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%2Fz6hl8cymtggoank4fazn.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%2Fz6hl8cymtggoank4fazn.png" alt="Image description" width="800" height="389"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  2. &lt;strong&gt;Kasturi Koli&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Website: &lt;a href="https://kasturikoliportfolio.framer.website/" rel="noopener noreferrer"&gt;kasturikoliportfolio.framer.website&lt;/a&gt;
&lt;/h3&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%2Ftfnq5370irfp92rlxeop.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%2Ftfnq5370irfp92rlxeop.png" alt="Image description" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  3. &lt;strong&gt;Anshul Vora&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Website: &lt;a href="https://anshulvora.framer.website/" rel="noopener noreferrer"&gt;anshulvora.framer.website&lt;/a&gt;
&lt;/h3&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%2F8ftwqfe6db7t3gcdwb7q.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%2F8ftwqfe6db7t3gcdwb7q.png" alt="Image description" width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  4. &lt;strong&gt;Twinkle Das&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Website: &lt;a href="https://twinkledas.framer.website/" rel="noopener noreferrer"&gt;twinkledas.framer.website&lt;/a&gt;
&lt;/h3&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%2F6o4h4f5tzq3jzluekygv.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%2F6o4h4f5tzq3jzluekygv.png" alt="Image description" width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  5. &lt;strong&gt;Utkarsh Dhairya&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Website: &lt;a href="https://utkarshdp.me/" rel="noopener noreferrer"&gt;utkarshdp.me&lt;/a&gt;
&lt;/h3&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%2Fy212pmnhf63wvqikisdx.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%2Fy212pmnhf63wvqikisdx.png" alt="Image description" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  6. &lt;strong&gt;Jeevanshu Narang&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Website: &lt;a href="https://www.jeevanshunarang.com/" rel="noopener noreferrer"&gt;jeevanshunarang.com&lt;/a&gt;
&lt;/h3&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%2F0bi7o1at7qtztnpsokso.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%2F0bi7o1at7qtztnpsokso.png" alt="Image description" width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  7. &lt;strong&gt;Atul Khola&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Website: &lt;a href="https://www.atulkhola.com/#1-home" rel="noopener noreferrer"&gt;atulkhola.com&lt;/a&gt;
&lt;/h3&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%2F150s4qrj12tyekqadu81.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%2F150s4qrj12tyekqadu81.png" alt="Image description" width="800" height="431"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Why These Portfolios Matter
&lt;/h3&gt;

&lt;p&gt;These portfolios don’t just showcase projects—they tell stories, evoke emotions, and inspire action. They’re not only a reflection of the designers’ skills but also a testament to the power of creativity in web design.&lt;/p&gt;

&lt;p&gt;So, which portfolio inspired you the most? Let me know in the comments below!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>design</category>
      <category>portfolio</category>
    </item>
    <item>
      <title>How Server-Side Rendering Works in Next.js</title>
      <dc:creator>Jaydeep Pipaliya</dc:creator>
      <pubDate>Wed, 28 Aug 2024 07:09:00 +0000</pubDate>
      <link>https://dev.to/itsjp/how-server-side-rendering-works-in-nextjs-1i6g</link>
      <guid>https://dev.to/itsjp/how-server-side-rendering-works-in-nextjs-1i6g</guid>
      <description>&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh9v2ngojql0vt28ry16l.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh9v2ngojql0vt28ry16l.png" alt="SSR"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Server-Side Rendering means that the HTML of the page is generated on the server for each request. This is useful for pages that show frequently updated data, or for pages that have content that changes on every request.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;When a request comes in, Next.js runs your page's code on the server.&lt;/li&gt;
&lt;li&gt;It fetches any necessary data and renders the React components to HTML.&lt;/li&gt;
&lt;li&gt;The server sends the fully rendered HTML to the client.&lt;/li&gt;
&lt;li&gt;The client's browser displays the HTML immediately and then loads the JavaScript.&lt;/li&gt;
&lt;li&gt;Once the JavaScript loads, it "hydrates" the page, making it fully interactive.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Implementation:
&lt;/h2&gt;

&lt;p&gt;To implement SSR in Next.js, you use the &lt;code&gt;getServerSideProps&lt;/code&gt; function. This function runs on every request.&lt;/p&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;

&lt;p&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getServerSideProps&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br&gt;
  &lt;span class="c1"&gt;// Fetch data from external API&lt;/span&gt;&lt;br&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&lt;code&gt;https://api.example.com/data&lt;/code&gt;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class="c1"&gt;// Pass data to the page via props&lt;/span&gt;&lt;br&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;props&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br&gt;
&lt;span class="p"&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Page&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br&gt;
  &lt;span class="k"&gt;return&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="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&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;br&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/p&gt;

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

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

&lt;/div&gt;
&lt;h2&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  Advantages:&lt;br&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Always up-to-date content&lt;/li&gt;
&lt;li&gt;Better SEO as search engines can crawl the full content&lt;/li&gt;
&lt;li&gt;Faster initial page load, especially on slower devices&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Disadvantages:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Slower Time to First Byte (TTFB) as the server needs to generate the content for each request&lt;/li&gt;
&lt;li&gt;Higher server load&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SSR is ideal for pages with frequently changing data or where the content depends on user-specific information (like a personalized dashboard).&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>react</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>React : useCallback vs useMemo</title>
      <dc:creator>Jaydeep Pipaliya</dc:creator>
      <pubDate>Mon, 26 Aug 2024 10:10:13 +0000</pubDate>
      <link>https://dev.to/itsjp/master-usecallback-and-usememo-in-5-minutes-1ego</link>
      <guid>https://dev.to/itsjp/master-usecallback-and-usememo-in-5-minutes-1ego</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpvphbvweyiuk08zig7e1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpvphbvweyiuk08zig7e1.png" alt="useCallback vs useMemo" width="686" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These are both optimization hooks in React, but they serve slightly different purposes.&lt;/p&gt;

&lt;p&gt;Let's break it down:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Purpose:&lt;/strong&gt;   &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;useCallback&lt;/code&gt; is used to memoize functions.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;useMemo&lt;/code&gt; is used to memoize values.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. What they return:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;useCallback&lt;/code&gt; returns a memoized callback function.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;useMemo&lt;/code&gt; returns a memoized value of any type.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Use cases:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;useCallback&lt;/code&gt; is typically used when passing callbacks to optimized child components that rely on reference equality to prevent unnecessary renders.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;useMemo&lt;/code&gt; is used to avoid expensive calculations on every render.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Syntax:&lt;/strong&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;memoizedCallback&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useCallback&lt;/span&gt;&lt;span class="p"&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="nf"&gt;doSomething&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&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;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&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;memoizedValue&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useMemo&lt;/span&gt;&lt;span class="p"&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="nf"&gt;computeExpensiveValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
     &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&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;&lt;strong&gt;5. Performance implications:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;useCallback&lt;/code&gt; can help prevent unnecessary re-renders of child components that receive the callback as a prop.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;useMemo&lt;/code&gt; can help avoid expensive recalculations when the dependencies haven't changed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's look at some examples to illustrate the differences:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example using &lt;code&gt;useCallback&lt;/code&gt;:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&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;useState&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;useCallback&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;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ParentComponent&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="kd"&gt;const&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;span class="nx"&gt;setCount&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&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;handleClick&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useCallback&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="nf"&gt;setCount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&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;span class="nx"&gt;count&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="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;ChildComponent&lt;/span&gt; &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;handleClick&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Count: &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ChildComponent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;memo&lt;/span&gt;&lt;span class="p"&gt;(({&lt;/span&gt; &lt;span class="nx"&gt;onClick&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="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ChildComponent rendered&lt;/span&gt;&lt;span class="dl"&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;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;onClick&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Increment&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;;&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, &lt;code&gt;useCallback&lt;/code&gt; is used to memoize the &lt;code&gt;handleClick&lt;/code&gt; function. This is useful because &lt;code&gt;ChildComponent&lt;/code&gt; is wrapped in &lt;code&gt;React.memo&lt;/code&gt;, which means it will only re-render if its props change. By using &lt;code&gt;useCallback&lt;/code&gt;, we ensure that &lt;code&gt;handleClick&lt;/code&gt; maintains the same reference between renders (unless &lt;code&gt;count&lt;/code&gt; changes), preventing unnecessary re-renders of &lt;code&gt;ChildComponent&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example using &lt;code&gt;useMemo&lt;/code&gt;:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&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;useState&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;useMemo&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;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ExpensiveComponent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;list&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;sortedList&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useMemo&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="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Sorting list&lt;/span&gt;&lt;span class="dl"&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="nx"&gt;list&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&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;a&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;b&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;span class="nx"&gt;list&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="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Sorted List:&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;sortedList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ParentComponent&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="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="kd"&gt;const&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;span class="nx"&gt;setCount&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&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="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;ExpensiveComponent&lt;/span&gt; &lt;span class="na"&gt;list&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&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="nf"&gt;setCount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        Clicked &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; times
      &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&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;In this example, &lt;code&gt;useMemo&lt;/code&gt; is used to memoize the sorted list. The expensive sorting operation will only be performed when the &lt;code&gt;list&lt;/code&gt; prop changes, not on every render of &lt;code&gt;ExpensiveComponent&lt;/code&gt;. This is particularly useful here because &lt;code&gt;ParentComponent&lt;/code&gt; might re-render for reasons unrelated to the &lt;code&gt;list&lt;/code&gt; (like when &lt;code&gt;count&lt;/code&gt; changes), and we don't want to re-sort the list unnecessarily.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Takeaways:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use &lt;code&gt;useCallback&lt;/code&gt; when you want to prevent unnecessary re-renders of child components that depend on function references.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;useMemo&lt;/code&gt; when you want to avoid expensive recalculations of values.&lt;/li&gt;
&lt;li&gt;Both hooks help with performance optimization, but they should be used judiciously. Overuse can lead to increased complexity without significant performance gains.&lt;/li&gt;
&lt;li&gt;The dependency array in both hooks is crucial. The memoized value/function will only update if one of the dependencies changes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;follow for more content like these!&lt;/p&gt;

</description>
      <category>react</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>Why does 1 &lt; 2 &lt; 3 return true but 3 &gt; 2 &gt; 1 return false in JavaScript?</title>
      <dc:creator>Jaydeep Pipaliya</dc:creator>
      <pubDate>Tue, 20 Aug 2024 09:34:54 +0000</pubDate>
      <link>https://dev.to/itsjp/why-does-1-2-3-return-true-but-3-2-1-return-false-in-javascript-4pm5</link>
      <guid>https://dev.to/itsjp/why-does-1-2-3-return-true-but-3-2-1-return-false-in-javascript-4pm5</guid>
      <description>&lt;p&gt;Hey, JavaScript fans! Have you ever had one of those moments where your code does something weird and you're left scratching your head? Well, I've got a good one for you today.&lt;/p&gt;

&lt;p&gt;Check this out:&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;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// true&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wait, what? The second one is false? But 3 is greater than 2, and 2 is greater than 1, right? So what's going on here?&lt;/p&gt;

&lt;p&gt;Let's break it down:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;JavaScript reads these comparisons from left to right.&lt;/li&gt;
&lt;li&gt;For &lt;code&gt;1 &amp;lt; 2 &amp;lt; 3&lt;/code&gt;:

&lt;ul&gt;
&lt;li&gt;First, it does &lt;code&gt;1 &amp;lt; 2&lt;/code&gt;. That's true.&lt;/li&gt;
&lt;li&gt;Then it does &lt;code&gt;true &amp;lt; 3&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;For &lt;code&gt;3 &amp;gt; 2 &amp;gt; 1&lt;/code&gt;:

&lt;ul&gt;
&lt;li&gt;First, it does &lt;code&gt;3 &amp;gt; 2&lt;/code&gt;. That's true.&lt;/li&gt;
&lt;li&gt;Then it does &lt;code&gt;true &amp;gt; 1&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now, here's the kicker: when JavaScript compares &lt;code&gt;true&lt;/code&gt; to a number, it turns &lt;code&gt;true&lt;/code&gt; into 1.&lt;/p&gt;

&lt;p&gt;So what's really happening is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;true &amp;lt; 3&lt;/code&gt; becomes &lt;code&gt;1 &amp;lt; 3&lt;/code&gt;, which is true.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;true &amp;gt; 1&lt;/code&gt; becomes &lt;code&gt;1 &amp;gt; 1&lt;/code&gt;, which is false.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And that's why we get &lt;code&gt;true&lt;/code&gt; for the first one and &lt;code&gt;false&lt;/code&gt; for the second one.&lt;/p&gt;

&lt;p&gt;Crazy, right?&lt;/p&gt;

&lt;p&gt;So, what can we learn from this? When you're doing multiple comparisons, it's better to be clear. Instead of &lt;code&gt;3 &amp;gt; 2 &amp;gt; 1&lt;/code&gt;, you could write &lt;code&gt;(3 &amp;gt; 2) &amp;amp;&amp;amp; (2 &amp;gt; 1)&lt;/code&gt;. It's a bit longer, but at least it does what you expect.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>2024 JavaScript Interview: 4 Insider Tricks You Should Know</title>
      <dc:creator>Jaydeep Pipaliya</dc:creator>
      <pubDate>Mon, 12 Aug 2024 05:41:26 +0000</pubDate>
      <link>https://dev.to/itsjp/2024-javascript-interview-4-insider-tricks-you-should-know-9h9</link>
      <guid>https://dev.to/itsjp/2024-javascript-interview-4-insider-tricks-you-should-know-9h9</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8l6m9s27a23a4xznwxns.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8l6m9s27a23a4xznwxns.png" alt="Javascript Tips and Tricks" width="800" height="256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Four advanced JavaScript techniques could surprise you in your next interview. Let’s keep it short and sweet with just the key points and code examples.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. &lt;strong&gt;Top-Level Await&lt;/strong&gt;
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Fetching data at the module level&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://api.example.com/data&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;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&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;data&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Key Point:&lt;/strong&gt; Simplifies async operations in modules.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Imagine you need to fetch configuration settings from an API before initializing your app. Top-Level Await makes this straightforward without wrapping everything in &lt;code&gt;async&lt;/code&gt; functions.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. &lt;strong&gt;Temporal API (Stage 3 Proposal)&lt;/strong&gt;
&lt;/h2&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;Temporal&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;@js-temporal/polyfill&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Get current date and time&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;now&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Temporal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Now&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;plainDateTimeISO&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="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;now&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt; &lt;span class="c1"&gt;// 2024-08-12T10:00:00&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Key Point:&lt;/strong&gt; Better handling of dates/times than &lt;code&gt;Date&lt;/code&gt; object.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Working on a global app? The Temporal API allows you to accurately handle time zones, avoiding the pitfalls of the &lt;code&gt;Date&lt;/code&gt; object.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. &lt;strong&gt;Pattern Matching (Stage 3 Proposal)&lt;/strong&gt;
&lt;/h2&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;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&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;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;match &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;value&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;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Point at (1, 2)&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;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;X is greater&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;_&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Unknown pattern&lt;/span&gt;&lt;span class="dl"&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="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Key Point:&lt;/strong&gt; Powerful alternative to &lt;code&gt;switch&lt;/code&gt; statements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Simplify complex conditional logic in data processing by matching patterns directly, reducing the need for nested &lt;code&gt;if-else&lt;/code&gt; statements.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. &lt;strong&gt;Records and Tuples (Stage 2 Proposal)&lt;/strong&gt;
&lt;/h2&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;record&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&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;tuple&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&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="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;record&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 1&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;tuple&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt; &lt;span class="c1"&gt;// 1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Key Point:&lt;/strong&gt; Immutable data structures for safer code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Use Records and Tuples to ensure that critical data structures remain unchanged throughout your application, preventing unintended mutations.&lt;/p&gt;




&lt;p&gt;Follow for more programming like these...&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>interview</category>
    </item>
    <item>
      <title>Portals: The React Hack You Need to Know</title>
      <dc:creator>Jaydeep Pipaliya</dc:creator>
      <pubDate>Thu, 01 Aug 2024 08:12:49 +0000</pubDate>
      <link>https://dev.to/itsjp/portals-the-react-hack-you-need-to-know-1kgp</link>
      <guid>https://dev.to/itsjp/portals-the-react-hack-you-need-to-know-1kgp</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgrntrv4i93rf5k8l33qe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgrntrv4i93rf5k8l33qe.png" alt="portal" width="800" height="333"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is a React Portal?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A React Portal is a mechanism that allows you to render child components in a different part of the DOM tree than where their parent component is located. This might sound complex, but it's actually quite powerful and can solve a variety of challenges that developers often face.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Use React Portals?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Overlays and Modals:&lt;/strong&gt; Create modals, tooltips, or other overlays that appear on top of the main application without interfering with the layout or styling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rendering Components Outside the Parent:&lt;/strong&gt; In certain scenarios, you might want to render a component outside of its parent's DOM container, such as appending to the body.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Avoiding Z-Index Issues:&lt;/strong&gt; When dealing with complex UI structures, portals can help resolve z-index conflicts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How to Use React Portals&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To create a portal, you'll need to use the &lt;code&gt;createPortal&lt;/code&gt; function from React DOM. Here's a basic example:&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;createPortal&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-dom&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;myModal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;modal-root&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;MyModal&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="nf"&gt;createPortal&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="nx"&gt;className&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;modal&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;Hello&lt;/span&gt;&lt;span class="p"&gt;,&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;/div&amp;gt;, myModal&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="err"&gt;;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this code, we're creating a portal that renders the &lt;code&gt;MyModal&lt;/code&gt; component inside the element with the ID &lt;code&gt;modal-root&lt;/code&gt;. This element should be outside of the main app's DOM tree.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-World Use Cases&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Modals and Overlays:&lt;/strong&gt; Create reusable modal components that can be rendered anywhere in the application without worrying about z-index conflicts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tooltips and Popovers:&lt;/strong&gt; Place tooltips or popovers directly in the document body to avoid positioning issues.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom Render Targets:&lt;/strong&gt; Render components in specific parts of the DOM for integration with third-party libraries or custom UI frameworks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Best Practices&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use portals judiciously. They can be helpful, but overuse can lead to complex component structures.&lt;/li&gt;
&lt;li&gt;Ensure proper cleanup when unmounting components to avoid memory leaks.&lt;/li&gt;
&lt;li&gt;Consider using a portal library or custom hook to manage portal creation and cleanup.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;React Portals are a valuable tool in your React development arsenal. By understanding how and when to use them, you can create more flexible, maintainable, and user-friendly applications. While they might seem complex at first, the benefits they offer are well worth the investment in learning.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Interviewers love to ask for real-life examples of these algorithms.</title>
      <dc:creator>Jaydeep Pipaliya</dc:creator>
      <pubDate>Thu, 27 Jun 2024 10:05:51 +0000</pubDate>
      <link>https://dev.to/itsjp/interviewers-love-to-ask-for-real-life-examples-of-these-algorithms-522c</link>
      <guid>https://dev.to/itsjp/interviewers-love-to-ask-for-real-life-examples-of-these-algorithms-522c</guid>
      <description>&lt;p&gt;Hey there, fellow coder!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffnb80f2uc3c0n3yrg8aa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffnb80f2uc3c0n3yrg8aa.png" alt="Algorithms" width="299" height="168"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Whether you’re just starting out or have been programming for years, knowing key algorithms is crucial. Algorithms are the foundation of solving problems in tech.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Let’s take a look at the top 10 algorithms every programmer should know and how they are used in the real world.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;1. Sorting Algorithms&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkhl8ka2rx0f5eazotz0u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkhl8ka2rx0f5eazotz0u.png" alt="sorting" width="280" height="237"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s essential&lt;/strong&gt;: Sorting is a fundamental task in programming. Whether you’re arranging a list of names alphabetically or ordering search results, sorting algorithms come into play.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common types&lt;/strong&gt;: Bubble Sort, Merge Sort, Quick Sort.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world application&lt;/strong&gt;: Quick Sort is often used in &lt;strong&gt;database query optimizations&lt;/strong&gt; where data needs to be sorted quickly.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;2. Search Algorithms&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsxzby5npechibthkyjpt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsxzby5npechibthkyjpt.png" alt="searching" width="220" height="140"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s essential&lt;/strong&gt;: Searching algorithms help you find an element in a data structure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common types&lt;/strong&gt;: Binary Search, Linear Search.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world application&lt;/strong&gt;: Binary Search is widely used in applications where you need to search through a &lt;strong&gt;sorted array quickly&lt;/strong&gt;, like in a phone book app.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;3. Hashing&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxk2iiwen982ganfy7rax.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxk2iiwen982ganfy7rax.png" alt="hashing" width="550" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s essential&lt;/strong&gt;: Hashing helps in indexing and retrieving data efficiently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common types&lt;/strong&gt;: Hash Tables, Hash Maps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world application&lt;/strong&gt;: Hashing is used in implementing &lt;strong&gt;associative arrays&lt;/strong&gt;, &lt;strong&gt;database indexing&lt;/strong&gt;, and &lt;strong&gt;caching mechanisms&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;4. Dynamic Programming&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9aag4ayj8teolvphg15i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9aag4ayj8teolvphg15i.png" alt="DP" width="400" height="165"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s essential&lt;/strong&gt;: It’s used to solve complex problems by breaking them down into simpler sub problems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common types&lt;/strong&gt;: Fibonacci Sequence, Knapsack Problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world application&lt;/strong&gt;: Dynamic programming is used in resource allocation problems, like determining the optimal way to &lt;strong&gt;cut a rod into pieces to maximize profit&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;5. Graph Algorithms&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyeoqpbnorzqzyx9ali8p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyeoqpbnorzqzyx9ali8p.png" alt="Grpah" width="640" height="529"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s essential&lt;/strong&gt;: Graphs are used to model relationships between objects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common types&lt;/strong&gt;: Dijkstra’s Algorithm, Depth-First Search (DFS), Breadth-First Search (BFS).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world application&lt;/strong&gt;: Dijkstra’s Algorithm is used in &lt;strong&gt;GPS navigation systems&lt;/strong&gt; to find the shortest path between locations.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;6. Greedy Algorithms&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxpvxg4zgcewvx35dnvtf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxpvxg4zgcewvx35dnvtf.png" alt="Greedy" width="640" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s essential&lt;/strong&gt;: Greedy algorithms make the locally optimal choice at each stage with the hope of finding the global optimum.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common types&lt;/strong&gt;: Huffman Coding, Prim’s Algorithm.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world application&lt;/strong&gt;: Huffman Coding is used in &lt;strong&gt;data compression&lt;/strong&gt;, such as &lt;strong&gt;ZIP file&lt;/strong&gt; formats.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;7. Divide and Conquer&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feykpgvlxuq6v09kt5r05.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feykpgvlxuq6v09kt5r05.png" alt="Divide and Conquer" width="640" height="655"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s essential&lt;/strong&gt;: This strategy solves a problem by breaking it into smaller subproblems, solving them independently, and combining their solutions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common types&lt;/strong&gt;: Merge Sort, Quick Sort.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world application&lt;/strong&gt;: Merge Sort is utilized in &lt;strong&gt;external sorting algorithms&lt;/strong&gt;, where data that doesn’t fit into memory is sorted.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;8. Backtracking&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi7muu112d3hubo8676d8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi7muu112d3hubo8676d8.png" alt="Backtracking" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s essential&lt;/strong&gt;: Backtracking is used for solving constraint satisfaction problems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common types&lt;/strong&gt;: N-Queens Problem, Sudoku Solver.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world application&lt;/strong&gt;: Backtracking algorithms are used in &lt;strong&gt;puzzle solving&lt;/strong&gt; and &lt;strong&gt;game development&lt;/strong&gt; to explore possible moves.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;9. Bit Manipulation&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj5pjph5t0ny8skflyz08.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj5pjph5t0ny8skflyz08.png" alt="Bit Manipulation" width="634" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s essential&lt;/strong&gt;: Bit manipulation involves algorithms that work directly on bits and are crucial for low-level programming.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common types&lt;/strong&gt;: Bitwise AND, OR, XOR.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world application&lt;/strong&gt;: Bit manipulation is used to optimise &lt;strong&gt;memory usage&lt;/strong&gt; and &lt;strong&gt;cryptography&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;10. String Matching and Parsing&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwgnpfhfatcn9xl8jiep6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwgnpfhfatcn9xl8jiep6.png" alt="String" width="745" height="242"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s essential&lt;/strong&gt;: These algorithms help in searching and manipulating strings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common types&lt;/strong&gt;: Knuth-Morris-Pratt (KMP), Rabin-Karp.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world application&lt;/strong&gt;: String matching algorithms are used in &lt;strong&gt;search engines, DNA sequencing, and plagiarism detection&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>algorithms</category>
      <category>career</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>Java Script Interview Secret : "console.log([1, 2] + [3, 4])"</title>
      <dc:creator>Jaydeep Pipaliya</dc:creator>
      <pubDate>Wed, 26 Jun 2024 07:06:05 +0000</pubDate>
      <link>https://dev.to/itsjp/java-script-interview-secret-consolelog1-2-3-4-j55</link>
      <guid>https://dev.to/itsjp/java-script-interview-secret-consolelog1-2-3-4-j55</guid>
      <description>&lt;p&gt;I recently wrote an article on Medium about &lt;a href="https://medium.com/@robert.clave.official/java-script-interview-secret-console-log-1-2-3-4-48388d783086"&gt;Java Script Secret &lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check it out to learn more!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>interview</category>
    </item>
    <item>
      <title>Only 1% of Developers Know This React Hook! 🚀</title>
      <dc:creator>Jaydeep Pipaliya</dc:creator>
      <pubDate>Mon, 24 Jun 2024 09:55:07 +0000</pubDate>
      <link>https://dev.to/itsjp/only-1-of-developers-know-this-react-hook-1309</link>
      <guid>https://dev.to/itsjp/only-1-of-developers-know-this-react-hook-1309</guid>
      <description>&lt;p&gt;One lesser-known but powerful concept in React that only a small percentage of developers might be aware of is the use of the &lt;code&gt;useImperativeHandle&lt;/code&gt; hook. This hook allows you to customize the instance value that is exposed when using ref in functional components. Here's an example and explanation:&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmyt6v5bfdrr5ax6fuz80.gif" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmyt6v5bfdrr5ax6fuz80.gif" alt="let's see"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;'useImperativeHandle' Hook&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;useImperativeHandle&lt;/code&gt; hook can be particularly useful when you want to expose certain methods or properties to parent components without exposing the entire component implementation. This can help in creating a more controlled and encapsulated API for your components.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Basic Usage&lt;/strong&gt;&lt;br&gt;
Here's a simple example to demonstrate how useImperativeHandle works:&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="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useImperativeHandle&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;useRef&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;forwardRef&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;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;CustomInput&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;forwardRef&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;ref&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;inputRef&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useRef&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="nf"&gt;useImperativeHandle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ref&lt;/span&gt;&lt;span class="p"&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="na"&gt;focus&lt;/span&gt;&lt;span class="p"&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="nx"&gt;inputRef&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;focus&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="na"&gt;clear&lt;/span&gt;&lt;span class="p"&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="nx"&gt;inputRef&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&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;span class="p"&gt;}));&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt; &lt;span class="nx"&gt;ref&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;inputRef&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="err"&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;ParentComponent&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;customInputRef&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useRef&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;handleFocus&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="nx"&gt;customInputRef&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;focus&lt;/span&gt;&lt;span class="p"&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;handleClear&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="nx"&gt;customInputRef&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;clear&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;CustomInput&lt;/span&gt; &lt;span class="nx"&gt;ref&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;customInputRef&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;button&lt;/span&gt; &lt;span class="nx"&gt;onClick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;handleFocus&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;Focus&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/button&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;button&lt;/span&gt; &lt;span class="nx"&gt;onClick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;handleClear&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;Clear&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/button&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;ParentComponent&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;



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

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Explanation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Forwarding Refs&lt;/strong&gt;&lt;br&gt;
The CustomInput component is wrapped in forwardRef to allow it to receive a ref from its parent component.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Internal Ref&lt;/strong&gt;&lt;br&gt;
Inside CustomInput, an internal ref (inputRef) is created to reference the actual input element.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. useImperativeHandle Hook&lt;/strong&gt;&lt;br&gt;
This hook is used to define what values or methods should be exposed to the parent component when it uses the ref. In this example, focus and clear methods are defined and exposed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Using the Ref in Parent&lt;/strong&gt;&lt;br&gt;
The parent component (ParentComponent) uses the customInputRef to call the focus and clear methods defined in the child component.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benefits&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Encapsulation&lt;/code&gt;: Only the methods you choose to expose are available to the parent component, keeping the internal details of the child component hidden.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Control&lt;/code&gt;: Provides more control over the behavior and interaction with child components.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Enhanced Reusability&lt;/code&gt;: By controlling the exposed API, you can create more reusable and maintainable components.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This advanced usage of &lt;code&gt;useImperativeHandle&lt;/code&gt; can significantly enhance the way you manage component interactions and encapsulation in your React applications.&lt;/p&gt;

</description>
      <category>react</category>
      <category>reactjsdevelopment</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>I Asked ChatGPT: Who is More Intelligent — Humans or AI?</title>
      <dc:creator>Jaydeep Pipaliya</dc:creator>
      <pubDate>Mon, 24 Jun 2024 07:47:28 +0000</pubDate>
      <link>https://dev.to/itsjp/i-asked-chatgpt-who-is-more-intelligent-humans-or-ai-3k69</link>
      <guid>https://dev.to/itsjp/i-asked-chatgpt-who-is-more-intelligent-humans-or-ai-3k69</guid>
      <description>&lt;p&gt;I recently wrote an article on Medium about &lt;a href="https://medium.com/@robert.clave.official/i-asked-chatgpt-who-is-more-intelligent-humans-or-ai-d594cf3da69e"&gt;Comparing AI and Human Intelligence&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Check it out to learn more!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>chatgpt</category>
      <category>computerscience</category>
      <category>programming</category>
    </item>
    <item>
      <title>Deadlock : Computer Science challenge</title>
      <dc:creator>Jaydeep Pipaliya</dc:creator>
      <pubDate>Fri, 14 Jun 2024 10:40:28 +0000</pubDate>
      <link>https://dev.to/itsjp/deadlock-computer-science-challenge-1mlk</link>
      <guid>https://dev.to/itsjp/deadlock-computer-science-challenge-1mlk</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/cs"&gt;DEV Computer Science Challenge v24.06.12: One Byte Explainer&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Explainer
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Deadlock: A dance-off where no one moves because everyone’s waiting for someone else to start. Avoid it to keep systems groovin’.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>devchallenge</category>
      <category>cschallenge</category>
      <category>computerscience</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
