<?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: Erica Mayes</title>
    <description>The latest articles on Forem by Erica Mayes (@ericamayes).</description>
    <link>https://forem.com/ericamayes</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%2F914271%2Fdf71a0a0-f351-4cf6-bdf1-46a6e8571ab1.jpg</url>
      <title>Forem: Erica Mayes</title>
      <link>https://forem.com/ericamayes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ericamayes"/>
    <language>en</language>
    <item>
      <title>Navigating React.js with useNavigate</title>
      <dc:creator>Erica Mayes</dc:creator>
      <pubDate>Tue, 11 Oct 2022 01:46:36 +0000</pubDate>
      <link>https://forem.com/ericamayes/navigating-reactjs-with-usenavigate-3hj6</link>
      <guid>https://forem.com/ericamayes/navigating-reactjs-with-usenavigate-3hj6</guid>
      <description>&lt;p&gt;In the process of building my first two end-of-phase projects at Flatiron, I happened upon a handful of terms and concepts outside of my curriculum that proved quite useful.&lt;/p&gt;

&lt;p&gt;This was no different in Phase 3, and my project partners and I soon stumbled across a very helpful little React hook called useNavigate. Below I've included a brief overview and a specific use case for the useNavigate hook.&lt;/p&gt;

&lt;h3&gt;
  
  
  Under the Hood
&lt;/h3&gt;

&lt;p&gt;At first glance, useNavigate functions very similarly to its predecessor - useHistory - in that it gives you the ability to navigate programmatically. Prior to React v6, useHistory would hook into React Router's history object and utilize push and replace methods to maneuver to other routers. useNavigate performs similar functionality, but with better compatibility and built-in convenience functions.&lt;/p&gt;

&lt;p&gt;Specifically, useNavigate is a hook that affords access to the navigation object. While every screen component in an application is provided with the navigation prop by default, it is often inconvenient or not functional to pass the navigation prop to a child component directly - enter useNavigate!&lt;/p&gt;

&lt;h3&gt;
  
  
  useNavigate in Action
&lt;/h3&gt;

&lt;p&gt;Let's take a look at a specific use case scenario.&lt;/p&gt;

&lt;p&gt;To start, we'll set up a React app with the latest version of the react-router-dom installed by running these two terminal commands (if using npm):&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;npx&lt;/span&gt; &lt;span class="nx"&gt;create&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;react&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;project_name&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nx"&gt;npm&lt;/span&gt; &lt;span class="nx"&gt;install&lt;/span&gt; &lt;span class="nx"&gt;react&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;router&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;dom&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To demo the capabilities of useNavigate, we'll set up a basic App with two components as children of App.js - About &amp;amp; Contact.&lt;/p&gt;

&lt;p&gt;Next, we have to import React and useNavigate to every file we plan to use them - in our case, both About.js and Contact.js.&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="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;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;Let's create some boiler-plate code:&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="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="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="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;Router&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;./components/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;Contact&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;./components/Contact&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="nx"&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="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Router&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;Routes&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;Route&lt;/span&gt; &lt;span class="na"&gt;exact&lt;/span&gt; &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"/"&lt;/span&gt; &lt;span class="na"&gt;element&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;
              &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Home&lt;/span&gt;&lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Route&lt;/span&gt; &lt;span class="na"&gt;exact&lt;/span&gt; &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"/about"&lt;/span&gt; &lt;span class="na"&gt;element&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;
              &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Contact&lt;/span&gt;&lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
          &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;Routes&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;Router&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;App&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At the top level, we've imported React Router and set up our various routes.&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="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;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="s1"&gt;react-router-dom&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Home&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="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="nx"&gt;useNavigate&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="na"&gt;style&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"text-align:center; color:green"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;The Fellowship of the Ring&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;ul&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;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Frodo&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&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;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Sam&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&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;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Merry&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&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;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Pippin&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&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;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Aragorn&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&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;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Boromir&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&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;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Legolas&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&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;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Gimli&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&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;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Gandalf&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&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;ul&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&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;/contact&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Contact&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;In the Home component, we passed useNavigate a specified route ("/contact"), and then called it inside a click event.&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="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Contact&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;navigate&lt;/span&gt; &lt;span class="o"&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;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="na"&gt;style&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"text-align:center; color:red"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;To contact:&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;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;The Council of Elrond&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Rivendell&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
     &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="nx"&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;/home&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Home&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;In this demo, the useNavigate hook is being used to toggle between a "Home" and "About" page via a button click.&lt;/p&gt;

