<?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: Danijela.js🛸</title>
    <description>The latest articles on DEV Community by Danijela.js🛸 (@danijelajs).</description>
    <link>https://dev.to/danijelajs</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%2F195953%2F49f4f6d1-287b-499f-b99d-c4c4ec97f2fd.jpg</url>
      <title>DEV Community: Danijela.js🛸</title>
      <link>https://dev.to/danijelajs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/danijelajs"/>
    <language>en</language>
    <item>
      <title>Unit testing with react-testing-library</title>
      <dc:creator>Danijela.js🛸</dc:creator>
      <pubDate>Tue, 13 Apr 2021 11:57:30 +0000</pubDate>
      <link>https://dev.to/danijelajs/unit-testing-with-react-testing-library-464b</link>
      <guid>https://dev.to/danijelajs/unit-testing-with-react-testing-library-464b</guid>
      <description>&lt;h4&gt;This is a simple example but it will explain how the testing library works.&lt;/h4&gt;



&lt;p&gt;You can install react-testing-library by running&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; npm i @testing-library/react
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
 or you can just run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-react-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
 to create a new React project, and you will have the library already installed.&lt;/p&gt;

&lt;p&gt;This is our Button component:&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";

export default function Button(){
    const [clicked,isClicked]= useState(false);

    return(
        &amp;lt;&amp;gt;
        &amp;lt;button style={{background: clicked ? 'red' : 'green'}} onClick={e =&amp;gt; isClicked(true)} data-testid="btn"&amp;gt;
         {clicked ? 'Clicked' : 'Click'}
        &amp;lt;/button&amp;gt;
        &amp;lt;/&amp;gt;
    )
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Give the button a data-testid="btn", so we can access it later from the test file.&lt;/p&gt;

&lt;h5&gt;Now the test file:&lt;/h5&gt;

&lt;p&gt;First we have to import render and fireEvent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;render&lt;/strong&gt; -  to render into a container which is appended to document.body.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;fireEvent&lt;/strong&gt;- fire a DOM event.&lt;/p&gt;



&lt;p&gt;Then we import the component we want to render.&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { render, fireEvent } from "@testing-library/react";
import Button from "./Button.js";
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We use the beforeEach method to render components, elements, methods  or something else before each test. &lt;/p&gt;

&lt;p&gt;First we render the Button component, then we get the btn element by data-test-id.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let btn;
beforeEach(()=&amp;gt;{  //execute before each test
    const component = render(&amp;lt;Button /&amp;gt;); // render Button component
    btn = component.queryByTestId('btn'); // get the btn element from Button 
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;Each test has two arguments, a description of the test and a function.&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;1.Test&lt;/strong&gt;&lt;br&gt; We are checking if the element btn exists.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;test('Check if btn is rendering correctly',()=&amp;gt;{
   expect(btn).toBeTruthy(); //check if btn exists in the component
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2.Test&lt;/strong&gt;&lt;br&gt; We are checking if the button is changing it's background color on click. First we check if button has 'background: green' on render, then we fire a click event , and expect the button to have 'background: red';&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;test("Check if btn is changing it's color from green to red on click",()=&amp;gt;{
    expect(btn).toHaveStyle('background: green'); // btn has the style of 'background:green'
    fireEvent.click(btn); // btn is clicked
    expect(btn).toHaveStyle('background: red'); //btn has the style of 'background:red'
 })

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Test&lt;/strong&gt;&lt;br&gt;
We are checking if the text in button is changing on click. &lt;br&gt;
First we check if the button's text-content is 'Click', then we fire a click event, and we expect the text-content to be 'Clicked'.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;test("Check if btn says Clicked after it's clicked",()=&amp;gt;{
    expect(btn.textContent).toBe('Click'); 
    fireEvent.click(btn); 
    expect(btn.textContent).toBe('Clicked'); 
 })
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then we run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And if everything works fine, and all the test pass, we will see this:&lt;br&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%2Fhemv7hsmv3qdzlpulhko.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%2Fhemv7hsmv3qdzlpulhko.png" alt="Alt Text" width="800" height="198"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>unittesting</category>
      <category>reacttestinglibrary</category>
      <category>testing</category>
    </item>
    <item>
      <title>How to build a FREE Contact form without a server</title>
      <dc:creator>Danijela.js🛸</dc:creator>
      <pubDate>Thu, 14 Jan 2021 14:36:56 +0000</pubDate>
      <link>https://dev.to/danijelajs/how-to-build-a-free-contact-form-without-a-server-47nd</link>
      <guid>https://dev.to/danijelajs/how-to-build-a-free-contact-form-without-a-server-47nd</guid>
      <description>&lt;h4&gt;Formspree has a &lt;strong&gt;FREE&lt;/strong&gt; plan for 50 submissions a month. Which is great, if you own a small business. So I made a YouTube tutorial to show you how to do it. It's very simple. 
Check it out 😁&lt;/h4&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/H_MUJ--iAcc"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h5&gt;
&lt;strong&gt;P.S.&lt;/strong&gt; This is my first YouTube tutorial. It's not great, but it's okay. 🤪&lt;/h5&gt;

</description>
      <category>contactform</category>
      <category>mdbstrap</category>
      <category>formspree</category>
      <category>html</category>
    </item>
    <item>
      <title>JavaScript Instagram Bot P2</title>
      <dc:creator>Danijela.js🛸</dc:creator>
      <pubDate>Fri, 20 Nov 2020 09:48:48 +0000</pubDate>
      <link>https://dev.to/danijelajs/javascript-instagram-bot-p2-4cpo</link>
      <guid>https://dev.to/danijelajs/javascript-instagram-bot-p2-4cpo</guid>
      <description>&lt;h3&gt;Hi, This my second JavaScript Instagram "bot", but not actually a bot 😝, just a useful piece of code used in a smart way.&lt;/h3&gt;



&lt;h4&gt;The best way to gain followers on Instagram is by following others who already follow people with similar content as yours. &lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;BTW check out my previous &lt;a href="https://dev.to/danijelajs/javascript-instagram-bot-3nmk"&gt;article&lt;/a&gt; about my Instagram bot for likes for better clarification&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;Let's begin!&lt;br&gt;
Like last time, you need to log in to your Instagram account on your computer, search for the account with similar content as yours, and click on their followers. Inspect the &lt;strong&gt;Follow&lt;/strong&gt; button, and see which class the button has. Now, click on the browser console, and paste this code, &lt;strong&gt;don't forget to add the classes of the button&lt;/strong&gt;.&lt;/p&gt;


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

&lt;p&gt;var followed = 0;&lt;br&gt;
  setInterval(function() {&lt;br&gt;
    const button = document.querySelector('button.classes');&lt;br&gt;
    //change classes with classes you got when inspecting the button&lt;br&gt;
    if(button) {&lt;br&gt;
        button.click();&lt;br&gt;
        followed++;&lt;br&gt;
        console.log(&lt;code&gt;`You followed ${followed} people`&lt;/code&gt;);&lt;br&gt;
    }&lt;br&gt;
  }, 10000); &lt;/p&gt;

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

&lt;p&gt;-Keep in mind Instagram has the tendency to change the classes frequently.&lt;/p&gt;

&lt;p&gt;P. S. Be careful, set the setInterval to at least 10-15 seconds  so your account doesn't get banned 😁&lt;/p&gt;

&lt;p&gt;You are welcome 😁&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>instagram</category>
      <category>bot</category>
      <category>instagrambot</category>
    </item>
    <item>
      <title>How I do Git version control - locally (List of commands)</title>
      <dc:creator>Danijela.js🛸</dc:creator>
      <pubDate>Tue, 15 Sep 2020 12:26:43 +0000</pubDate>
      <link>https://dev.to/danijelajs/how-i-do-git-version-control-locally-list-of-commands-46bl</link>
      <guid>https://dev.to/danijelajs/how-i-do-git-version-control-locally-list-of-commands-46bl</guid>
      <description>&lt;h3&gt;Hi guys, I wanted to share with you how I do version control locally. &lt;/h3&gt;

&lt;h4&gt;
&lt;strong&gt;Git&lt;/strong&gt; can help you track the changes on your project. At anytime you can go back and check out a previous version. It allows you to create new branches of your app so you can try out new things, and if you don't like how the new features turned out, you don't have to commit those changes to the master branch. &lt;/h4&gt;




&lt;p&gt;First install Git on your computer. Create a project folder. Open &lt;strong&gt;Git Bash&lt;/strong&gt;, type the path to the project folder. (I'm sure there are other ways to do it, this is just how I like to do it) &lt;/p&gt;


&lt;pre&gt;&lt;code&gt;$ cd Desktop/tutorial/ &lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;To initialize an empty Git repo in that folder &lt;/li&gt;
&lt;/ul&gt;


&lt;pre&gt;&lt;code&gt;$ git init&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Create a file in the repo&lt;/li&gt;
&lt;/ul&gt;


&lt;pre&gt;&lt;code&gt;$ touch index.html&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Add a file that should be tracked&lt;/li&gt;
&lt;/ul&gt;


&lt;pre&gt;&lt;code&gt;$ git add index.html&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You can also add multiple files, just type&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;$ git add .&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And it will start tracking all the files in the folder. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To check the files in the folder&lt;/li&gt;
&lt;/ul&gt;


&lt;pre&gt;&lt;code&gt;$ ls -a&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Check the status of the files in the repo. To see which files have been modified&lt;/li&gt;
&lt;/ul&gt;


&lt;pre&gt;&lt;code&gt;$ git status&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Commit the changes&lt;/li&gt;
&lt;/ul&gt;


&lt;pre&gt;&lt;code&gt;$ git commit-m "Commit message"&lt;/code&gt;&lt;/pre&gt; 

&lt;ul&gt;
&lt;li&gt;To see all the commits(previous versions of the app). &lt;/li&gt;
&lt;/ul&gt;


&lt;pre&gt;&lt;code&gt;$ git log&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You'll see something like this&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;commit f65881c0e1a7866b15da23576ccf176a184561234 (HEAD -&amp;gt; master)&lt;br&gt;
Author:Your name&lt;br&gt;
Date: Date of the commit&lt;br&gt;
    commit message&lt;br&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You see this long "number"? It's called &lt;strong&gt;hash&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To go back to a previous version type&lt;/li&gt;
&lt;/ul&gt;



&lt;pre&gt;&lt;code&gt;$ git checkout f65881c0e1a7866b15da23576ccf176a184561234&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Now if we want to create a new branch to see how pink background  would look like in our app. We can just create a new branch.&lt;/li&gt;
&lt;/ul&gt;



&lt;pre&gt;&lt;code&gt;$ git branch pinkbg&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Switch to the pinkbg branch and start coding&lt;/li&gt;
&lt;/ul&gt;



&lt;pre&gt;&lt;code&gt;$ git checkout pinkbg &lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;See all the branches &lt;/li&gt;
&lt;/ul&gt;



&lt;pre&gt;&lt;code&gt;$ git branch&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Merge branch with master &lt;/li&gt;
&lt;/ul&gt;



&lt;pre&gt;&lt;code&gt;$ git merge pinkbg&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;And that's it for now! :) &lt;/h3&gt;

</description>
      <category>git</category>
      <category>tutorial</category>
      <category>versioncontrol</category>
    </item>
    <item>
      <title>useEffect()-React Hooks(P2)</title>
      <dc:creator>Danijela.js🛸</dc:creator>
      <pubDate>Fri, 06 Mar 2020 08:31:23 +0000</pubDate>
      <link>https://dev.to/danijelajs/useeffect-react-hooks-p2-3bp2</link>
      <guid>https://dev.to/danijelajs/useeffect-react-hooks-p2-3bp2</guid>
      <description>&lt;h1&gt;useEffect()&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;It's similar to &lt;strong&gt;componentDidMount()&lt;/strong&gt;, &lt;strong&gt;componentDidUpdate()&lt;/strong&gt; and &lt;strong&gt;componentWillUnmount()&lt;strong&gt;.&lt;/strong&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;It's called everytime the component is rendered or re-rendered.&lt;/li&gt;
&lt;li&gt;You can have as many &lt;strong&gt;useEffects&lt;/strong&gt; as you want.&lt;/li&gt;
&lt;li&gt;Multiple &lt;strong&gt;useEffect()&lt;/strong&gt; will fire off in order, one after the other&lt;/li&gt;
&lt;li&gt;Some side effects require a cleanup, some don't.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Now, lets take a look at an example:&lt;/h4&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%2Fhj7qg5j4tm8csbatns38.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%2Fhj7qg5j4tm8csbatns38.png" alt="Alt Text" width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;Explanation:&lt;/h5&gt;

&lt;p&gt;As you can see, we have a variable called button, and a function getFact, that updates that variable.&lt;/p&gt;

&lt;p&gt;We are using the &lt;strong&gt;useEffect()&lt;/strong&gt; hook to fetch date from some random API.&lt;/p&gt;

&lt;p&gt;First we are fetching the data, then we have a cleanup function. It's "cleaning up" the previous function by displaying "Loading..." in an h2 tag.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;-As I mentioned, not every side effect needs a cleanup&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We have an array &lt;strong&gt;[button]&lt;/strong&gt; as the second argument, so the &lt;strong&gt;useEffect()&lt;/strong&gt; will be called just when the variable &lt;strong&gt;button&lt;/strong&gt; is changed.&lt;/p&gt;

&lt;p&gt;And at the end we have a button with a &lt;strong&gt;onClick&lt;/strong&gt; event, where &lt;strong&gt;getFact&lt;/strong&gt; function updates the state of the &lt;strong&gt;button&lt;/strong&gt; variable. Which triggers the &lt;strong&gt;useEffect()&lt;/strong&gt; hook.&lt;/p&gt;

&lt;h4&gt;Here is the end result:&lt;/h4&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%2F1qlej5ns4h84ddtgc4de.gif" 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%2F1qlej5ns4h84ddtgc4de.gif" alt="Alt text of image" width="480" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope you enjoyed this little tutorial :)&lt;/p&gt;

</description>
      <category>react</category>
      <category>hooks</category>
      <category>tutorial</category>
      <category>javascript</category>
    </item>
    <item>
      <title>useState() React Hooks(P1)</title>
      <dc:creator>Danijela.js🛸</dc:creator>
      <pubDate>Sat, 29 Feb 2020 22:05:50 +0000</pubDate>
      <link>https://dev.to/danijelajs/usestate-react-hooks-p1-3ihl</link>
      <guid>https://dev.to/danijelajs/usestate-react-hooks-p1-3ihl</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hooks are special functions that let you “hook into” React features. They don’t work inside classes, just in functional components.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;useState()&lt;/strong&gt; lets you add state to a functional component.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Always&lt;/strong&gt; use hooks at the beginning of a React function.&lt;/li&gt;
&lt;li&gt;Don't call hooks inside loops, conditions or nested functions.&lt;/li&gt;
&lt;li&gt;You can use multiple useStates and variables.&lt;/li&gt;
&lt;li&gt;The only argument we pass to &lt;strong&gt;useState()&lt;/strong&gt; is the initial value.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;useState()&lt;/strong&gt; is returning the variable and the function that updates it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, a basic counter example:&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%2Fia7gxjyaxi3y6c7lku8p.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%2Fia7gxjyaxi3y6c7lku8p.png" alt="Alt Text" width="711" height="333"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Explanation:&lt;/h3&gt;

&lt;p&gt;We have to import the &lt;strong&gt;useState()&lt;/strong&gt; hook. &lt;/p&gt;

&lt;p&gt;As you can see, we have a variable called &lt;strong&gt;count&lt;/strong&gt;, and a function that updates that variable, &lt;strong&gt;setCount()&lt;/strong&gt;. The &lt;strong&gt;initial value&lt;/strong&gt; of the count is &lt;strong&gt;0&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;We are displaying the count in a &lt;strong&gt;h1&lt;/strong&gt; tag.&lt;/p&gt;

&lt;p&gt;The first button has a click event that fires the &lt;strong&gt;setCount()&lt;/strong&gt; function, which will &lt;strong&gt;add&lt;/strong&gt; 1 on every click.&lt;/p&gt;

&lt;p&gt;The second button is using the same function on click, but this time, it's going to &lt;strong&gt;subtract&lt;/strong&gt; 1.&lt;/p&gt;

&lt;h3&gt;And this is the end result:&lt;/h3&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%2Fyz0hp55kiwkqqjyhkyet.gif" 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%2Fyz0hp55kiwkqqjyhkyet.gif" alt="Alt text of image" width="480" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope I helped at least one person :)&lt;/p&gt;

