<?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: vishwa v</title>
    <description>The latest articles on DEV Community by vishwa v (@vishwa_v_04111c0586f440b6).</description>
    <link>https://dev.to/vishwa_v_04111c0586f440b6</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3958528%2F34410a54-341f-4dac-a152-9f2e78711d8d.jpeg</url>
      <title>DEV Community: vishwa v</title>
      <link>https://dev.to/vishwa_v_04111c0586f440b6</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vishwa_v_04111c0586f440b6"/>
    <language>en</language>
    <item>
      <title>java-3</title>
      <dc:creator>vishwa v</dc:creator>
      <pubDate>Thu, 24 Sep 2026 16:58:35 +0000</pubDate>
      <link>https://dev.to/vishwa_v_04111c0586f440b6/java-3-32p4</link>
      <guid>https://dev.to/vishwa_v_04111c0586f440b6/java-3-32p4</guid>
      <description>&lt;p&gt;&lt;strong&gt;Understanding Constructors in Java&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Java is an object-oriented programming language where objects are created from classes. Whenever an object is created, Java provides a special method called a constructor to initialize the object. Understanding constructors is essential for every Java developer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is a Constructor?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A constructor is a special method that is automatically called when an object of a class is created. Its primary purpose is to initialize object attributes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features of a Constructor&lt;/strong&gt;&lt;br&gt;
Has the same name as the class.&lt;br&gt;
Does not have a return type, not even void.&lt;br&gt;
Invoked automatically when an object is instantiated.&lt;br&gt;
Can be overloaded with different parameter lists.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Constructor Overloading&lt;/strong&gt;&lt;br&gt;
A class can have multiple constructors with different parameter lists.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The this() Constructor Call&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The this() keyword can be used to call another constructor within the same class.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Types of Constructors in Java&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.Default Constructor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A constructor with no parameters is called a default constructor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.Parameterized Constructor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A constructor that accepts arguments is known as a parameterized constructor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.Copy Constructor (User-Defined)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Java does not provide a built-in copy constructor like C++, but we can create one manually.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Java-2</title>
      <dc:creator>vishwa v</dc:creator>
      <pubDate>Tue, 22 Sep 2026 15:32:38 +0000</pubDate>
      <link>https://dev.to/vishwa_v_04111c0586f440b6/java-2-fko</link>
      <guid>https://dev.to/vishwa_v_04111c0586f440b6/java-2-fko</guid>
      <description>&lt;p&gt;Data types in Java define the type of data a variable can store. They help Java allocate memory efficiently and perform operations correctly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is a Data Type?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A data type specifies:&lt;/p&gt;

