<?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: Sneha Jalukar</title>
    <description>The latest articles on DEV Community by Sneha Jalukar (@snehacodes).</description>
    <link>https://dev.to/snehacodes</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%2F447571%2F7e4b5adf-9613-4fba-8cbe-3de29b61e66f.jpeg</url>
      <title>DEV Community: Sneha Jalukar</title>
      <link>https://dev.to/snehacodes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/snehacodes"/>
    <language>en</language>
    <item>
      <title>Writing Arrow Functions in Modern JavaScript</title>
      <dc:creator>Sneha Jalukar</dc:creator>
      <pubDate>Mon, 25 Jan 2021 15:14:36 +0000</pubDate>
      <link>https://dev.to/snehacodes/writing-arrow-functions-in-modern-javascript-2mia</link>
      <guid>https://dev.to/snehacodes/writing-arrow-functions-in-modern-javascript-2mia</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;Background&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;When I started learning JavaScript, one of the most confusing things -- especially when I was looking at snippets of code online -- was understanding how arrow functions are composed.&lt;/p&gt;

&lt;p&gt;If you haven't written JavaScript code in a few years, or are new to functional programming, this may look strange at first, but don't let that intimidate you!&lt;/p&gt;

&lt;p&gt;I hope this post serves as a quick and useful reference.&lt;/p&gt;