</description>
      <category>react</category>
      <category>hooks</category>
      <category>javascript</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>React Bootstrap frameworks - Review</title>
      <dc:creator>Danijela.js🛸</dc:creator>
      <pubDate>Wed, 31 Jul 2019 19:38:26 +0000</pubDate>
      <link>https://dev.to/danijelajs/react-bootstrap-frameworks-review-1n13</link>
      <guid>https://dev.to/danijelajs/react-bootstrap-frameworks-review-1n13</guid>
      <description>&lt;p&gt;Let's talk about some Bootstrap frameworks for React.&lt;br&gt;
For a long time I've been avoiding Bootstrap, 'cause I didn't feel like I could be creative as much as I can when I'm writing my own CSS code. But then, when I started working more and more with React, I decided it's time to try a few React Booststrap frameworks, and find the perfect one!&lt;br&gt;
&lt;/p&gt;


&lt;h3&gt;React-Booststrap&lt;/h3&gt;

&lt;p&gt;This framework is good, but not great. 😔&lt;br&gt;
The website, usually, doesn't work. The instructions weren't very clear and the whole experience wasn't that satisfying. I've used it for 2 days, and I was more frustrated than satisfied with the overall result.&lt;/p&gt;

&lt;h4&gt;Rating: ⭐⭐⭐&lt;/h4&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%2Fwv0kx4879myhrfh27s8x.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%2Fwv0kx4879myhrfh27s8x.png" width="230" height="219"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;