&lt;p&gt;What kind of value a variable can hold&lt;br&gt;
How much memory is required&lt;br&gt;
What operations can be performed on the value&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Types of Data Types in Java&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Primitive Data Types&lt;br&gt;
Non-Primitive (Reference) Data Types&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Primitive Data Types&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Java provides 8 primitive data types.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Data Type&lt;/th&gt;
&lt;th&gt;Size&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;byte&lt;/td&gt;
&lt;td&gt;1 byte&lt;/td&gt;
&lt;td&gt;Small integer&lt;/td&gt;
&lt;td&gt;&lt;code&gt;byte age = 20;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;short&lt;/td&gt;
&lt;td&gt;2 bytes&lt;/td&gt;
&lt;td&gt;Short integer&lt;/td&gt;
&lt;td&gt;&lt;code&gt;short num = 1000;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;4 bytes&lt;/td&gt;
&lt;td&gt;Integer value&lt;/td&gt;
&lt;td&gt;&lt;code&gt;int marks = 90;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;long&lt;/td&gt;
&lt;td&gt;8 bytes&lt;/td&gt;
&lt;td&gt;Large integer&lt;/td&gt;
&lt;td&gt;&lt;code&gt;long population = 8000000L;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;float&lt;/td&gt;
&lt;td&gt;4 bytes&lt;/td&gt;
&lt;td&gt;Decimal value&lt;/td&gt;
&lt;td&gt;&lt;code&gt;float price = 99.99f;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;double&lt;/td&gt;
&lt;td&gt;8 bytes&lt;/td&gt;
&lt;td&gt;Large decimal value&lt;/td&gt;
&lt;td&gt;&lt;code&gt;double salary = 50000.50;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;char&lt;/td&gt;
&lt;td&gt;2 bytes&lt;/td&gt;
&lt;td&gt;Single character&lt;/td&gt;
&lt;td&gt;&lt;code&gt;char grade = 'A';&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;boolean&lt;/td&gt;
&lt;td&gt;1 bit&lt;/td&gt;
&lt;td&gt;True or False&lt;/td&gt;
&lt;td&gt;&lt;code&gt;boolean active = true;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Non-Primitive Data Types&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Non-primitive data types store references to objects.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;p&gt;String&lt;br&gt;
Arrays&lt;br&gt;
Classes&lt;br&gt;
Interfaces&lt;br&gt;
Collections&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Primitive vs Non-Primitive Data Types&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Primitive&lt;/th&gt;
&lt;th&gt;Non-Primitive&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Stores&lt;/td&gt;
&lt;td&gt;Actual value&lt;/td&gt;
&lt;td&gt;Reference address&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Size&lt;/td&gt;
&lt;td&gt;Fixed&lt;/td&gt;
&lt;td&gt;Variable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Created by Java&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;User-defined or Java classes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Can call methods&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Example&lt;/td&gt;
&lt;td&gt;int, double&lt;/td&gt;
&lt;td&gt;String, Array&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
    </item>
    <item>
      <title>Java-1</title>
      <dc:creator>vishwa v</dc:creator>
      <pubDate>Mon, 21 Sep 2026 15:58:52 +0000</pubDate>
      <link>https://dev.to/vishwa_v_04111c0586f440b6/java-1-43i6</link>
      <guid>https://dev.to/vishwa_v_04111c0586f440b6/java-1-43i6</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
Java is one of the world's most popular and widely used programming languages. It was developed by Sun Microsystems in 1995 and is now maintained by Oracle. Java is known for its simplicity, security, platform independence, and object-oriented programming features.&lt;/p&gt;

&lt;p&gt;One of Java's biggest advantages is its "Write Once, Run Anywhere" (WORA) capability. This means that a Java program can run on any device that has a Java Virtual Machine (JVM) installed, regardless of the operating system.&lt;/p&gt;

&lt;p&gt;Java is widely used for developing:&lt;/p&gt;

&lt;p&gt;Desktop applications&lt;br&gt;
Web applications&lt;br&gt;
Mobile applications (Android)&lt;br&gt;
Enterprise software&lt;br&gt;
Cloud-based applications&lt;br&gt;
Games and embedded systems&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Learn Java?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Java is a great language for beginners and professionals because it offers:&lt;/p&gt;

&lt;p&gt;Easy-to-understand syntax&lt;br&gt;
Strong community support&lt;br&gt;
Platform independence&lt;br&gt;
High security&lt;br&gt;
Object-oriented programming concepts&lt;br&gt;
Excellent career opportunities&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features of Java&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Platform Independent&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Java programs can run on Windows, Linux, and macOS without modification.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Object-Oriented&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Java follows object-oriented programming principles such as:&lt;/p&gt;

&lt;p&gt;Class&lt;br&gt;
Object&lt;br&gt;
Inheritance&lt;br&gt;
Polymorphism&lt;br&gt;
Encapsulation&lt;br&gt;
Abstraction&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Secure&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Java provides a secure environment with features like bytecode verification and exception handling.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Robust&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Strong memory management and error handling make Java a reliable programming language.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Multithreaded&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Java supports running multiple tasks simultaneously, improving application performance.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>react-11</title>
      <dc:creator>vishwa v</dc:creator>
      <pubDate>Thu, 17 Sep 2026 12:23:24 +0000</pubDate>
      <link>https://dev.to/vishwa_v_04111c0586f440b6/react-11-2e3a</link>
      <guid>https://dev.to/vishwa_v_04111c0586f440b6/react-11-2e3a</guid>
      <description>&lt;h2&gt;
  
  
  useCallback and useReducer are two important React Hooks that help with performance optimization and state management.
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;useCallback&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;useCallback memoizes a function, meaning React will reuse the same function instance between renders unless its dependencies change.&lt;/p&gt;