&lt;h3&gt;
  
  
  Further Color
&lt;/h3&gt;

&lt;p&gt;A few notes about the above code:&lt;/p&gt;

&lt;p&gt;The navigate function can be passed two types arguments: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A 'to' value (in the same style as the '' tag&lt;/li&gt;
&lt;li&gt;A delta to point to a location in the history stack&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example: navigate(-1) is used to redirect the user to the previous page in history, while navigate(1) points them to the next page.&lt;/p&gt;

&lt;p&gt;Additionally, the navigate prop has a number of convenient built-in functions. To outline a few:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;reset - replaces the current state with a new route&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;goBack - moves back in the stack in history&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;setParams - alters the route's params&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;setOptions - edits the screen's options&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;isFocused - confirms the screen is focused&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overall, a very useful hook with lots of built-in functionality! Happy coding! &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>React for Beginners</title>
      <dc:creator>Erica Mayes</dc:creator>
      <pubDate>Mon, 19 Sep 2022 07:03:25 +0000</pubDate>
      <link>https://forem.com/ericamayes/react-for-beginners-45d1</link>
      <guid>https://forem.com/ericamayes/react-for-beginners-45d1</guid>
      <description>&lt;p&gt;On the heels of my Phase 2 completion at Flatiron, I have become &lt;em&gt;intimately&lt;/em&gt; familiar with React App over the last three weeks.&lt;/p&gt;

&lt;p&gt;For any novices, React is a widely-used JavaScript library maintained by Meta (yes, library - though it functions similarly to a framework in many respects). React has become the most favored front-end library and continues to grow in both popularity and demand.&lt;/p&gt;

&lt;p&gt;For posterity's sake, I've put together a list of tips and tricks to benefit newcomers to the React world:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1) Use Create React App to initialize projects&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the most efficient functionalities of the React app is the ability to create a new project with a single command line using Create React App. Depending on your package manager of choice, you can do this with one of the following three commands: &lt;/p&gt;

&lt;p&gt;"npx create-react-app my-app"&lt;br&gt;
"npm init react-app my-app"&lt;br&gt;
"yarn create react-app my-app"&lt;/p&gt;

&lt;p&gt;This is the best way to initialize single-page applications, as it only requires one build dependency. Running this command will save a folder entitled "my-react-app" to your computer with all required packages.&lt;/p&gt;

&lt;p&gt;After installation, you will make use of several other handy-dandy terminal commands inside your project directory.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;em&gt;"npm start"&lt;/em&gt; or &lt;em&gt;"yarn start"&lt;/em&gt;: will run your app in development mode. Your app will now be viewable on port 3000 in your browser. &lt;/li&gt;
&lt;li&gt;  &lt;em&gt;"npm run server"&lt;/em&gt;: will start your backend server&lt;/li&gt;
&lt;li&gt;  &lt;em&gt;"npm test"&lt;/em&gt; or &lt;em&gt;"yarn test"&lt;/em&gt;: will run tests concerning files altered since the most recent commit&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;2) Understand basic syntax&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As user-friendly as React is, there are a few buzz words necessary to learn:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Props&lt;/em&gt;: Refers to data of any type that gets passed down to a child component. Without restructuring, basic syntax looks like this:&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="nx"&gt;Links&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="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;h3&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Links&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h3&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;a&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;github&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;github&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;a&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;a&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;linkedin&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;linkedin&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;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt; &lt;em&gt;Component&lt;/em&gt;: A function that takes props as an argument and returns JSX. These are usually split up into separate files in React for better scalability and reusability. Although historically written using class syntax, the new functional syntax is best practice moving forward in React.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;State&lt;/em&gt;: dynamic data in your component that will change over time via user interaction.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;React hooks&lt;/em&gt;: Special functions that allow us to 'hook' into React's internal state. To use, we must first import them, then call them inside of the component. Two prominent hooks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;em&gt;"useState":&lt;/em&gt; used to access and modify state inside of our components

 &lt;/li&gt;