&lt;h3&gt;Reactstrap&lt;/h3&gt;

&lt;p&gt;This one was better then the previous one. It was easier to set up, the instructions were clearer. Basic little Bootstrap framework. Overall experience was satisfying. But, nothing special. It wasn't the one! 🤔&lt;/p&gt;

&lt;h4&gt;Rating: ⭐⭐⭐⭐&lt;/h4&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%2Fyao381znemnsrhqzkzwq.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%2Fyao381znemnsrhqzkzwq.png" width="257" height="196"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;


&lt;h3&gt;MDBootstrap&lt;/h3&gt;

&lt;p&gt;Guys... I think this is &lt;strong&gt;THE ONE&lt;/strong&gt;...! 🤗 The instructions are very clear, they even have a video tutorial, to show you how to set it up. The website is very clean. I like the look of the components and I don't feel limited. You can be creative and you have so many different choices. Colors, animations, transitions, buttons, etc. Whatever your heart desires. You can make it unique as much as you want, but spend less time than you would writing CSS code. &lt;br&gt;
I'm very satisfied. (Until I find a better one 😝) &lt;/p&gt;

&lt;h4&gt;Rating: ⭐⭐⭐⭐⭐&lt;/h4&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%2Fkgjbjiuq0ax98jknhg5i.jpg" 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%2Fkgjbjiuq0ax98jknhg5i.jpg" width="310" height="162"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;