&lt;p&gt;Memoizes a function.&lt;br&gt;
Prevents unnecessary function recreation.&lt;br&gt;
Useful with React.memo and dependency arrays.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why use it?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Normally, a function is recreated every time a component re-render&lt;br&gt;
Every render creates a new handleClick function.&lt;br&gt;
Now React reuses the same function reference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Without useCallback:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Even though Child is wrapped with React.memo, it still re-renders because handleClick is a new function every render.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When NOT to use useCallback&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Don't wrap every function in useCallback.&lt;br&gt;
If the function isn't passed to memoized children or used as a dependency elsewhere, useCallback may add unnecessary complexity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;useReducer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;useReducer is an alternative to useState for managing complex state logic.&lt;/p&gt;

&lt;p&gt;Think of it like a simplified Redux inside a component.&lt;/p&gt;

&lt;p&gt;Manages complex state using a reducer function.&lt;br&gt;
State changes happen through dispatched actions.&lt;br&gt;
Ideal when state logic becomes difficult to manage with multiple useState hooks&lt;/p&gt;

&lt;p&gt;state → current state&lt;br&gt;
dispatch() → sends an action&lt;br&gt;
reducer() → decides how state changes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;diff&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;useState&lt;/th&gt;
&lt;th&gt;useReducer&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Simple state&lt;/td&gt;
&lt;td&gt;Complex state&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Easy to learn&lt;/td&gt;
&lt;td&gt;More structured&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Few state variables&lt;/td&gt;
&lt;td&gt;Many related state values&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Direct update&lt;/td&gt;
&lt;td&gt;Update through actions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Best for simple forms/counters&lt;/td&gt;
&lt;td&gt;Best for workflows, forms, API states&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
    </item>
    <item>
      <title>react-10</title>
      <dc:creator>vishwa v</dc:creator>
      <pubDate>Tue, 15 Sep 2026 13:34:07 +0000</pubDate>
      <link>https://dev.to/vishwa_v_04111c0586f440b6/react-10-pn1</link>
      <guid>https://dev.to/vishwa_v_04111c0586f440b6/react-10-pn1</guid>
      <description>&lt;p&gt;&lt;strong&gt;Understanding useMemo and React.memo in React&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Performance optimization is important in React applications, especially when components re-render frequently. React provides two useful tools for optimization: useMemo and React.memo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is useMemo?&lt;/strong&gt;&lt;br&gt;
