<?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: Kelan6</title>
    <description>The latest articles on DEV Community by Kelan6 (@kelan6).</description>
    <link>https://dev.to/kelan6</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%2F892140%2Fdec4ea88-ca7f-4d2e-9f53-7c2e476db66b.jpeg</url>
      <title>DEV Community: Kelan6</title>
      <link>https://dev.to/kelan6</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kelan6"/>
    <language>en</language>
    <item>
      <title>Check out my Portfolio</title>
      <dc:creator>Kelan6</dc:creator>
      <pubDate>Wed, 12 Oct 2022 23:41:56 +0000</pubDate>
      <link>https://dev.to/kelan6/check-out-my-portfolio-45io</link>
      <guid>https://dev.to/kelan6/check-out-my-portfolio-45io</guid>
      <description>&lt;p&gt;Worked on creating a quick and fun portfolio today. I wanted a place for potential employers and co-workers to check out my work and get to know me a bit.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kelan6.github.io"&gt;https://kelan6.github.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to create Loom Demos and why!</title>
      <dc:creator>Kelan6</dc:creator>
      <pubDate>Tue, 04 Oct 2022 18:50:29 +0000</pubDate>
      <link>https://dev.to/kelan6/how-to-create-loom-demos-and-why-5ckg</link>
      <guid>https://dev.to/kelan6/how-to-create-loom-demos-and-why-5ckg</guid>
      <description>&lt;p&gt;My Flatiron bootcamp is quickly coming to an end. Which means the job hunt has begun!&lt;/p&gt;

&lt;p&gt;I have my LinkedIn and Indeed profiles set and my resume touched up. But I wanted to add a little bit of me, a little bit of personality to the job search. So I looked for an app that I could demo my capstone project on .... Enter Loom!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.loom.com/share/e44905695fad453d9e5451a12f14d992"&gt;https://www.loom.com/share/e44905695fad453d9e5451a12f14d992&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Loom is a quick and easy application that lets you record both your screen and a face cam at the same time. This allows you to get in front of any potential viewers while piloting your application, how you see fit.&lt;/p&gt;

&lt;p&gt;You have 2 options when setting up Loom. You can download the desktop app or use a chrome extensions. Once downloaded you can login with either you Google, Apple, Slack or just simply an email. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AKxB3Apf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/evvvdwc2irw9rmkj688r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AKxB3Apf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/evvvdwc2irw9rmkj688r.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you are logged in, the easy to navigate user interface is loaded (above).&lt;/p&gt;

&lt;p&gt;From the home page you can record a new demo and check your library. &lt;/p&gt;

&lt;p&gt;Let's walk through a new demo. Click on the new video button, and the count down begins.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--25YiKqu0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kzkw1vexk1dx8n8ew86b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--25YiKqu0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kzkw1vexk1dx8n8ew86b.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you start recording you have a utility bar pop up on the left, allowing you to stop, pause or edit your camera options.&lt;/p&gt;

&lt;p&gt;My personal advice before starting your recording is to write out a script, with highlights you plan to cover. Take a few minutes to practice your delivery. Then ... have fun and record. Let your passion or personality come through in your demo!&lt;/p&gt;

&lt;p&gt;Once you are done recording, the demo goes to you library and the utility of Loom really begins. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TtElVaRw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m6ue1o82mp959mhiejq6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TtElVaRw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m6ue1o82mp959mhiejq6.png" alt="Image description" width="880" height="550"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You are able to rename your demo, do some light editing or even save a specific thumbnail. You can even see who views you video. But the nicest attribute is the share links available to you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MljE9Sdp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8heuftks50s46x5bhx88.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MljE9Sdp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8heuftks50s46x5bhx88.png" alt="Image description" width="880" height="550"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The share menu allows you to create custom links for LinkedIn, Twitter, Gmail, or Facebook. Or you can copy the link and send it via messaging. &lt;/p&gt;

&lt;p&gt;So now you know how to use Loom, but why?&lt;/p&gt;

&lt;p&gt;Well short and sweet, you: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Get to show your app, your way. Controlling the narrative of how your app comes across to the viewer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Get to put your face in front of potential employers, showing you ability to present, speak and interact.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add a bit of production value and personality to your resume with a quick Demo Link.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Consider using Loom in your next demo video 😁&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Rounding the bootcamp corner ...</title>
      <dc:creator>Kelan6</dc:creator>
      <pubDate>Mon, 19 Sep 2022 16:58:56 +0000</pubDate>
      <link>https://dev.to/kelan6/rounding-the-bootcamp-corner--39an</link>
      <guid>https://dev.to/kelan6/rounding-the-bootcamp-corner--39an</guid>
      <description>&lt;p&gt;Feelings Friday turned into a feelings weekend...&lt;/p&gt;