&lt;p&gt;P.S. This is just my opinion and experience, doesn't mean it's true.😝&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>bootstrap</category>
      <category>review</category>
    </item>
    <item>
      <title>JavaScript INSTAGRAM bot</title>
      <dc:creator>Danijela.js🛸</dc:creator>
      <pubDate>Sat, 20 Jul 2019 15:04:51 +0000</pubDate>
      <link>https://dev.to/danijelajs/javascript-instagram-bot-3nmk</link>
      <guid>https://dev.to/danijelajs/javascript-instagram-bot-3nmk</guid>
      <description>&lt;p&gt;You know a little bit of &lt;strong&gt;JavaScript&lt;/strong&gt;, and you want to build your following on Instagram, but don't want to share your password with some app, and you don't know BackEnd?! Don't worry, I got you fam! 😁 &lt;/p&gt;

&lt;p&gt;I'm gonna show you how to build your personal instagram "bot" 😁 &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;First, open Instagram in a new tab, log in, then type the hashtag you want, open the first image. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now you are gonna inspect the ❤️ button, the browser console will open, and you will see the class of the button. Usually you have to use the second or third class. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open the console. Create a variable by the name &lt;strong&gt;like&lt;/strong&gt;, and do the same for the arrow pagination ➡️, calling the variable &lt;strong&gt;next&lt;/strong&gt;. Access the button element and the pagination with &lt;strong&gt;querySelector&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now use the &lt;strong&gt;setInterval&lt;/strong&gt; method.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Using the if statement, if there is a like button add a click event for the button. Then add another click event for the pagination. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Because Instagram likes to ban accounts with "strange" activities, set the interval to 15-20 seconds. And Voilà! &lt;/p&gt;&lt;/li&gt;
&lt;/ol&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%2F8ph0i03sbub6qocw9cwz.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%2F8ph0i03sbub6qocw9cwz.png" width="617" height="153"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You now have your personal bot without "sharing" your password. You can use this for following people on instagram, or maybe on some other social media. It's up to you!&lt;/p&gt;