useMemo is a React Hook that caches the result of an expensive calculation and recalculates it only when its dependencies change.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why use useMemo?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Imagine your component performs a complex calculation every time it renders.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use useMemo&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Expensive calculations&lt;/li&gt;
&lt;li&gt;Large data filtering or sorting&lt;/li&gt;
&lt;li&gt;Preventing unnecessary object or array recreation&lt;/li&gt;
&lt;li&gt;Optimizing derived state&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What is React.memo?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;React.memo is a Higher-Order Component (HOC) that prevents unnecessary re-rendering of a component when its props haven't changed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use React.memo&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pure functional components&lt;/li&gt;
&lt;li&gt;Components receiving unchanged props frequently&lt;/li&gt;
&lt;li&gt;Large UI trees&lt;/li&gt;
&lt;li&gt;Expensive rendering logic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;diff blw use memo and react memo&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;useMemo&lt;/th&gt;
&lt;th&gt;React.memo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Purpose&lt;/td&gt;
&lt;td&gt;Memoize a value&lt;/td&gt;
&lt;td&gt;Memoize a component&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Optimizes&lt;/td&gt;
&lt;td&gt;Calculations&lt;/td&gt;
&lt;td&gt;Component rendering&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Type&lt;/td&gt;
&lt;td&gt;Hook&lt;/td&gt;
&lt;td&gt;Higher-Order Component&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Used Inside Component&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Returns&lt;/td&gt;
&lt;td&gt;Cached value&lt;/td&gt;
&lt;td&gt;Optimized component&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
    </item>
    <item>
      <title>react-9</title>
      <dc:creator>vishwa v</dc:creator>
      <pubDate>Fri, 11 Sep 2026 17:44:39 +0000</pubDate>
      <link>https://dev.to/vishwa_v_04111c0586f440b6/react-gb1</link>
      <guid>https://dev.to/vishwa_v_04111c0586f440b6/react-gb1</guid>
      <description>&lt;p&gt;&lt;strong&gt;Understanding useRef() and useParams() in React&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;React provides many powerful hooks that simplify development. Two commonly used hooks are useRef() and useParams(). Although both are hooks, they serve completely different purposes.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;useRef()&lt;/code&gt; is used to store values and access DOM elements without causing re-renders.&lt;br&gt;
&lt;code&gt;useParams()&lt;/code&gt;is used to read URL parameters in React Router.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is useRef()?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;useRef() is a React Hook that creates a mutable reference that persists across component re-renders.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How it Works&lt;/strong&gt;&lt;br&gt;
useRef() creates a reference object.&lt;br&gt;
The object contains a property called current.&lt;br&gt;
React stores the actual DOM element inside current.&lt;br&gt;
Calling focus() focuses the input field.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why use useRef()?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Access DOM Elements&lt;/li&gt;
&lt;li&gt;Focus input fields&lt;/li&gt;
&lt;li&gt;Scroll to sections&lt;/li&gt;
&lt;li&gt;Play videos&lt;/li&gt;
&lt;li&gt;Measure element size&lt;/li&gt;
&lt;li&gt;Store Values Without Re-rendering&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;useRef&lt;/th&gt;
&lt;th&gt;useState&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Does not re-render component&lt;/td&gt;
&lt;td&gt;Re-renders component&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stores mutable values&lt;/td&gt;
&lt;td&gt;Stores state values&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Used for DOM access&lt;/td&gt;
&lt;td&gt;Used for UI updates&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;What is useParams()?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;useParams() is a React Router Hook used to access URL parameters from the current route.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;useRef()&lt;/th&gt;
&lt;th&gt;useParams()&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Purpose&lt;/td&gt;
&lt;td&gt;Store references and values&lt;/td&gt;
&lt;td&gt;Read URL parameters&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Package&lt;/td&gt;
&lt;td&gt;React&lt;/td&gt;
&lt;td&gt;React Router&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Causes Re-render&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Common Use&lt;/td&gt;
&lt;td&gt;DOM access&lt;/td&gt;
&lt;td&gt;Dynamic routes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Returns&lt;/td&gt;
&lt;td&gt;Ref Object&lt;/td&gt;
&lt;td&gt;Params Object&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

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

&lt;p&gt;useRef() and useParams() solve different problems in React applications.&lt;/p&gt;

&lt;p&gt;Use useRef() when you need to access DOM elements, store mutable values, or keep data without triggering re-renders.&lt;br&gt;
Use useParams() when you need to read dynamic values from the URL, such as IDs, usernames, or product information.&lt;/p&gt;

&lt;p&gt;Mastering these two hooks will help you build more interactive forms, dynamic routing, and real-world React applications efficiently.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>react-8</title>
      <dc:creator>vishwa v</dc:creator>
      <pubDate>Tue, 08 Sep 2026 14:26:25 +0000</pubDate>
      <link>https://dev.to/vishwa_v_04111c0586f440b6/reactproject-1-2e3g</link>
      <guid>https://dev.to/vishwa_v_04111c0586f440b6/reactproject-1-2e3g</guid>
      <description>&lt;p&gt;&lt;strong&gt;Difference Between useState() and useEffect() in React&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;useState&lt;/th&gt;
