<?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>Forem: Nikhilesh Mauje</title>
    <description>The latest articles on Forem by Nikhilesh Mauje (@nikhilesh_mauje_24).</description>
    <link>https://forem.com/nikhilesh_mauje_24</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%2F1933263%2F553d92bd-7e6f-4fc2-8790-1fed8172583a.png</url>
      <title>Forem: Nikhilesh Mauje</title>
      <link>https://forem.com/nikhilesh_mauje_24</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/nikhilesh_mauje_24"/>
    <language>en</language>
    <item>
      <title>Master React.js by Focusing on the Vital 20% Concepts</title>
      <dc:creator>Nikhilesh Mauje</dc:creator>
      <pubDate>Tue, 17 Dec 2024 06:28:22 +0000</pubDate>
      <link>https://forem.com/nikhilesh_mauje_24/master-reactjs-by-focusing-on-the-vital-20-concepts-c3m</link>
      <guid>https://forem.com/nikhilesh_mauje_24/master-reactjs-by-focusing-on-the-vital-20-concepts-c3m</guid>
      <description>&lt;p&gt;When it comes to learning any technology, there’s a golden rule: focus on the most impactful 20% of concepts to grasp 80% of its functionality. React.js is no exception! By zeroing in on the key ideas, you’ll save time and build a solid foundation for creating interactive, dynamic web applications.&lt;/p&gt;

&lt;p&gt;In this blog post, I’ll walk you through the &lt;strong&gt;essential 20% of React.js concepts&lt;/strong&gt; you need to know. Once you master these, you’ll be confident enough to build your first React app and tackle more advanced topics with ease.&lt;/p&gt;

&lt;p&gt;This is just an &lt;strong&gt;overview of concepts&lt;/strong&gt; that you can start with to get a better grip on the React library. Once you're comfortable with these, you can explore more advanced topics like Context API, Redux, and Server-Side Rendering (SSR).&lt;/p&gt;

&lt;p&gt;And the best part? You don’t need expensive courses to learn React—there are plenty of &lt;strong&gt;free resources&lt;/strong&gt; on YouTube that can help you become a pro! I’ve listed some excellent YouTube channels at the end of this post.&lt;/p&gt;

&lt;p&gt;Let’s get started!&lt;/p&gt;

&lt;h2&gt;
  
  
  What is React.js?
&lt;/h2&gt;

&lt;p&gt;React.js is an open-source JavaScript library used to build modern user interfaces (UIs). It helps developers create interactive web apps by breaking the UI into reusable components. Whether you're building a small personal project or a large enterprise-level application, React.js can scale with you.&lt;/p&gt;

&lt;p&gt;Now, here’s the 20% of React concepts that you should focus on to understand 80% of how it works:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. JSX (JavaScript XML)
&lt;/h3&gt;

&lt;p&gt;JSX lets you write HTML-like syntax inside JavaScript. It makes the code easier to read and write.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const greeting = &amp;lt;h1&amp;gt;Hello, World!&amp;lt;/h1&amp;gt;;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Key Points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JSX must return one parent element.&lt;/li&gt;
&lt;li&gt;Use {} to embed JavaScript expressions inside JSX.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Components: Functional and Class
&lt;/h3&gt;