&lt;p&gt;Suddenly bootcamp graduation is around the corner. I'd say that I'm super excited to finish, but anxiety of the end is starting to grow.&lt;/p&gt;

&lt;p&gt;I had a few persisting thoughts through the weekend:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;After every phase, I would recharge and reload over the weekend and prep myself for content week 1. But as phase 4 ended, the lingering thought of getting a job looms the largest.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It's hard to focus on anything else at the moment. After all, the whole point of this bootcamp was to bridge the gap for me, into the tech world. To help someone like me with zero experience get their foot in the door and become a software engineer. I'm starting to think about it before I go to bed at night.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8RIUr7rA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uvoybosftpbw6bpi50l7.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8RIUr7rA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uvoybosftpbw6bpi50l7.jpeg" alt="Image description" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I write all these negative things to flushes them out of my thought process. I am continually reminding myself to compartmentalize and focus on one thing at a time.&lt;/p&gt;

&lt;p&gt;So here is my 26th attempt to refocus on phase 5, and creating a fun and dynamic capstone project!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I can't believe I am about to graduate?! I vividly remember day 1 and meeting my few cohort mates in the blue room. Now we are on our phase 5 zoom meeting call, prepping for our capstone.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When I am not all doom and gloom, I usually find myself feeling extremely grateful. Grateful for my GF and family who have supported me along this short but difficult journey. Grateful to my cohort for being fun and encouraging in the low points of the bootcamp.&lt;/p&gt;

&lt;p&gt;It is a constant back and forth between these two thoughts. All negative or all positive. Feels a bit like a devil and angel riding shotgun on my shoulders.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ysn_D9AK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nnbu7csujonpz4v307nk.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ysn_D9AK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nnbu7csujonpz4v307nk.jpeg" alt="Image description" width="318" height="159"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ultimately, it really is about taking it one step at a time. Focusing on one specific step or aspect of life, and doing it to the best of your ability. &lt;/p&gt;

&lt;p&gt;For anyone out there, about to embark on a new journey into uncharted territory, I have a few pieces of advice. I wouldn't say to blindly follow your dreams, because I feel that a decision like that can lead you to some rough places in life. I would instead encourage you to do your research. Make sure you have a support system of some kind in place, for the dark days or weeks. Lastly, believe that you can do it. Put your head down and start working!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Learn from useHistory()</title>
      <dc:creator>Kelan6</dc:creator>
      <pubDate>Thu, 25 Aug 2022 13:51:33 +0000</pubDate>
      <link>https://dev.to/kelan6/learn-from-usehistory-110o</link>
      <guid>https://dev.to/kelan6/learn-from-usehistory-110o</guid>
      <description>&lt;p&gt;Recently, while working on a React/Ruby project, I found myself asking, "How cool would it be if I clicked this button on the log in page, and if the log in was correct, it automatically navigated me to the Home Page"?&lt;/p&gt;

&lt;p&gt;While we have to fetch the Ruby database in React to verify the log in, the idea of this auto-link was escaping me. So...&lt;/p&gt;

&lt;p&gt;TO GOOGLE !&lt;/p&gt;

&lt;p&gt;I quickly came across the useNavigate() hook.&lt;/p&gt;

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

&lt;p&gt;This was perfect! "OnClick" I wanted to navigate to ('/Home') from the Login component. I kept scrolling to learn more.&lt;/p&gt;

&lt;p&gt;Importing the useNavigate() from "react - router - dom" at the top of the page? Sounded good, but it made me think of day 1 of setting up this project. I had installed specifically "npm install react-router-dom@5". Meaning I purposely installed V5 instead of the current V6.&lt;/p&gt;

&lt;p&gt;I realized then, that the useNavigate Hook was created in React Router V6 to replace a previous Hook, useHistory(). &lt;/p&gt;

&lt;p&gt;I was a little disappointed that I had spent so much time on the useNavigate() Hook, and it wouldn't be able to help me with this project. But, I continued down the rabbit hole of useHistory(), determined to get this auto-link working.&lt;/p&gt;

&lt;p&gt;Luckily, they are almost identical!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzjnf3o9b20542q8uu280.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzjnf3o9b20542q8uu280.jpeg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So what is useHistory()? &lt;/p&gt;

&lt;p&gt;"The useHistory hook gives you access to the history instance that you may use to &lt;em&gt;navigate&lt;/em&gt;." - v5.reactrouter&lt;/p&gt;

&lt;p&gt;Similarly to useNavigate(), we import useHistory () from "react - router - dom" at the top of the page.&lt;/p&gt;

&lt;p&gt;Then we set a variable, 'history' equal to the useHistory Hook.&lt;/p&gt;

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