&lt;th&gt;useEffect&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Used to manage state&lt;/td&gt;
&lt;td&gt;Used to perform side effects&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stores data&lt;/td&gt;
&lt;td&gt;Runs code after rendering&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Causes re-render when state changes&lt;/td&gt;
&lt;td&gt;Doesn't store data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Returns state and updater function&lt;/td&gt;
&lt;td&gt;Executes a callback function&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;1. What is useState()?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;useState() is used to create and manage state in a functional component.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Happens?&lt;/strong&gt;&lt;br&gt;
Initial value = 0&lt;br&gt;
Clicking button updates state&lt;br&gt;
Component re-renders&lt;br&gt;
Updated value appears on screen&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is useEffect()?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;useEffect() is used to perform side effects after a component renders.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Side Effects Examples&lt;/strong&gt;&lt;br&gt;
API calls&lt;br&gt;
Fetching data&lt;br&gt;
Timers&lt;br&gt;
Event listeners&lt;br&gt;
DOM manipulation&lt;/p&gt;

</description>
    </item>
    <item>
      <title>react-7</title>
      <dc:creator>vishwa v</dc:creator>
      <pubDate>Mon, 07 Sep 2026 13:58:57 +0000</pubDate>
      <link>https://dev.to/vishwa_v_04111c0586f440b6/react-7-35h8</link>
      <guid>https://dev.to/vishwa_v_04111c0586f440b6/react-7-35h8</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is BrowserRouter?&lt;/strong&gt;&lt;br&gt;
BrowserRouter is a wrapper component from react-router-dom.&lt;/p&gt;

&lt;p&gt;It uses the HTML5 history API (pushState, replaceState) to keep your UI in sync with the URL.&lt;/p&gt;

&lt;p&gt;In simple terms: it tells React Router to use the browser’s normal URL system for navigation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;BrowserRouter&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Routes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Route&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react-router-dom&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Home&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./Home&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;About&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./About&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;App&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;BrowserRouter&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Routes&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Route&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;element&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;lt;&lt;/span&gt;&lt;span class="nx"&gt;Home&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Route&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/about&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;element&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;lt;&lt;/span&gt;&lt;span class="nx"&gt;About&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Routes&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/BrowserRouter&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

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

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;When to Use&lt;/strong&gt;&lt;br&gt;
Always use BrowserRouter for modern web apps unless you specifically need HashRouter (for static file hosting without server-side support).&lt;/p&gt;

&lt;p&gt;It’s the standard choice for React projects with proper server setup.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is useNavigate?&lt;/strong&gt;&lt;br&gt;
useNavigate is a hook from React Router v6.&lt;/p&gt;

&lt;p&gt;It lets you programmatically navigate between routes (instead of using  or ).&lt;/p&gt;

&lt;p&gt;Think of it as a function you call to change the URL and move to another page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to Use It&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Import the Hook&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="nx"&gt;jsx&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useNavigate&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react-router-dom&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Get the Navigate Function&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="nx"&gt;jsx&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Home&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;navigate&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useNavigate&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;goToAbout&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="nf"&gt;navigate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/about&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;

  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;h1&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Home&lt;/span&gt; &lt;span class="nx"&gt;Page&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/h1&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="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;goToAbout&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;Go&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="nx"&gt;About&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When you click the button, React Router changes the route to /about&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to Use useNavigate&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After a form submission (e.g., redirect to dashboard).&lt;/p&gt;

&lt;p&gt;After authentication (e.g., redirect to login if not logged in).&lt;/p&gt;

&lt;p&gt;For conditional navigation (e.g., if user doesn’t have access, send them elsewhere).&lt;/p&gt;