&lt;p&gt;Btw I'm not sure if this classifies as a BOT, but it will help 😁 &lt;/p&gt;

</description>
      <category>javascript</category>
    </item>
    <item>
      <title>7 easy steps to learning Web development #fornewbies</title>
      <dc:creator>Danijela.js🛸</dc:creator>
      <pubDate>Tue, 16 Jul 2019 00:53:09 +0000</pubDate>
      <link>https://dev.to/danijelajs/7-easy-steps-to-learning-web-development-fornewbies-4l9a</link>
      <guid>https://dev.to/danijelajs/7-easy-steps-to-learning-web-development-fornewbies-4l9a</guid>
      <description>&lt;p&gt;I'm writing this article to help my fellow newbies. I want to share a few things,  I wish I knew when I started coding. &lt;/p&gt;

&lt;h2&gt;1.Learn with passion &lt;/h2&gt;

&lt;p&gt;Don't learn how to code just because you heard from someone that some John Doe is a programmer and he's living the dream. People usually see just the success. They don't see the struggles to get there. Programming can be "boring" if you are not passionate and excited about every little detail. Even if you are, it can be a struggle sometimes. For me personally, &lt;strong&gt;coding is life&lt;/strong&gt;. I can't imagine a day without coding. Whatever you do in life do it because you want to, and because it makes you happy. My motto in life is :"Do it 100%, or don't do it at all". &lt;/p&gt;