&lt;p&gt;React apps are built with components. Components are like building blocks of a UI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Functional Components:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function Welcome(props) {
    return &amp;lt;h1&amp;gt;Hello, {props.name}!&amp;lt;/h1&amp;gt;;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Class Components (less common nowadays with hooks):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Welcome extends React.Component {
    render() {
        return &amp;lt;h1&amp;gt;Hello, {this.props.name}!&amp;lt;/h1&amp;gt;;
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Props (Properties)
&lt;/h3&gt;

&lt;p&gt;Props let you pass data from a parent component to a child component.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function Greeting(props) {
    return &amp;lt;h1&amp;gt;{props.message}&amp;lt;/h1&amp;gt;;
}
&amp;lt;Greeting message="Welcome to React" /&amp;gt;;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Key Point:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Props are read-only and cannot be modified by the child component.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. State
&lt;/h3&gt;

&lt;p&gt;State is like a "memory" for a component that allows it to track changes.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React, { useState } from "react";

function Counter() {
    const [count, setCount] = useState(0);
    return (
        &amp;lt;div&amp;gt;
            &amp;lt;p&amp;gt;Count: {count}&amp;lt;/p&amp;gt;
            &amp;lt;button onClick={() =&amp;gt; setCount(count + 1)}&amp;gt;Increment&amp;lt;/button&amp;gt;
        &amp;lt;/div&amp;gt;
    );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Key Point:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use the useState hook to manage state in functional components.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Lifecycle Methods
&lt;/h3&gt;

&lt;p&gt;Lifecycle methods allow class components to perform tasks at different stages:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mounting:&lt;/strong&gt; &lt;code&gt;componentDidMount()&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;Updating:&lt;/strong&gt; &lt;code&gt;componentDidUpdate()&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;Unmounting:&lt;/strong&gt; &lt;code&gt;componentWillUnmount()&lt;/code&gt;&lt;br&gt;
Functional components achieve similar behavior using the &lt;code&gt;useEffect&lt;/code&gt; hook.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;useEffect(() =&amp;gt; {
    console.log("Component mounted or updated");
    return () =&amp;gt; console.log("Component unmounted");
}, []);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  6. Hooks
&lt;/h3&gt;

&lt;p&gt;Hooks lets you use state and other React features in functional components.&lt;/p&gt;

&lt;p&gt;Common hooks:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;useState:&lt;/strong&gt; Manage state.&lt;br&gt;
&lt;strong&gt;useEffect:&lt;/strong&gt; Handle side effects like fetching data.&lt;br&gt;
&lt;strong&gt;useContext:&lt;/strong&gt; Access global data.&lt;br&gt;
Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const [data, setData] = useState([]);
useEffect(() =&amp;gt; {
    fetch("https://api.example.com")
        .then((response) =&amp;gt; response.json())
        .then((data) =&amp;gt; setData(data));
}, []);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  7. Events in React
&lt;/h3&gt;

&lt;p&gt;React uses camelCase syntax for event handlers like onClick or onChange.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function ClickButton() {
    const handleClick = () =&amp;gt; alert("Button clicked!");
    return &amp;lt;button onClick={handleClick}&amp;gt;Click Me&amp;lt;/button&amp;gt;;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  8. Conditional Rendering
&lt;/h3&gt;

&lt;p&gt;Render different components or content based on conditions.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function Greeting({ isLoggedIn }) {
    return isLoggedIn ? &amp;lt;h1&amp;gt;Welcome back!&amp;lt;/h1&amp;gt; : &amp;lt;h1&amp;gt;Please log in.&amp;lt;/h1&amp;gt;;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  9. Lists and Keys
&lt;/h3&gt;

&lt;p&gt;When rendering lists, use the key attribute to improve performance.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const items = ["Apple", "Banana", "Cherry"];
return (
    &amp;lt;ul&amp;gt;
        {items.map((item, index) =&amp;gt; (
            &amp;lt;li key={index}&amp;gt;{item}&amp;lt;/li&amp;gt;
        ))}
    &amp;lt;/ul&amp;gt;
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  10. React Router
&lt;/h3&gt;

&lt;p&gt;For building multi-page applications, React Router is essential.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { BrowserRouter as Router, Route, Routes } from "react-router-dom";

function App() {
    return (
        &amp;lt;Router&amp;gt;
            &amp;lt;Routes&amp;gt;
                &amp;lt;Route path="/" element={&amp;lt;Home /&amp;gt;} /&amp;gt;
                &amp;lt;Route path="/about" element={&amp;lt;About /&amp;gt;} /&amp;gt;
            &amp;lt;/Routes&amp;gt;
        &amp;lt;/Router&amp;gt;
    );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Resources for you to Learn React for Free:
&lt;/h3&gt;

&lt;p&gt;Learning React.js doesn’t have to cost you a dime! You can get started with free, high-quality tutorials on YouTube. Here are some of the best YouTube channels to learn React.js:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Traversy Media&lt;/strong&gt;&lt;br&gt;
Brad Traversy offers beginner-friendly tutorials for React and other web development technologies. His explanations are simple, and his projects are practical.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Codevolution&lt;/strong&gt;&lt;br&gt;
Codevolution provides detailed videos, including a full React.js crash course and videos on hooks, state management, and more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Net Ninja&lt;/strong&gt;&lt;br&gt;
This channel offers a structured React playlist covering everything from the basics to advanced concepts like Redux.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;freeCodeCamp.org&lt;/strong&gt;&lt;br&gt;
They have a 5-hour beginner-friendly React tutorial that’s perfect if you want a deep dive into the library.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Academind&lt;/strong&gt;&lt;br&gt;
Their React series is well-organized and includes practical examples that explain concepts clearly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Programming with Mosh&lt;/strong&gt;&lt;br&gt;
Mosh’s React tutorials focus on building real-world apps and are great for developers of all levels.&lt;/p&gt;

&lt;h3&gt;
  
  
  Final Words
&lt;/h3&gt;

&lt;p&gt;By focusing on these 20% of React.js concepts, you’ll be well on your way to building responsive, interactive web apps. And remember, this is just the beginning! Dive into these free YouTube resources, build some small projects, and keep experimenting.&lt;/p&gt;

&lt;p&gt;Let me know in the comments what you think about this approach, or share your favorite React learning resources if I’ve missed any.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Push Your Local Code To Remote Repository</title>
      <dc:creator>Nikhilesh Mauje</dc:creator>
      <pubDate>Tue, 29 Oct 2024 08:03:45 +0000</pubDate>
      <link>https://forem.com/nikhilesh_mauje_24/push-your-local-code-to-remote-repository-1k7f</link>
      <guid>https://forem.com/nikhilesh_mauje_24/push-your-local-code-to-remote-repository-1k7f</guid>
      <description>&lt;p&gt;&lt;strong&gt;1. Initialize Git (if not already initialized)&lt;/strong&gt;&lt;br&gt;
If you haven’t already initialized Git in your local project folder, do so with:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git init&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Add a Remote Repository&lt;/strong&gt;&lt;br&gt;
If you haven’t linked your local repository to a remote repository yet, add a remote:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git remote add origin &amp;lt;REMOTE_URL&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Replace  with the URL of your remote repository (e.g., a GitHub repository link).&lt;/p&gt;

&lt;p&gt;To check if the remote is added, use:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git remote -v&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Add and Commit Your Changes&lt;/strong&gt;&lt;br&gt;
Stage all changes in your local repository:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git add .&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Commit the staged changes with a message:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git commit -m "Commit Message"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Push to the Remote Repository&lt;/strong&gt;&lt;br&gt;
Now push your code to the remote repository's main branch (replace main with your branch name if it's different):&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git push -u origin main&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The -u option sets origin/main as the default upstream branch. This way, future git push commands can be done without specifying origin and main.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Verify Your Push&lt;/strong&gt;&lt;br&gt;
After pushing, you can check your repository on GitHub or your Git hosting provider to ensure your code was uploaded successfully.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Happy Coding!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>commands</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Hacktoberfest 2024 Journey as a First-Time Contributor</title>
      <dc:creator>Nikhilesh Mauje</dc:creator>
      <pubDate>Fri, 25 Oct 2024 18:27:12 +0000</pubDate>
      <link>https://forem.com/nikhilesh_mauje_24/hacktoberfest-2024-journey-as-a-first-time-contributor-dp</link>
      <guid>https://forem.com/nikhilesh_mauje_24/hacktoberfest-2024-journey-as-a-first-time-contributor-dp</guid>
      <description>&lt;p&gt;This year, I participated in Hacktoberfest, marking my first experience contributing to open source. Despite being new to the process, I learned so much from the event, from understanding pull requests and issue creation to resolving merge conflicts. Here’s my journey, challenges I faced, and the key takeaways I gained along the way.&lt;/p&gt;

&lt;p&gt;Hacktoberfest opened my eyes to the world of open source collaboration, which was unfamiliar territory for me. I faced initial challenges with pull requests, figuring out how to create issues, and understanding the workflow of contributing to others' repositories. After several missteps, I got the hang of it—learning by trial and error and consulting ChatGPT whenever I hit a roadblock. By October 23rd, I successfully completed all four required PRs(4th PR is in Review Period), feeling accomplished and much more knowledgeable.&lt;/p&gt;

&lt;p&gt;The journey wasn't smooth sailing. Many times, I felt stuck or unsure, especially when conflicts arose, but by persisting and seeking help, I managed to overcome each hurdle. I learned to navigate issues independently, which cleared up many of my initial doubts and made the experience rewarding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tips for Future Hacktoberfest Participants which I felt important to share:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Start Early in "Preptember"&lt;/strong&gt;: I began finding Hacktoberfest-labeled repositories in September end, which gave me a head start in creating issues and familiarizing myself with projects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Choose Beginner-Friendly Repositories&lt;/strong&gt;: If you’re new to programming or open source, look for repositories tagged with beginner-friendly languages like HTML, CSS, and JavaScript or any other in which you feel comfortable. Hacktoberfest is an ideal platform to learn as you go.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Follow the Code of Conduct&lt;/strong&gt;: Always review the repository’s contribution guidelines and Hacktoberfest's rules to ensure your PRs are valid.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Finding Repositories to Contribute To&lt;/strong&gt;:
found beginner-friendly repositories through a mix of methods:&lt;/li&gt;
&lt;li&gt;Searching GitHub for "beginner-friendly" and "Hacktoberfest" tags.&lt;/li&gt;
&lt;li&gt;Checking LinkedIn posts where users shared Hacktoberfest projects.&lt;/li&gt;
&lt;li&gt;Getting recommendations from friends also participating in Hacktoberfest.&lt;/li&gt;
&lt;li&gt;Exploring YouTube, where creators often highlight repositories and give tips on Hacktoberfest.&lt;/li&gt;
&lt;/ul&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%2Fo0cfw8o5qdwi8ffs1620.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%2Fo0cfw8o5qdwi8ffs1620.PNG" alt="My badges, didn't got final Level badge as final PR is in Review " width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For me, &lt;strong&gt;Hacktoberfest 2024&lt;/strong&gt; was about much more than just contributing to open source. It was a journey of staying consistent, focused, and resilient—even when I couldn’t figure things out immediately. From simply registering for Hacktoberfest last year to earning the badge for completing all four PRs this year, it’s been a rewarding path of growth and self-improvement.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hacktoberfest</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