&lt;p&gt;Now we have the power of useHistory() down in our component!&lt;br&gt;
The simple syntax is: {history.push('/Which_Route_We_Want')&lt;/p&gt;

&lt;p&gt;In the code above, I set a boolean statement with useState "isSubmitted". If the proper input is submitted to the username and password, then push the client to the /Home page. If not, continue to render the form above with helpful error messages (not shown).&lt;/p&gt;

&lt;p&gt;Once I figured out how simple this auto-linking was with useHistory(), I set up my page with similar links like below:&lt;/p&gt;

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

&lt;p&gt;Just remember to add your 'onClick' listeners below in your JSX!&lt;/p&gt;

&lt;p&gt;This was my quick guide on the useHistory() Hook. Hope this helps someone in the future to learn from useHistory(), or we'll be doomed to repeat it 😁.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SOURCES&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://v5.reactrouter.com/web/api/Hooks" rel="noopener noreferrer"&gt;https://v5.reactrouter.com/web/api/Hooks&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/reactjs-usenavigate-hook/" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/reactjs-usenavigate-hook/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/almickle/Phas3r-FrontEnd" rel="noopener noreferrer"&gt;https://github.com/almickle/Phas3r-FrontEnd&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>ruby</category>
    </item>
    <item>
      <title>Fetching with {useState, useEffect} and .mapping to cards</title>
      <dc:creator>Kelan6</dc:creator>
      <pubDate>Wed, 03 Aug 2022 03:18:51 +0000</pubDate>
      <link>https://dev.to/kelan6/fetching-with-usestate-useeffect-and-mapping-to-cards-3lf7</link>
      <guid>https://dev.to/kelan6/fetching-with-usestate-useeffect-and-mapping-to-cards-3lf7</guid>
      <description>&lt;p&gt;This Friday will be the end of Phase-2-React. I am sad to see it go! I actually enjoyed my time learning React, in comparison to Phase-1-Javascript.&lt;/p&gt;

&lt;p&gt;But, I know this is only the beginning. Everywhere I look, React is the language in demand. I have a feeling that I will see and use React for a long time.&lt;/p&gt;

&lt;p&gt;Thinking back to when I started my first labs with useState, I remember thinking, "...WHAT?". Now just a week and a half later we are pulling from a public API, POST-ing and PATCH-ing, mapping, filtering, etc. for a Project.&lt;/p&gt;

&lt;p&gt;I wanted to make a quick run through of a React GET request and how we map over our superhero array to give us a singular superhero card. My wish is for React to look a little less daunting.&lt;/p&gt;

&lt;p&gt;Here is a small piece of my Phase 2 Project- Superheroes&lt;br&gt;
"Fetching with {useState, useEffect}  and .mapping to cards"&lt;/p&gt;

&lt;p&gt;The wireframe path our data will take looks like this: &lt;br&gt;
API =&amp;gt; fetch GET request =&amp;gt; pass our state (heroes) as props down components =&amp;gt; map over heroes to  get a single hero =&amp;gt; catch our hero's data and display to card.&lt;/p&gt;

&lt;p&gt;Simple right?&lt;/p&gt;

&lt;p&gt;First we need to import {useState} and {useEffect} Hooks. These imports allow us to use the hooks in our initial App component. Then we need to set State. &lt;/p&gt;

&lt;p&gt;Since our API is giving us a huge array of superheroes (731), we will set our State to heroes, and our setState function to setHeroes. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gpSmsqWz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kaevv8y633qbx4rfybhi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gpSmsqWz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kaevv8y633qbx4rfybhi.png" alt="Image description" width="880" height="790"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thats one hook out of the way. Now let's fetch our array with useEffect.&lt;/p&gt;

&lt;p&gt;We are fetching data from a public API so we want to use useEffect. Why? &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Fetching data from an API...[is] considered [a] side-effect, as it's possible to have a different output for the same input. &lt;br&gt;
This is why useEffect is the hook for us - by fetching data, we're making our React component impure, and useEffect provides us a safe place to write impure code." - Max Rozen&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Fetching data inside useEffect is very similar to our fetching with Javascript. A crucial difference being the empty array at the back end of the function. This set of brackets stops an endless fetch of data that will quickly fill your terminal.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ctrl Z if you forgot! I learned from experience -&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once we have our giant array of heroes we want to pass it down as props. So we will go down into the JSX return section of our function and find our child component. In my case I will be passing down heroes to  and then &lt;/p&gt;

&lt;p&gt;We then catch the props down in the HeroContainer component.&lt;br&gt;
Here is where we map through our array to send a single hero to cards.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2xjZR0kF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/00tt56pxpgeb8i5mr9xt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2xjZR0kF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/00tt56pxpgeb8i5mr9xt.png" alt="Image description" width="880" height="515"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally, we catch the single hero data from the parent component and start filling in our card. &lt;/p&gt;

&lt;p&gt;Because our API had extra information per hero, we had to iterate through our array with dot notation. For example, to grab our hero's intelligence score we needed to grab our hero's data. Then jump down to powerstats, and lastly down to intelligence score. {hero.powerstats.intelligence}.&lt;/p&gt;

&lt;p&gt;That looks a little like this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0_f0350L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ldg37si4f54cyvccyqhr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0_f0350L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ldg37si4f54cyvccyqhr.png" alt="Image description" width="880" height="771"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So we used useState and useEffect to successfully fetch our heroes from a public API. We passed State as props all the way down the tree to our lowest component, taking a short pitstop to map through our array, giving us a single hero. And we end up with hero cards like below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rWUVQ5hu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vx7x07lrnps0hj9tp33z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rWUVQ5hu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vx7x07lrnps0hj9tp33z.png" alt="Image description" width="880" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hope you enjoyed this quick run through of useState, useEffect and mapping! Looking forward to posting my final Phase-2 Project!&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

&lt;p&gt;Sources:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://maxrozen.com/fetching-data-react-with-useeffect"&gt;https://maxrozen.com/fetching-data-react-with-useeffect&lt;/a&gt; - Max Rozen&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Kelan6/Phase-2-Super-Hero"&gt;https://github.com/Kelan6/Phase-2-Super-Hero&lt;/a&gt; - Kelan, Brennen and Noah&lt;/p&gt;

</description>
    </item>
    <item>
      <title>PHASE 1 BLOG: review.addEventListener("")</title>
      <dc:creator>Kelan6</dc:creator>
      <pubDate>Fri, 15 Jul 2022 17:02:59 +0000</pubDate>
      <link>https://dev.to/kelan6/phase-1-blog-reviewaddeventlistener-1fh</link>
      <guid>https://dev.to/kelan6/phase-1-blog-reviewaddeventlistener-1fh</guid>
      <description>&lt;p&gt;&lt;strong&gt;Phase 1 review&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Phase 1 will be in the books after our project presentation today. Feeling a tad accomplished but mostly weary of Phase 2. The amount of knowledge downloaded in 3 weeks is wild! To end every Phase, we have a project week. I learned a lot from all of Phase 1 but had the most fun during project week. Here are some fun topics learned:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;JavaScript Fundamentals&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Strings&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Variables &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Functions (Callbacks and Arrow)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Arrays / Objects&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Manipulating the DOM &lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Document Object Model&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;getElementById&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;querySelector(all)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;JavaScript Events and Communicating with the Server&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;addEventListener ("onClick")&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;DOM Content Loaded&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GET/POST/PATCH/DELETE&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;JSON (DERULO)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;and more....&lt;/p&gt;

&lt;p&gt;On to REACT!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;add.EventListener&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Although I would argue callback and arrow functions are the most important thing to master in Phase 1, adding event listeners was the most rewarding for me.&lt;/p&gt;

&lt;p&gt;For me, when our cohort started using event listeners, everything started moving. Event listeners "listen" for an action like "click" or "key press". Once triggered, they invoke the event handler functions to start working on the event.&lt;/p&gt;

&lt;p&gt;Think clicking on a comment button or hitting that like ♥ button on IG.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; "`document.addEventListener("click", myFunction);`" 
                 - w3schools
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;"&lt;code&gt;&amp;lt;form id="search-form" onsubmit="searchByAbv(event)" &lt;br&gt;
                    autocomplete="off"&amp;gt;&lt;/code&gt;"&lt;/p&gt;

&lt;p&gt;Without event listeners, our web pages couldn't function. Event listeners make interaction with the users fun and dynamic. As I look back on our Phase 1 project with my partner John, I count 10+ event listeners! I can only imagine a more in depth website and the number of event listeners.&lt;/p&gt;

&lt;p&gt;Sources:&lt;/p&gt;

&lt;p&gt;w3schools&lt;br&gt;
&lt;a href="https://www.w3schools.com/jsref/met_element_addeventlistener.asp"&gt;https://www.w3schools.com/jsref/met_element_addeventlistener.asp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Flatiron Canvas &lt;a href="https://learning.flatironschool.com/courses/5206"&gt;https://learning.flatironschool.com/courses/5206&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sweet Code &lt;br&gt;
&lt;a href="https://sweetcode.io/understanding-the-javascript-dom-manipulations/"&gt;https://sweetcode.io/understanding-the-javascript-dom-manipulations/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MDN web docs&lt;br&gt;
&lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Element#mouse_events"&gt;https://developer.mozilla.org/en-US/docs/Web/API/Element#mouse_events&lt;/a&gt;&lt;/p&gt;

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