&lt;/ul&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="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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;button&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setButton&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;  "&lt;em&gt;useEffect"&lt;/em&gt;: used to perform any side effects outside of the main purpose of a function - i.e. data fetching, updating parts of the page outside of React, etc.

 &lt;/li&gt;
&lt;/ul&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nx"&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="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;timeRemaining&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;setTimeRemaining&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nx"&gt;onAnswered&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&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;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Component hierarchy&lt;/em&gt;: a diagram resembling a tree used to illustrate the relationship between parent and child components.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;3) Keep components small&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;React best practice is to keep components as small as functionally possible, without over-abstracting. As a rule, I like to start at the top - generally the App component - and break out additional components as I begin to add smaller UI capabilities. This is for a variety of reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Easier to debug&lt;/li&gt;
&lt;li&gt;  Your code is more understandable to other developers&lt;/li&gt;
&lt;li&gt;  Allows for greater reusability and scalability of components&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;4) Don't overuse state&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the biggest mistakes I see in React is the utilization of state when props or conditional logic would suffice. Call state sparingly, as it can add unnecessary complexity to your code.&lt;/p&gt;

&lt;p&gt;When considering whether to add state to a component, it helps to consider a few things - is the component static and unchanging? Can you calculate the desired behavior based on any other state or props? If so, your component most likely doesn't need state.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;5) Avoid asynchronous errors&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When using state in React, It is essential to understand that setting state is asynchronous. What does this mean? Simply that the useState hook doesn't change state immediately - it must wait for the component to re-render (which is triggered by a &lt;em&gt;change&lt;/em&gt; in the component). &lt;/p&gt;

&lt;p&gt;This re-render also causes any children components to be re-rendered as well.&lt;/p&gt;

&lt;p&gt;Understanding the life cycle of components in React is essential to accurately rendering components and can save you countless hours of troubleshooting and debugging. &lt;/p&gt;

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

&lt;p&gt;While there's still a ton to learn about React syntax and functionality, the above list was a good place to start for me. Hope it helps you as you dip your toes in the React App world - happy coding! &lt;/p&gt;

</description>
      <category>react</category>
      <category>beginners</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>Think Like a Coder</title>
      <dc:creator>Erica Mayes</dc:creator>
      <pubDate>Thu, 25 Aug 2022 06:31:20 +0000</pubDate>
      <link>https://forem.com/ericamayes/think-like-a-coder-36h9</link>
      <guid>https://forem.com/ericamayes/think-like-a-coder-36h9</guid>
      <description>&lt;h2&gt;
  
  
  What's this all about, anyway?!
&lt;/h2&gt;

&lt;p&gt;A lot of words come to mind when I think about Phase 1 of Flatiron School's Software Engineering bootcamp - 'rewarding', 'exhausting', and 'fast-paced' among them - but none more so than extremely challenging. I had anticipated the heavy demand of the 15-week program, and I was prepared... with my flash cards, pneumonic devices, and very thorough note-taking habits at my disposal.&lt;/p&gt;

&lt;p&gt;During my second week, our tech coach, Sam Waters, made a comment that stuck with me.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;'The point of this bootcamp is not for you to memorize all the terms, methods, and syntax - you can Google that,' he said. 'The point is for you to think differently, and understand the logic required to communicate with a computer.' &lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And he was right - my flash cards couldn't help me to conceptualize the flow of logic through a callback function (much less reproduce it). &lt;/p&gt;