</description>
    </item>
    <item>
      <title>react-6</title>
      <dc:creator>vishwa v</dc:creator>
      <pubDate>Sun, 06 Sep 2026 16:26:53 +0000</pubDate>
      <link>https://dev.to/vishwa_v_04111c0586f440b6/re-n27</link>
      <guid>https://dev.to/vishwa_v_04111c0586f440b6/re-n27</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is useContext?&lt;/strong&gt;&lt;br&gt;
useContext is a React hook that lets you access values from a Context directly, without prop drilling.&lt;/p&gt;

&lt;p&gt;It works with the Context API, which is React’s built-in way to share data across components without passing props manually.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How it Works&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Create a Context&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="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;createContext&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react&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;UserContext&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createContext&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This creates a "box" to store shared data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Provide the Context Value&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="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;App&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="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;UserContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Provider&lt;/span&gt; &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Saran"&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;Dashboard&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;UserContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Provider&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;Provider makes the value ("Saran") available to all child components.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Consume the Context with useContext&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Use useContext?&lt;/strong&gt;&lt;br&gt;
Avoids Prop Drilling: No more passing props through multiple layers.&lt;/p&gt;

&lt;p&gt;Cleaner Code: Components only use what they need.&lt;/p&gt;

&lt;p&gt;Centralized State: Useful for themes, authentication, language settings, etc.&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;useContext&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react&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;Profile&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;user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useContext&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;UserContext&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;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Hello, &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;user&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;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>react-5</title>
      <dc:creator>vishwa v</dc:creator>
      <pubDate>Sat, 05 Sep 2026 15:40:11 +0000</pubDate>
      <link>https://dev.to/vishwa_v_04111c0586f440b6/r-4ogi</link>
      <guid>https://dev.to/vishwa_v_04111c0586f440b6/r-4ogi</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is Prop Drilling?&lt;/strong&gt;&lt;br&gt;
Definition: Passing data (props) from a parent component down through several intermediate components until it reaches the child that actually needs it.&lt;/p&gt;

&lt;p&gt;Problem: Intermediate components receive props they don’t use, cluttering the code and making debugging harder.&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;function&lt;/span&gt; &lt;span class="nf"&gt;Parent&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;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello from Parent&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="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Child&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;message&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;function&lt;/span&gt; &lt;span class="nf"&gt;Child&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;message&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;Grandchild&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;message&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;function&lt;/span&gt; &lt;span class="nf"&gt;Grandchild&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;message&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;p&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;message&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;/p&amp;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;&lt;strong&gt;Solutions to Avoid Prop Drilling&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;React Context API&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Provides a way to share values without passing props manually.&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;UserContext&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createContext&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;App&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;UserContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Provider&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="s2"&gt;amount&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;GrandChild&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="sr"&gt;/UserContext.Provider&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="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;GrandChild&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;user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useContext&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;UserContext&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;p&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="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;user&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;/p&amp;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;



</description>
    </item>
    <item>
      <title>react-4</title>
      <dc:creator>vishwa v</dc:creator>
      <pubDate>Fri, 04 Sep 2026 16:05:42 +0000</pubDate>
      <link>https://dev.to/vishwa_v_04111c0586f440b6/react-4-2h68</link>
      <guid>https://dev.to/vishwa_v_04111c0586f440b6/react-4-2h68</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is Cleanup&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you use useEffect, sometimes you set up things that live outside your component:&lt;/p&gt;

&lt;p&gt;Event listeners (window.addEventListener)&lt;/p&gt;

&lt;p&gt;Subscriptions (like WebSocket or Firebase)&lt;/p&gt;

&lt;p&gt;Timers (setInterval, setTimeout)&lt;/p&gt;

&lt;p&gt;External resources (like API connections)&lt;/p&gt;

&lt;p&gt;If you don’t remove them when the component unmounts, they keep running in the background → causing bugs, memory leaks, or duplicate behavior.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How Cleanup Works&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;React lets you return a function inside useEffect.&lt;br&gt;
That function runs:&lt;/p&gt;

&lt;p&gt;Before the component unmounts (to clean up resources).&lt;/p&gt;