&lt;p&gt;While a traditional function in JavaScript will look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function(a,b){
  return a+b;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Writing that as an arrow function would take that code snippet down to one line, as you'll see shortly.&lt;/p&gt;

&lt;p&gt;How do you convert traditional functions to arrow functions? Just remember FABR!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Functions - Drop the word "function"&lt;/li&gt;
&lt;li&gt;Arrow - Add the arrow&lt;/li&gt;
&lt;li&gt;Brackets - Remove the brackets&lt;/li&gt;
&lt;li&gt;Return - Remove the word "return"&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 1: Drop the word "function"&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The first thing you'll want to do is drop the word "function" from the word, as the ==&amp;gt; characters imply this is already a function.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 2: Add the arrow&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Once you drop the word "function" then you'll also want to add ==&amp;gt;.&lt;/p&gt;

&lt;p&gt;Continuing to work with the function we started with, it would look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(a,b) ==&amp;gt; { 
return a+b;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Step 3: Remove the brackets&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;After this step, our almost-complete arrow function will look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(a,b) ==&amp;gt; return a+b;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Step 4: Remove the word "return"&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Finally, all that's left to do is take out the word "return" and we're done converting this to the arrow function syntax!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(a,b) ==&amp;gt; a + b;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;I hope this post serves as a quick reference or good refresher if you're new to the world of JavaScript / web development.&lt;/p&gt;

&lt;p&gt;For more examples, the MDN Web Docs are a great place to look: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions" rel="noopener noreferrer"&gt;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Stay safe, and stay curious!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>es6</category>
      <category>arrowfunctions</category>
    </item>
    <item>
      <title>How to build your own academic website at Oakland University</title>
      <dc:creator>Sneha Jalukar</dc:creator>
      <pubDate>Tue, 20 Oct 2020 20:46:18 +0000</pubDate>
      <link>https://dev.to/snehacodes/how-to-build-your-own-academic-website-at-oakland-university-501b</link>
      <guid>https://dev.to/snehacodes/how-to-build-your-own-academic-website-at-oakland-university-501b</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;Preface&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Are you an engineering student or faculty member at Oakland University? Then, read on. This post is for you!&lt;/p&gt;

&lt;p&gt;It took me a while to discover the ability to create a website under the secs.oakland.edu domain. After multiple days of trial and error, I was able to set up a personal website: &lt;a href="http://secs.oakland.edu/%7Ejalukar" rel="noopener noreferrer"&gt;http://secs.oakland.edu/~jalukar&lt;/a&gt;. I'm writing this post to make it easy for students and staff within Oakland University's School of Engineering &amp;amp; Computer Science to easily create their own websites!&lt;/p&gt;

&lt;p&gt;You might be asking - why make your own website?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;It's a great way to showcase your work to employers.&lt;/li&gt;
&lt;li&gt;You can represent yourself in a professional way. Having a website on a .edu domain is a universally trustworthy sign.&lt;/li&gt;
&lt;li&gt;Building/coding a website is a great way to prepare yourself for the modern workforce, especially if you are in the engineering field. You'll undoubtedly learn some HTML, CSS, JavaScript and you'll learn how to work with some network engineering tools.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Part 1: Requirements&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;First and foremost, you must have an Oakland University SECS account to get started. If you're new to the university, you may need to request it at this link: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://oakland.edu/secs/technology-office/" rel="noopener noreferrer"&gt;https://oakland.edu/secs/technology-office/&lt;/a&gt;&lt;/p&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%2Fi%2Fycnr8fkicfuatc6deza1.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%2Fi%2Fycnr8fkicfuatc6deza1.png" alt="SECS Technology Office Website" width="800" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In addition, you should have the following software utilities downloaded:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://code.visualstudio.com/" rel="noopener noreferrer"&gt;Visual Studio Code&lt;/a&gt; (or any text editor of your choice)&lt;/li&gt;
&lt;li&gt;SonicWall Connect Tunnel (scroll down on &lt;a href="https://www.sonicwall.com/products/remote-access/vpn-clients/" rel="noopener noreferrer"&gt;this page&lt;/a&gt; to download)&lt;/li&gt;
&lt;li&gt;Download a FTP Client (&lt;a href="https://cyberduck.io/" rel="noopener noreferrer"&gt;Cyberduck&lt;/a&gt; or &lt;a href="https://filezilla-project.org/" rel="noopener noreferrer"&gt;Filezilla&lt;/a&gt; are great free options). I personally have had a great experience using Cyberduck.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Part 2: Building your website!&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This is the fun part -- you can now build a website! You will be using HTML, CSS, and potentially some JavaScript to get your website working. If you don't know what that means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Watch &lt;a href="https://www.youtube.com/watch?v=mudOTSUumXg" rel="noopener noreferrer"&gt;this video&lt;/a&gt; for an introduction to HTTP, HTML and CSS. You can fast-forward to ~30 minutes if you just want to learn how to make a website). &lt;/li&gt;
&lt;li&gt;Reference &lt;a href="https://docs.google.com/presentation/d/1MnPu0XXm7itpIy8bX377IXSULCkzV7zzFO-GA6gO4O0/" rel="noopener noreferrer"&gt;this presentation&lt;/a&gt;, which I created a few years ago to teach beginners how to make websites.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you've worked with these languages before, there are plenty of templates to get started with! If you need inspiration, check out the links below for some free starter templates (just be sure to &lt;a href="https://tldrlegal.com/" rel="noopener noreferrer"&gt;give credit where it's due&lt;/a&gt; if you end up using something).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/mavroudisv/plain-academic" rel="noopener noreferrer"&gt;Plain Academic Template by Vasilios Mavroudis&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dmsl/academic-responsive-template" rel="noopener noreferrer"&gt;Academic Responsive Template by Demetris Zeinalipour&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://html5up.net/" rel="noopener noreferrer"&gt;HTML5UP Templates under the Creative Commons License&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can open up these templates in any text editor (&lt;a href="https://code.visualstudio.com/" rel="noopener noreferrer"&gt;Visual Studio Code&lt;/a&gt; is a great one to get started with), and customize the design/content to fit your own needs.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Part 3: Connect to the Oakland University VPN&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;NOTE: If you're connected to a WiFi network on campus, you can skip this step. Otherwise, assuming you're off-campus, you'll need to be connected to a VPN for this to work!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Before you use an FTP Client to put your website's code on Oakland University's server, you are required to connect to the OU VPN! The easiest route would be to use Connect Tunnel (the program mentioned above). &lt;/p&gt;

&lt;p&gt;Simply follow the instructions &lt;a href="https://www.secs.oakland.edu/docs/pdf/vpn.pdf" rel="noopener noreferrer"&gt;here&lt;/a&gt; for an overview.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;After selecting "add configuration," enter &lt;code&gt;remote.secs.oakland.edu&lt;/code&gt; as the server URL&lt;/li&gt;
&lt;li&gt;Select &lt;code&gt;SECS&lt;/code&gt; as the login group on the next page&lt;/li&gt;
&lt;li&gt;Enter your &lt;code&gt;username&lt;/code&gt; and &lt;code&gt;password&lt;/code&gt; on the next prompt&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/8NWcUzgmp1A"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Congrats, you're connected to the VPN! If you have issues with this, double-check the spelling for everything you typed, as everything is case-sensitive. If you are still having issues, use the link on &lt;a href="https://oakland.edu/secs/technology-office/" rel="noopener noreferrer"&gt;this page&lt;/a&gt; to reset your SECS password.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Part 4: Time to put it on the web&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Now that you are connected to the Oakland University VPN, it's time to open Cyberduck (or the FTP Client you prefer). You can follow the steps below &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click "Open Connection" or the "+" button to configure a new connection&lt;/li&gt;
&lt;li&gt;Select "SFTP (SSH File Transfer Protocol) from the dropdown&lt;/li&gt;
&lt;li&gt;For the server, enter &lt;code&gt;login.secs.oakland.edu&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Enter your SECS &lt;code&gt;username&lt;/code&gt; and &lt;code&gt;password&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Press "connect" or double click on the connection on the main dashboard to connect with this configuration&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/4huCPop7y4A"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;If you have trouble connecting, first make sure you're connected to the OU VPN or connected to a campus network. Then, double-check all of your settings. If that doesn't help, you'll need to go to the &lt;a href="https://oakland.edu/secs/technology-office/" rel="noopener noreferrer"&gt;technology office&lt;/a&gt; for assistance. &lt;/p&gt;

&lt;p&gt;Once you're successfully authenticated, create a folder called &lt;code&gt;public_html&lt;/code&gt; in the directory you are in. From here, simply drag/drop or upload the HTML/CSS/JavaScript files for your website to this directory and view your website at &lt;code&gt;http://secs.oakland.edu/~username&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;
  [Optional] If you would like to connect via SSH from your terminal, you can use the steps below.
  &lt;ol&gt;
&lt;li&gt;Open &lt;code&gt;terminal&lt;/code&gt; or &lt;code&gt;command prompt&lt;/code&gt; on your computer.&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;ssh username@login.secs.oakland.edu&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Enter your password&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's it - you're connected! Now you can use &lt;code&gt;git&lt;/code&gt; and other linux commands, and clone projects right into to your working directory. &lt;/p&gt;



&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Closing Notes&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Congratulations, you now have a fully functioning website on an oakland.edu subdomain! &lt;/p&gt;

&lt;p&gt;If you want to go further, you can upload your resume to the &lt;code&gt;public_html&lt;/code&gt; folder (you can then link to it like &lt;a href="https://www.secs.oakland.edu/~jalukar/resume.pdf" rel="noopener noreferrer"&gt;this&lt;/a&gt;). According to &lt;a href="https://www.secs.oakland.edu/docs/pdf/personalWebSites.pdf" rel="noopener noreferrer"&gt;documentation&lt;/a&gt;, the SECS web server allows you to add PHP, Perl, and Python files and also connect with a MySQL database.&lt;/p&gt;

&lt;p&gt;Have fun coding!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: If you have a suggestion for how to improve this article, or if you were confused anywhere, &lt;a href="https://twitter.com/shriyashjalukar" rel="noopener noreferrer"&gt;shoot me a message&lt;/a&gt;. My goal is to make this as beginner-friendly as possible!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>oaklanduniversity</category>
      <category>html</category>
      <category>css</category>
    </item>
    <item>
      <title>5 things to know when starting out with React</title>
      <dc:creator>Sneha Jalukar</dc:creator>
      <pubDate>Sat, 03 Oct 2020 18:36:57 +0000</pubDate>
      <link>https://dev.to/snehacodes/5-things-to-know-when-starting-out-with-react-17gg</link>
      <guid>https://dev.to/snehacodes/5-things-to-know-when-starting-out-with-react-17gg</guid>
      <description>&lt;p&gt;When I started my Software Engineering Internship this past summer, I knew I wanted to work with front-end technologies - and React was one of the first things that came to my mind. &lt;/p&gt;

&lt;p&gt;However, I didn't know where to start. With things changing very quickly in the JavaScript community it was hard to know what to do first. &lt;/p&gt;

&lt;p&gt;After an extensive learning process, I finally began to understand the tools available to me. Now, I want to share them here so that new developers can become productive more quickly. Here are the five things you should do / know when first starting out with React!&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1. Introducing JSX: HTML and JavaScript together?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;From &lt;a href="https://reactjs.org/docs/introducing-jsx.html" rel="noopener noreferrer"&gt;React's own documentation&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;React embraces the fact that rendering logic is inherently coupled with other UI logic: how events are handled, how the state changes over time, and how the data is prepared for display.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;JSX stands for JavaScript XML. It's a syntax extension to JavaScript and it is used in React projects - meaning it is compiled into JavaScript. It may look just like a templating language at first, but it also adds all of the capabilities of JavaScript.&lt;/p&gt;

&lt;p&gt;At a high level, JSX is actually compiled to JavaScript through a "transpiler" called Babel. JSX in a React project &lt;a href="https://reactjs.org/docs/jsx-in-depth.html" rel="noopener noreferrer"&gt;provides syntactic sugar&lt;/a&gt; for the React.createElement() function. If you use the tool at &lt;a href="https://babeljs.io/repl" rel="noopener noreferrer"&gt;https://babeljs.io/repl&lt;/a&gt;, you can easily see what your JSX code is compiled into.&lt;/p&gt;

&lt;p&gt;For example, if you use JSX in your React application you could write:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div className="sample-class"&amp;gt; 
  &amp;lt;h1&amp;gt; Hello World &amp;lt;/h1&amp;gt; 
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The implementation of the code in raw JavaScript becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;React.createElement(
  "div",
  {
    className: "sample-class"
  },
  React.createElement("h1", null, " Hello World ")
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Furthermore, when getting started with React, something important to know is that the React DOM uses the camelCase property naming convention instead of HTML attribute names. &lt;/p&gt;

&lt;p&gt;Something that specifically confused me when starting out was the fact that the &lt;code&gt;class&lt;/code&gt; attribute in HTML is referenced as &lt;code&gt;className&lt;/code&gt; in JSX (because of class being a reserved word in JavaScript). JSX is closer to JavaScript than HTML - knowing all of the syntactical features within JSX will set you up for success when working more in-depth with React.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2. Immutability is a key concept&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;When learning JavaScript and getting in-depth into concepts in React, there is no way to get around the importance of immutability. So what is &lt;em&gt;immutability&lt;/em&gt;? Well, it's the opposite of mutable, which means changeable / able to be modified. So, immutability in the context of development means something's value cannot be changed or modified (such as a variable or object). &lt;/p&gt;

&lt;p&gt;For example, take the following object&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const object = {
  foo: 'bar'
};
object.baz = 'qux';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the example above, we are modifying the object by directly adding a new key value pair (baz = qux). A better approach keeping immutability in mind would be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const object = {
  foo: 'bar'
}
const modifiedObject = {
  ...foo,
  baz: 'qux'
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I'll point you to the &lt;a href="https://redux.js.org/faq/immutable-data#what-are-the-benefits-of-immutability" rel="noopener noreferrer"&gt;Redux documentation&lt;/a&gt; for a more detailed overview of why Redux requires it (which is often used alongside React).&lt;/p&gt;

&lt;p&gt;Immutability has performance benefits (due to reduced memory usage) and it causes less bugs. In contrast, mutation of variables can often go unnoticed and produce unexpected side effects. Dave Ceddia gives an in-depth overview of the importance of immutability &lt;a href="https://daveceddia.com/react-redux-immutability-guide/" rel="noopener noreferrer"&gt;here&lt;/a&gt; if you want a great starting point.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3. Props: How Data Flows In React&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Without going into too much detail, the concept of props (and learning how data flows in React) is one of the most fundamental concepts you will want to learn. You can think of props like you think of attributes in HTML. &lt;/p&gt;

&lt;p&gt;Props (short for properties) are a way to pass arguments into components. Props are passed in one direction, down into components.&lt;/p&gt;

&lt;p&gt;For example, let a child component be written as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Navigation extends React.Component {
  render() {
    return &amp;lt;h2&amp;gt;Link to: {this.props.tile}!&amp;lt;/h2&amp;gt;;
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, the parent component could reuse the Sidebar component as many times as needed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class App extends React.Component {
  render() {
    return (
      &amp;lt;div&amp;gt;
      &amp;lt;h1&amp;gt;Navigation&amp;lt;/h1&amp;gt;
      &amp;lt;Navigation tile="Home" /&amp;gt;
      &amp;lt;Navigation tile="About Us" /&amp;gt;
      &amp;lt;Navigation tile="Contact Us" /&amp;gt;
      &amp;lt;/div&amp;gt;
    );
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The syntax will look different in functional components, but the approach is similar. One important thing to know is that props are &lt;a href="https://reactjs.org/docs/components-and-props.html#props-are-read-only" rel="noopener noreferrer"&gt;read-only&lt;/a&gt;, and components that receive props must never modify them.&lt;/p&gt;

&lt;p&gt;This directly leads into the concept of &lt;a href="https://reactjs.org/docs/state-and-lifecycle.html" rel="noopener noreferrer"&gt;state&lt;/a&gt;. While props are read-only, state comes in if you need to keep track of data that can change.&lt;/p&gt;

&lt;p&gt;When getting started with React, you'll want to familiarize yourself with Props and State, and get comfortable with how data flows in React applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4. Class-based Components vs Functional Components&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;When I first started researching React, I was scouring through documentation, videos and articles available online. I shortly found out that in 2019, React 16.8 introduced a new feature called &lt;a href="https://reactjs.org/docs/hooks-overview.html" rel="noopener noreferrer"&gt;Hooks&lt;/a&gt;, in which you can use state and other React features without writing a class.&lt;/p&gt;

&lt;p&gt;If you're just getting started with React today, It's important to understand the difference between class-based components and functional components so you aren't confused when looking at guides and documentation online.&lt;/p&gt;

&lt;p&gt;At a general level, class-based components are the original way of using lifecycle methods and incorporating state into a React application. Functional components are "stateless", but allow for the use of "hooks" to where you can reuse stateful logic without changing the component hierarchy. &lt;/p&gt;

&lt;p&gt;Amelia Wattenberger wrote a wonderful guide &lt;a href="https://wattenberger.com/blog/react-hooks" rel="noopener noreferrer"&gt;here&lt;/a&gt;, if you want a starting point to explore the topic more.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5. Install developer tools!&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi" rel="noopener noreferrer"&gt;React Developer Tools (Chrome Extension)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://extension.remotedev.io/" rel="noopener noreferrer"&gt;Redux Developer Tools (Browser Extension)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are a few tools that are incredibly helpful to use when first starting out with React projects. Because logic is split into reusable components, the developer tools allow you to visualize the component tree within a React application (as well as props and state assigned to each component).&lt;/p&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%2Fi%2Fg8mhq0vdyfb4dsbb5rme.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%2Fi%2Fg8mhq0vdyfb4dsbb5rme.png" alt="React Developer Tools" width="800" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, be sure to install useful packages/extensions in your IDE/Text Editor to make it easier to work with React! If you use VSCode you can use this &lt;a href="https://marketplace.visualstudio.com/items?itemName=jawandarajbir.react-vscode-extension-pack" rel="noopener noreferrer"&gt;React Extension Pack&lt;/a&gt;. Other major text editors (like &lt;a href="https://orktes.github.io/atom-react/" rel="noopener noreferrer"&gt;Atom&lt;/a&gt;) will have similar extensions readily available to get you started right away. The syntax highlighting feature goes a long way in making React code more readable, particularly because React is typically written in JSX.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;In Conclusion&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Like anything hard, getting used to the paradigms used in React takes time. I hope this helps as a starting point for those just getting started with using the library.&lt;/p&gt;

&lt;p&gt;If you have any suggestions for how this article can be improved, feel free to reach out!&lt;/p&gt;

</description>
      <category>react</category>
      <category>redux</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