&lt;p&gt;This became clear in my early struggle with - of all things - &lt;em&gt;parameters&lt;/em&gt;, particularly after utilizing a loop or iteration method. Consider the below illustration from the Phase 1 Code Challenge: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--26L-sAHB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5toscdckkvhtzytmmrk6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--26L-sAHB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5toscdckkvhtzytmmrk6.png" alt="Code block that includes a fetch followed by a forEach from the Phase 1 Code Challenge" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Although a simple code block, I struggled to remember which parameters to use in subsequent functions - animalData vs. animal - and to follow the line of reasoning through the end of the code. When I mentioned this to another student after the challenge, his response echoed Sam's: 'Yeah, that just involves getting used to a certain way of thinking.'&lt;/p&gt;

&lt;p&gt;As I've advanced through the curriculum and the material has become more complex, attempting to adapt my thinking to better align with the computer's has only become more essential.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Strategy
&lt;/h3&gt;

&lt;p&gt;In response, I developed an approach when confronted with chaotic code or a confusing ask. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;1)  Take a beat and breathe&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It's easy for me to focus solely on what I don't know immediately, and inevitably miss instructions or easy solutions. My husband calls it 'panic mode.' This step reminds me to focus, read any instructions, and not rush into premature work.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;2)  Fall back on what you know best&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;One of the really great things about code is that there are usually innumerable ways to reach a solution. I've learned that it generally serves me well to invest in what I know best, instead of trying to learn unfamiliar or seemingly 'better' methods.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;3) Formulate a plan &amp;amp; begin to execute&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To this end, I focus on two questions: '&lt;em&gt;What's my end goal&lt;/em&gt;?' and '&lt;em&gt;What is the general roadmap to get there?&lt;/em&gt;' As the most involved, and least specific, step, I first rely on pseudocoding (an informal description of the process with no specific syntax) to conceptualize a solution. Then, moving from least to most specific, I identify functions, variables, and methods to build in to my roadmap - and start to code!&lt;/p&gt;

&lt;h4&gt;
  
  
  To illustrate with an example...
&lt;/h4&gt;

&lt;p&gt;In the below code, I was asked to build an object containing a large volume of sports players' data and then to return a list of jersey numbers. To start, I identified my end goal: build an array of jersey numbers. Through pseudocoding, I decided that my plan of action would be to establish an empty array, isolate players' jersey numbers via a 'for' loop, and then use the .push( ) method to dump all the numbers into the empty array. With that in mind, I began to narrow down on my exact variables and functions, and started writing code!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nsr0ohX7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2ysq87oksqx53h7k2lsd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nsr0ohX7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2ysq87oksqx53h7k2lsd.png" alt="A function from the Object Ball lab that includes a 'for' loop to return jersey numbers" width="616" height="260"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;4) Look up what you don't know&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;For any methods, language, or processes I can't fully remember, this step is where I do the work to research them.&lt;/p&gt;

&lt;p&gt;In the above example, if I didn't remember the syntax for the .push( ) method or specifics on bracket and dot notations, this is when I would look that up.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;5) Log, log, log&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Check your work! I'm learning to be a bit obsessive about console logging as I go, simply to confirm that each step of my code is working like I want it to. Better to know early on than find out something is broken after 50 more lines of code!&lt;/p&gt;

&lt;h3&gt;
  
  
  Moving Forward
&lt;/h3&gt;

&lt;p&gt;Although I may still struggle with turning my pseudocode into written code, this approach seems to be helping me internalize the mindset shift that is required to be a good developer.&lt;/p&gt;

&lt;p&gt;Overall, I'm very excited to see where this takes me in the next four phases at Flatiron School, and in my career beyond that!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>javascript</category>
      <category>codenewbie</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