&lt;p&gt;Before the effect re-runs (to reset old setup before applying new one).&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;useEffect&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;TimerExample&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="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="nf"&gt;useEffect&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;intervalId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;setInterval&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;prevCount&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;prevCount&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="mi"&gt;1000&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;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nf"&gt;clearInterval&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;intervalId&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="s2"&gt;Interval cleared!&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="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;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Timer 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;h1&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="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;TimerExample&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

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

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>react(useEffect)</title>
      <dc:creator>vishwa v</dc:creator>
      <pubDate>Wed, 02 Sep 2026 18:54:09 +0000</pubDate>
      <link>https://dev.to/vishwa_v_04111c0586f440b6/reactuseeffect-43di</link>
      <guid>https://dev.to/vishwa_v_04111c0586f440b6/reactuseeffect-43di</guid>
      <description>&lt;p&gt;&lt;strong&gt;What does render mean in React?&lt;/strong&gt;&lt;br&gt;
Render = React drawing your component’s UI on the screen.&lt;/p&gt;

&lt;p&gt;Every time React needs to show something new (like updated text, a new list item, or a changed button state), it re-runs your component function and updates the DOM (the browser’s page structure).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When does a render happen?&lt;/strong&gt;&lt;br&gt;
Initial render → when the component first appears on the page.&lt;br&gt;
Example: opening your app → React draws .&lt;/p&gt;

&lt;p&gt;Re-render → whenever state or props change.&lt;br&gt;
Example: typing in the input → text state changes → React redraws the input with the new value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why useEffect&lt;/strong&gt;&lt;br&gt;
useEffect is not about re-rendering — it’s about running side effects after React finishes rendering.&lt;/p&gt;

&lt;p&gt;State (useState) → controls your component’s data and triggers re-renders.&lt;/p&gt;

&lt;p&gt;Effect (useEffect) → lets you run extra code after the render happens.&lt;/p&gt;

&lt;p&gt;Think of it like this:&lt;/p&gt;

&lt;p&gt;useState = “React, redraw my component with new data.”&lt;/p&gt;

&lt;p&gt;useEffect = “React, after you finish drawing, also do this extra work.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;diff blw useEffect and useState&lt;/strong&gt;&lt;br&gt;
Rendering with useState:&lt;br&gt;
Whenever you call setState (like setText), React must re-run your component function to update the UI.&lt;/p&gt;

&lt;p&gt;Even if the change is small (like typing one letter), React redraws the component.&lt;/p&gt;

&lt;p&gt;For a big component with lots of code, yes, React has to go through all of it again — but React is optimized to only update the parts of the DOM that actually changed. So it’s not as “heavy” as it sounds.&lt;/p&gt;

&lt;p&gt;Where useEffect fits:&lt;br&gt;
useEffect does not reduce rendering time.&lt;/p&gt;

&lt;p&gt;Instead, it’s a place to put side effects (things outside the normal UI update, like fetching data, logging, timers, subscriptions).&lt;/p&gt;

&lt;p&gt;The key difference:&lt;/p&gt;

&lt;p&gt;useState → triggers re-render when data changes.&lt;/p&gt;

&lt;p&gt;useEffect → runs extra code after React finishes rendering.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cases&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;No dependency array&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="nx"&gt;jsx&lt;/span&gt;
&lt;span class="nf"&gt;useEffect&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="s2"&gt;Runs after every render&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Runs after every render, no matter what changed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Empty dependency array []&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="nx"&gt;jsx&lt;/span&gt;
&lt;span class="nf"&gt;useEffect&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="s2"&gt;Runs only once (on mount)&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Runs only once when the component first loads (like componentDidMount).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;With specific dependencies&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="nx"&gt;jsx&lt;/span&gt;
&lt;span class="nf"&gt;useEffect&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="s2"&gt;Text changed:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;text&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;text&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Runs only when text changes.&lt;br&gt;
If you type in the input, it logs. If something else re-renders but text didn’t change, it won’t run.&lt;/p&gt;

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