&lt;h2&gt;2.Take notes&lt;/h2&gt;

&lt;p&gt;Taking notes is very important. It helped me, personally very much. When you are learning something new, you are acknowledging it by writing it down. You will memorize more. Try writing it down the way you understood the lesson, with your own words. Because when you go back to it, it will trigger your memory, and you won't have to repeat the whole lesson.&lt;/p&gt;

&lt;h2&gt;3.Join a programming community&lt;/h2&gt;

&lt;p&gt;One of the most important steps is this one. Try to find a good programming community online, or even better, find one in your area. Connecting with like-minded people will help you a lot. You can try a coding challenge like #100daysofcode or #301DaysOfCode on Twitter. You will learn new things and maybe meet new friends! Plus whenever you need help, you will find someone willing to help you! &lt;/p&gt;

&lt;h2&gt;4.You don't have to memorize everything&lt;/h2&gt;

&lt;p&gt;When I started coding I would always stress about memorizing every little detail. I would struggle with one lesson for 2 days. Later I realized that practice makes it perfect. The more things you build, you will become better and better. So don't stress too much! Just practice. &lt;/p&gt;

&lt;h2&gt;5.Learn from different resources&lt;/h2&gt;

&lt;p&gt;It's very important to learn from different resources. You are not done with learning when you finish a 3 hours YouTube tutorial. One person won't tell you all the "secrets", and probably doesn't know every little detail about some programming language. But someone else knows those missing "pieces", and maybe he's/she's a better teacher.&lt;/p&gt;

&lt;h2&gt;6.Consistency is the key.&lt;/h2&gt;

&lt;p&gt;Programming is a skill that requires practice, and consistency. You can't learn how to code by coding 2 days a week. It's too much information, and you won't remember where you left off. It would be like going one step forward and two steps back. It's best to join some coding challenge. That way you will build a habit of coding everyday, and you won't think about it too much.&lt;/p&gt;

&lt;h2&gt;7.The hard way, is the best way&lt;/h2&gt;

&lt;p&gt;Did I say in the title "7 easy steps"? Oh I lied, sort of, sorry 😜 Sometimes the best way to learn something is the hard way. Because the hard way makes the information to stick. I wouldn't recommend that, when you learn HTML and a little bit of CSS, right away start exploring Bootstrap. Because you'll have problems later, when applying for jobs, you won't know how to do some basic things, like how to build a fixed Navbar and how to fix some basic bugs. Also don't try learning 2-3 programming languages at once. Maybe it's possible, but I don't recommend it. :D&lt;/p&gt;

&lt;h4&gt;I hope I helped at least one person. Good luck!&lt;/h4&gt;

</description>
      <category>newbiesbeginners</category>
    </item>
  </channel>
</rss>
