<?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: Rajesh Prajapati</title>
    <description>The latest articles on DEV Community by Rajesh Prajapati (@rkumar1904).</description>
    <link>https://dev.to/rkumar1904</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%2F435177%2F87a8e758-55ed-496b-b050-24967fdd831d.jpg</url>
      <title>DEV Community: Rajesh Prajapati</title>
      <link>https://dev.to/rkumar1904</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rkumar1904"/>
    <language>en</language>
    <item>
      <title>Communicate with Redux &amp; Redux-Saga 🪄</title>
      <dc:creator>Rajesh Prajapati</dc:creator>
      <pubDate>Mon, 15 Feb 2021 02:38:39 +0000</pubDate>
      <link>https://dev.to/rkumar1904/communicate-with-redux-redux-saga-4lo6</link>
      <guid>https://dev.to/rkumar1904/communicate-with-redux-redux-saga-4lo6</guid>
      <description>&lt;p&gt;Greetings Reader,🙏&lt;/p&gt;

&lt;p&gt;This blog will discover the process of communication with &lt;strong&gt;redux store&lt;/strong&gt; in React&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Every developer maintain code in a different approach &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;My approach: Folder structure 📂  for this tree folders are common like - &lt;strong&gt;models, services, pages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Models&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const customerModel = {
  namespace: 'customer',
};

export default customerModel;

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

&lt;/div&gt;



&lt;p&gt;Providing &lt;strong&gt;namespace&lt;/strong&gt; will be unique all over the &lt;strong&gt;store&lt;/strong&gt; and easy to remember and call its &lt;em&gt;effects&lt;/em&gt; &amp;amp; &lt;em&gt;reducers&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;let's create a state of the customer model -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const customerModel = {
  namespace: 'customer',
  state:{
    customerList: [],
    singleCustomer: {},
  }
};

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

&lt;/div&gt;



&lt;p&gt;in the above &lt;code&gt;state&lt;/code&gt;, the object will handle the response from &lt;code&gt;Rest API&lt;/code&gt; also updates from customer components if any change happens. &lt;/p&gt;

&lt;p&gt;let's understand how to connect with Rest API and push the response in the &lt;code&gt;customerList&lt;/code&gt; array. for this will create a &lt;code&gt;effects&lt;/code&gt; object which will contain the &lt;code&gt;generator&lt;/code&gt; functions. read more about  &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator"&gt;generator&lt;/a&gt; &lt;/p&gt;




&lt;p&gt;&lt;code&gt;redux-saga&lt;/code&gt; provides some helper effects wrapping internal functions to spawn tasks when some specific actions are dispatched to the Store.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;effects&lt;/code&gt; -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  effects: {
    // * indicate its generator fun
    *setState({ payload }, { put }) {
      if (payload) {
        yield put({
          type: 'save',
          payload,
        });
      }
    },

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

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;setState&lt;/code&gt; is very common fun for calling multiple occurrences like user action, updating a value in the state, etc. we got two params - &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;{ payload }&lt;/code&gt; -  whatever value you would like to update in the state.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;{ put }&lt;/code&gt; - is a special helper function of redux-saga. It takes two params - 1. &lt;code&gt;type&lt;/code&gt; name of reducer (&lt;code&gt;save&lt;/code&gt;), 2. payload which needs to update in-store, payload we will understand in the component section.  read more about &lt;a href="https://redux-saga.js.org/docs/basics/UsingSagaHelpers.html"&gt;helper&lt;/a&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;yield&lt;/code&gt; -  will return the call of &lt;code&gt;put&lt;/code&gt; which is connecting to the reducers &lt;code&gt;save&lt;/code&gt;. The &lt;code&gt;save&lt;/code&gt; function we will declare in the below code in the section of the reducer object.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;code&gt;reducers&lt;/code&gt; -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; reducers: {
    save(state, { payload }) {
      return {
        ...state,
        ...payload
      };
    },
  },

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

&lt;/div&gt;



&lt;p&gt;in the reducers function, you can put the logic to maintain the state of the application but currently, we are just taking the previous state of it and merging with the new state if any changes.&lt;/p&gt;

&lt;p&gt;But in the top, we were about to get the response of customer list in put inside the &lt;code&gt;customerList&lt;/code&gt; array&lt;/p&gt;

&lt;p&gt;example: - Let's create a generator function &amp;amp; define logic as in setState fun.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*getCustomers({ payload }, { call, put }) {
      try {
        // api call -
        const response = yield call(customerListAPI, payload); 
        if (response.success) {
         // customerList key specified to store only in that array value. 
          yield put({
            type: 'save',
            payload: {
               customerList: response.data,
            }, 
          });
        }
      } catch (error) {
        console.error('error in customer list api', error);
      }
},

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

&lt;/div&gt;



&lt;p&gt;Explain -  we wrapped the API call because we calling the &lt;em&gt;promise&lt;/em&gt; function with the help of the &lt;code&gt;call&lt;/code&gt; effect.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;call&lt;/code&gt;  -required two params - i) &lt;em&gt;callback&lt;/em&gt; function, ii) &lt;em&gt;payload&lt;/em&gt; - if we need any required data to be passed to the callback function, in simple word API requirement likes customer id, etc.
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;yield&lt;/code&gt; has control over the sequence in getting a response from API call. &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;try-catch&lt;/code&gt; helps the control of the function of we get any error in resolving the promise the catch will prompt us in the console.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Services&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The services folder will contain the related API functions &amp;amp; common required key values.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
import { Access, Secret, ApiURL } from '@/utils/env';
import request from 'umi-request'; 
// axios also can be used here if you are comfirtable with `umi-request`

const headers = {
  'Content-Type': 'application/json',
  'access': Access,
  'secret': Secret,
};

export async function customerListAPI(params) {
  return request(`${ApiURL}/v1/getcustomerlist`, {
    headers,
    method: 'GET',
  });
}

// other async functions ....
export async function customerByID(params) {
 ....
 ....
 ...
}


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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Page or components&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now the finally we have to call the model to get the data from API.&lt;br&gt;
What is UMI and understand how to connect works check out my  &lt;a href="https://www.rjlooper.me/how-to-use-ant-design-theme-style-customize-components-in-an-easy-way-solutions"&gt;article&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
import { connect } from 'umi';

const CustomerList = (props) =&amp;gt; {
  const { dispatch, customer } = props;
  const { customerList } = customer;
  useEffect(() =&amp;gt; {
    if (dispatch) {
      dispatch({
        type: 'customer/getCustomers',
        payload: {
          size: 10,
          page: 1,
        },
      });
    }
  }, []);

  return (
    &amp;lt;CommonTable
      source={ customerList }
    &amp;gt;
    ....
    &amp;lt;/CommonTable&amp;gt;
  );
};
// to connec with redux store
export default connect(({ customer }) =&amp;gt; ({
  customer,
}))(CustomerList);


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

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Congratulation you made it. 🏆&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I hope you enjoyed, learned, and remember...🙌&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you liked it please leave some 💙 &amp;amp; 👍 to show your support. Also, leave your responses below and reach out to me if you face any issues.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can find me on Twitter &lt;a href="https://twitter.com/rkumar1904"&gt;rkumar1904&lt;/a&gt; &amp;amp; follow my developer journey ✌️&lt;/p&gt;

&lt;p&gt;ThankYou.&lt;/p&gt;

</description>
      <category>react</category>
      <category>redux</category>
      <category>javascript</category>
      <category>developer</category>
    </item>
    <item>
      <title>My favorite tools to learn web development 2021 🔥</title>
      <dc:creator>Rajesh Prajapati</dc:creator>
      <pubDate>Sat, 13 Feb 2021 00:52:24 +0000</pubDate>
      <link>https://dev.to/rkumar1904/my-favorite-tools-to-learn-web-development-2021-ndb</link>
      <guid>https://dev.to/rkumar1904/my-favorite-tools-to-learn-web-development-2021-ndb</guid>
      <description>&lt;p&gt;Hello Everyone 👋,&lt;/p&gt;

&lt;p&gt;I'm going to list all the tools which I've used to learn &amp;amp; earn money so far. some of the tools you may know but a few you might need to know.&lt;/p&gt;

&lt;p&gt;Most of us think (including me) in their mind for web development we just need an editor and web browser, but that's the problem with thinking. &lt;/p&gt;

&lt;p&gt;Let's correct our thinking and find out the &lt;strong&gt;best tool&lt;/strong&gt; you need for your web development faster and smoother so that you can enjoy it more. check all the listed tools one by one.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you're happy with your current tools and arsenal then you're most welcome to leave the article because this is going to be a lengthy article for tools and tips, I don't want to waste your time. - thank you for your time.🙏&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;If you are here mean you want to continue.. let's get rolling the tools.&lt;/em&gt; 👇🏻&lt;/p&gt;

&lt;h3&gt;
  
  
  Vs Code
&lt;/h3&gt;

&lt;p&gt;Yes, Vs Code is one of the Top tools on my list which will help you to write code and amazing plugins and themes which leads to our work as the focus we can.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Listed extension are self explainery, just install &amp;amp; start using them.👍 &lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ES7 React/Redux/GraphQL/React-Native snippets&lt;/strong&gt; - This extension provides you JavaScript and React/Redux snippets in ES7 with Babel plugin features for VS Code&lt;/li&gt;
&lt;/ul&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609542222880%2Fl38oz1FlC.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609542222880%2Fl38oz1FlC.png" alt="Screenshot 2021-01-02 at 4.32.54 AM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Link: -  &lt;a href="https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets" rel="noopener noreferrer"&gt;ES7 React/Redux/GraphQL/React-Native snippets&lt;/a&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ESLint&lt;/strong&gt; - Well run projects have clear consistent coding conventions, with automated enforcement (&lt;strong&gt;NodeJs&lt;/strong&gt;). I called this is a lifesaver. 🤟&lt;/li&gt;
&lt;/ul&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609542378931%2FuOPlXDK8l.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609542378931%2FuOPlXDK8l.png" alt="Screenshot 2021-01-02 at 4.35.54 AM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Link: -  &lt;a href="https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint" rel="noopener noreferrer"&gt;EsLint&lt;/a&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Visual Studio IntelliCode&lt;/strong&gt; -AI-assisted development&lt;/li&gt;
&lt;/ul&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609544018747%2FDL5PBUCJi.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609544018747%2FDL5PBUCJi.png" alt="Screenshot 2021-01-02 at 5.01.57 AM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Link: -  &lt;a href="https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode" rel="noopener noreferrer"&gt;Visual Studio IntelliCode&lt;/a&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Prettier - Code formatter&lt;/strong&gt; - it can help you format the code with all the listed languages -
JavaScript · TypeScript · Flow · JSX · JSON CSS · SCSS · Less HTML · Vue · Angular GraphQL · Markdown · YAML&lt;/li&gt;
&lt;/ul&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609544834785%2FQtthc-Hb3.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609544834785%2FQtthc-Hb3.png" alt="Screenshot 2021-01-02 at 5.14.50 AM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Link: -  &lt;a href="https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode" rel="noopener noreferrer"&gt;Prettier - Code Formatter&lt;/a&gt; &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;If you got any great extensions then do comments down below, so that others might get help from it.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Postman
&lt;/h3&gt;

&lt;p&gt;Yes, Postman is a fantastic tool not just for API call, it can do a lot more things which you might not know.&lt;/p&gt;

&lt;p&gt;Postman provides you default features not only just &lt;strong&gt;request&lt;/strong&gt;, &lt;strong&gt;response&lt;/strong&gt;. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Requests&lt;/strong&gt; - &lt;em&gt;Create, send and save REST, SOAP, or GraphQL requests.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Responses&lt;/strong&gt; - &lt;em&gt;View status code, response size, and response time.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Variables&lt;/strong&gt; - &lt;em&gt;Built-in support for variables, also you can share with your team.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scripts and the Postman Sandbox&lt;/strong&gt; - &lt;em&gt;With a script you also write a test case, Insert preset test and pre-request scripts in Sandbox.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Collaboration&lt;/strong&gt; - * It provides you unlimited personal or team workspaces, you can share collections, environments, and APIs to workspaces.*&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Collections&lt;/strong&gt; - &lt;em&gt;Its most common and useful features and to be connected with the team for API request, Organize and keep track of related requests, it will also help you to save a response for future reference so that the next person need not call the API if he/she just want to see the response.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Monitoring&lt;/strong&gt; - * it's just a scheduler for API or collection which you have set up and assigned if there are any scripts or tests to run along with its duration. It will help you to monitor if API failed or pass the request and response, keep in mind it will support only public network, not VPC.*&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Mock Server&lt;/strong&gt; - &lt;em&gt;Simulate API endpoints with mock server and also Create and save examples for the mock server to return.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Documentation&lt;/strong&gt; - &lt;em&gt;Write markdown descriptions at request, folder, or collection level, it will help you when sharing the document in **private&lt;/em&gt;* or &lt;strong&gt;publish&lt;/strong&gt; on the public network, you can also &lt;strong&gt;save&lt;/strong&gt; the response, &lt;strong&gt;env&lt;/strong&gt; to manage better documentation for the viewer.*&lt;/p&gt;&lt;/li&gt;
&lt;/ul&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609545595390%2F7K_eSNZ0j.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609545595390%2F7K_eSNZ0j.png" alt="Screenshot 2021-01-02 at 5.29.41 AM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the above points, we talk about the API but how to create one? 🤔&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API - Express&lt;/strong&gt; - yes we are talking about express.js, but you can also create API with others as well. checkout the video and  &lt;a href="https://medium.com/@onejohi/building-a-simple-rest-api-with-nodejs-and-express-da6273ed7ca9" rel="noopener noreferrer"&gt;blog&lt;/a&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Best Online IDE and Code Editors to Develop Web Applications&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;** &lt;a href="https://jsfiddle.net/" rel="noopener noreferrer"&gt;JSFiddle&lt;/a&gt; ** - While JSFiddle can’t replace a full-fledged text editor, it does a damn good job of handling one-off frontend scripts.&lt;/li&gt;
&lt;/ul&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609546558054%2F7WSn-aTli.webp" 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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609546558054%2F7WSn-aTli.webp" alt="jsfiddle.webp"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;** &lt;a href="https://codesandbox.io/s" rel="noopener noreferrer"&gt;CodeSandbox&lt;/a&gt; ** - CodeSandbox can be thought of as a much more powerful and complete take on JSFiddle. True to its name, CodeSandbox provides a complete code editor experience and a sandboxed environment for front-end development.&lt;/li&gt;
&lt;/ul&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609546955828%2FdbSD4ssta.webp" 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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609546955828%2FdbSD4ssta.webp" alt="code-sandbox.webp"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;** &lt;a href="https://stackblitz.com/" rel="noopener noreferrer"&gt;StackBlitz&lt;/a&gt; ** - If you’re into front-end mostly and cannot move away from the VSCode interface, StackBlitz was created just for you.&lt;/li&gt;
&lt;/ul&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609547114480%2FrkjWQcFBX.webp" 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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609547114480%2FrkjWQcFBX.webp" alt="stackblitz.webp"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;** &lt;a href="https://codepen.io/" rel="noopener noreferrer"&gt;CodePen&lt;/a&gt; **  - CodePen is an online community for testing and showcasing user-created HTML, CSS and JavaScript code snippets. It functions as an online code editor and open-source learning environment, where developers can create code snippets, called "pens," and test them.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Below pen is created by [&lt;strong&gt;Shadow Scientist&lt;/strong&gt;] checkout his  &lt;a href="https://codepen.io/shadow-scientist" rel="noopener noreferrer"&gt;profile&lt;/a&gt; for amazing pens and works.&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609548845455%2FBMWzW4Dzd.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609548845455%2FBMWzW4Dzd.png" alt="Screenshot 2021-01-02 at 6.23.13 AM.png"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Editor and designer tool (Collaboration between Designers and Engineers)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;** &lt;a href="http://figma.com/" rel="noopener noreferrer"&gt;Figma&lt;/a&gt; ** - Figma is a vector graphics editor and prototyping tool which is primarily web-based, with additional offline features enabled by desktop applications for macOS and Windows. The Figma Mirror companion apps for Android and iOS allow viewing Figma prototypes on mobile devices.

&lt;ol&gt;
&lt;li&gt;Fast&lt;/li&gt;
&lt;li&gt;Easy to use&lt;/li&gt;
&lt;li&gt;Extensions &lt;/li&gt;
&lt;li&gt;Large Community &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free&lt;/strong&gt; / Paid features.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.figma.com/downloads/" rel="noopener noreferrer"&gt;Download&lt;/a&gt;  🗳&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609549241668%2FEY9-hbmjq.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609549241668%2FEY9-hbmjq.png" alt="Screenshot 2021-01-02 at 6.30.02 AM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;** &lt;a href="https://zeplin.io/" rel="noopener noreferrer"&gt;Zeplin&lt;/a&gt; ** - Zeplin focuses purely on improving the collaboration between designers and engineers, providing them the most accurate resources out there. &lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Easy to use&lt;/li&gt;
&lt;li&gt;Extensions &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free&lt;/strong&gt; / Paid features.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;The better way to share, organize, and collaborate on designs—built with developers in mind.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://zpl.io/download-mac" rel="noopener noreferrer"&gt;Download for Mac&lt;/a&gt;  🗳&lt;br&gt;
&lt;a href="https://zpl.io/download-windows-64" rel="noopener noreferrer"&gt;Download for Windows&lt;/a&gt;  🗳&lt;/p&gt;

&lt;p&gt;Or check out the  &lt;a href="https://app.zeplin.io/" rel="noopener noreferrer"&gt;web version&lt;/a&gt; &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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609549769742%2F9IAhR3stT.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609549769742%2F9IAhR3stT.png" alt="Screenshot 2021-01-02 at 6.36.23 AM.png"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Other Tools for [React developers]&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt; ** &lt;a href="https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en" rel="noopener noreferrer"&gt;React Developer Tools&lt;/a&gt; ** - React Developer Tools is a Chrome DevTools extension for the open-source React JavaScript library. It allows you to inspect the React component hierarchies in the Chrome Developer Tools.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You will get two new tabs in your Chrome DevTools: "⚛️ Components" and "⚛️ Profiler".&lt;/p&gt;

&lt;p&gt;Downloads - 2,000,000+ users&lt;/p&gt;

&lt;p&gt;Rating: ⭐️⭐️⭐️⭐️&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;** &lt;a href="https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd?hl=en" rel="noopener noreferrer"&gt;Redux DevTools&lt;/a&gt; ** - Redux DevTools for debugging application's state changes.
The extension provides power-ups for your Redux development workflow. Apart from Redux, it can be used with any other architectures which handle the state.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Downloads - 1,000,000+ users&lt;/p&gt;

&lt;p&gt;Rating: ⭐️⭐️⭐️⭐️⭐️&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Miscellaneous&lt;/strong&gt; - just for now.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;** &lt;a href="https://www.notion.so/" rel="noopener noreferrer"&gt;Notion&lt;/a&gt; ** - One tool for your whole team. Write, plan, and get organized.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Notion&lt;/strong&gt; is my personal favorite tool for everything which includes a bookmark, reading list, to-do list, research, blog post, article arrangement, task, work, and life balance, and many more. &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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609554314395%2FDVPyUSA3W.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609554314395%2FDVPyUSA3W.png" alt="notion.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;** &lt;a href="https://clickup.com/" rel="noopener noreferrer"&gt;ClickUp&lt;/a&gt; **  - All your work in one place: Tasks, docs, chat, goals, &amp;amp; more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ClickUp&lt;/strong&gt; is one of the most inspirational and growing tools for today, currently using it for my &lt;strong&gt;office environment&lt;/strong&gt; and people Love ❤️  it. its got so many amazingly delicious task management system, which supports like OKR, Kanban, many more you can think of it. It's just not a task management system, it's bigger than that.&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609554582704%2FDFb6nBR2n.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609554582704%2FDFb6nBR2n.png" alt="Screenshot 2021-01-02 at 7.58.29 AM.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Wrapping Up
&lt;/h2&gt;

&lt;p&gt;Hope you enjoyed this article. Go add some &lt;strong&gt;nice&lt;/strong&gt; reactions and &lt;strong&gt;cool&lt;/strong&gt; comments below. Why I'm requesting it because it took me &lt;strong&gt;8+ hours&lt;/strong&gt; ⏰ to write this article. You only need a &lt;strong&gt;few moments&lt;/strong&gt; to like and comments, it will encourage me to write more good articles in the future. Share it with your friends let them know about this article. &lt;/p&gt;

&lt;p&gt;Thank you for your time.✌️&lt;/p&gt;

&lt;h3&gt;
  
  
  Finally ✍️
&lt;/h3&gt;

&lt;p&gt;If you have time then do check out my other article &amp;amp; many of them are related to Ant. Design. &lt;/p&gt;

&lt;p&gt;I'm also available on Twitter &lt;a href="https://twitter.com/rkumar1904" rel="noopener noreferrer"&gt;https://twitter.com/rkumar1904&lt;/a&gt; &amp;amp; do follow for &lt;strong&gt;Tips and Tricks&lt;/strong&gt; and developer journey with me.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Happy Coding 👌&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>programming</category>
      <category>developer</category>
    </item>
    <item>
      <title>Top Best Data Visualization Tools by Ant.Design in 2021 🔥</title>
      <dc:creator>Rajesh Prajapati</dc:creator>
      <pubDate>Fri, 12 Feb 2021 06:19:05 +0000</pubDate>
      <link>https://dev.to/rkumar1904/top-best-data-visualization-tools-by-ant-design-in-2021-2k0j</link>
      <guid>https://dev.to/rkumar1904/top-best-data-visualization-tools-by-ant-design-in-2021-2k0j</guid>
      <description>&lt;p&gt;&lt;strong&gt;Greeting you as X-axis Y-axis, 👋&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are many things to consider when choosing the right data visualization or charts tool for our web page. We will be going through the best data visualization tools for our needs.&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609679616409%2FDdfXQSaaW.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609679616409%2FDdfXQSaaW.jpeg" alt="x-y.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now the question is, &lt;/p&gt;

&lt;h3&gt;
  
  
  Question  - "What Are Data Visualization Tools?" 🛠 🧰
&lt;/h3&gt;

&lt;p&gt;Ans - Data visualization tools provide data visualization designers with an easier way to create visual representations of large data sets. &lt;/p&gt;

&lt;p&gt;The answer is not perfectly clear and understanding unless we see what it means. &lt;/p&gt;

&lt;p&gt;We all know it's pointing to the direction of a chart or graph which may be &lt;strong&gt;d3.js&lt;/strong&gt; or &lt;strong&gt;chart.js&lt;/strong&gt; similar kinda lib. Yes, you’re absolutely correct here but I want to point out the important part of it. &lt;/p&gt;

&lt;p&gt;Do you know when someone buys a theme for the admin panel what should be most Circean in terms of UI? 60% Ans would be Charts and Graphs.    &lt;/p&gt;




&lt;p&gt;Let's roll over the Visualization lib or tool... 👇🏻 &lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;a href="https://antv.vision/en" rel="noopener noreferrer"&gt;AntV&lt;/a&gt; - Liven Data Lively
&lt;/h4&gt;

&lt;p&gt;A new generation of data visualization solutions from Ant Group.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Don't worry about the "Liven Data Lively" it's the slogan.   &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here is what AntV provide the full list of the things which treasure for us. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;G2&lt;/strong&gt; -Data-driven visual language with a high level of usability and scalability.&lt;/li&gt;
&lt;/ul&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609730772480%2FeBr1m1QP-.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609730772480%2FeBr1m1QP-.png" alt="Screenshot 2021-01-01 at 7.44.21 PM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; &lt;a href="https://g2.antv.vision/en" rel="noopener noreferrer"&gt;Home page&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; &lt;a href="https://g2.antv.vision/en/examples/gallery" rel="noopener noreferrer"&gt;Examples&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;F2&lt;/strong&gt; - F2 is born for mobile, developed for developers as well as designers. It is Html5 Canvas-based and is also compatible with Node.js, F2 provides all the chart types you'll need. Our mobile design guidelines enable a better user experience in mobile visualization projects.&lt;/li&gt;
&lt;/ul&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609942189512%2Fqeq53tdsz.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609942189512%2Fqeq53tdsz.png" alt="Screenshot 2021-01-06 at 7.35.15 PM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://f2.antv.vision/en" rel="noopener noreferrer"&gt;Home page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://f2.antv.vision/en/examples/gallery" rel="noopener noreferrer"&gt;Examples&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;G6&lt;/strong&gt; - is a graph visualization engine with simplicity and convenience. Based on the ability to customize, it provides a set of elegant graph visualization solutions and helps developers to build up applications for graph visualization, graph analysis, and graph editor.&lt;/li&gt;
&lt;/ul&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609942200744%2F07YXRfvW5.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609942200744%2F07YXRfvW5.png" alt="Screenshot 2021-01-06 at 7.39.09 PM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://g6.antv.vision/en" rel="noopener noreferrer"&gt;Home page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://g6.antv.vision/en/examples/gallery" rel="noopener noreferrer"&gt;Examples&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe src="https://codesandbox.io/embed/uv35x"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;X6&lt;/strong&gt;  &lt;em&gt;Diagram Editing Engine&lt;/em&gt; - X6 is AntV's diagram editing engine, which provides a series of easy-to-use interactive components and node customization capabilities to facilitate the rapid construction of DAG diagrams, ER diagrams, flowcharts, and other applications.&lt;/li&gt;
&lt;/ul&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609942946082%2FLXLfnUHva.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609942946082%2FLXLfnUHva.png" alt="Screenshot 2021-01-06 at 7.50.50 PM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://x6.antv.vision/en" rel="noopener noreferrer"&gt;Home page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x6.antv.vision/en/examples/gallery" rel="noopener noreferrer"&gt;Examples&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;L7&lt;/strong&gt;  &lt;em&gt;Geospatial Visualization&lt;/em&gt; - Large-scale WebGL-powered Geospatial data visualization analysis framework&lt;/li&gt;
&lt;/ul&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609943928469%2FR_ATR9CH2.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609943928469%2FR_ATR9CH2.png" alt="Screenshot 2021-01-06 at 8.06.07 PM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://l7.antv.vision/en" rel="noopener noreferrer"&gt;Home page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://l7.antv.vision/en/examples/gallery" rel="noopener noreferrer"&gt;Examples&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe src="https://codesandbox.io/embed/540pz"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AVA&lt;/strong&gt; - AVA is a framework for more convenient Visual Analytics. The first A of AVA has many meanings. It states that the goal of this framework is to become an Automated, AI-driven solution that supports Augmented analytics.&lt;/li&gt;
&lt;/ul&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609944092588%2FsbVY9RLwk.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609944092588%2FsbVY9RLwk.png" alt="Screenshot 2021-01-06 at 8.10.47 PM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://ava.antv.vision/en" rel="noopener noreferrer"&gt;Home page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ava.antv.vision/en/examples/gallery" rel="noopener noreferrer"&gt;Examples&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;All the above have there owned capabilities and concepts but if you're looking for specific in &lt;strong&gt;React&lt;/strong&gt; version of it, then I will recommend you to go for &lt;strong&gt;Ant Charts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let's see in action - &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;** &lt;a href="https://charts.ant.design/" rel="noopener noreferrer"&gt;Ant Design Chart&lt;/a&gt; ** -  Simple and easy to use React chart library&lt;/li&gt;
&lt;/ul&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609945015600%2FnTcEacQPN.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1609945015600%2FnTcEacQPN.png" alt="Screenshot 2021-01-06 at 8.26.32 PM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;installation &lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ npm install @ant-design/charts&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from 'react';
import { Line } from '@ant-design/charts';

const Page: React.FC = () =&amp;gt; {
  const data = [
    { year: '1991', value1: 3 },
    { year: '1992', value: 4 },
    { year: '1993', value: 3.5 },
    { year: '1994', value: 5 },
    { year: '1995', value: 4.9 },
    { year: '1996', value: 6 },
    { year: '1997', value: 7 },
    { year: '1998', value: 9 },
    { year: '1999', value: 13 },
  ];

  const config = {
    data,
    height: 400,
    xField: 'year',
    yField: 'value',
    point: {
      size: 5,
      shape: 'diamond',
    },
    label: {
      style: {
        fill: '#aaa',
      },
    },
  };
  return &amp;lt;Line {...config} /&amp;gt;;
};
export default Page;

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

&lt;/div&gt;



&lt;p&gt;And here is the final output is 👇🏻&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://codesandbox.io/embed/zl0hq"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Wrapping Up
&lt;/h2&gt;

&lt;p&gt;Hope you enjoyed this article. Go add some nice reactions and cool comments below. You only need a few moments to like and comments, it will encourage me to write more good articles in the future. Share it with your friends let them know about this article.&lt;/p&gt;

&lt;p&gt;Thank you for your time.✌️&lt;/p&gt;

&lt;h3&gt;
  
  
  Finally ✍️
&lt;/h3&gt;

&lt;p&gt;If you have time then do check out my other article &amp;amp; many of them are related to Ant. Design. &lt;/p&gt;




&lt;p&gt;I'm also available on &lt;a href="//twitter.com/rkumar1904"&gt;Twitter&lt;/a&gt; &amp;amp; do follow for Tips and Tricks and developer journey with me.&lt;/p&gt;

&lt;p&gt;Thank you for your valuable time. ⏰ Your support 👍 💛 will make my day🙏 &lt;/p&gt;

</description>
      <category>design</category>
      <category>javascript</category>
      <category>chart</category>
      <category>react</category>
    </item>
    <item>
      <title>Complete Skillset You Must Know as React developer ✡️</title>
      <dc:creator>Rajesh Prajapati</dc:creator>
      <pubDate>Thu, 11 Feb 2021 02:42:31 +0000</pubDate>
      <link>https://dev.to/rkumar1904/complete-skillset-you-must-know-as-react-developer-3323</link>
      <guid>https://dev.to/rkumar1904/complete-skillset-you-must-know-as-react-developer-3323</guid>
      <description>&lt;p&gt;Greetings 🖖 my amazing friend,&lt;/p&gt;

&lt;p&gt;Today I'm writing the article to React just for one reason - I love 💛 Reactjs. I've no intentions to force you to learn to react or get into React. if you're currently getting started or already working on it then it's definitely for you, And please don't miss any points because every single skill or tip will help you to get better at ReactJS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Few prerequisites&lt;/strong&gt;   &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;HTML5 and CSS3 - As frontend developers, we all mostly start from HTML and CSS and that's the good start of a career. We do create a cool and attractive design with help of HTML and CSS, JS provides functionally for every piece of design. If you've got a good understanding of how to link pages with CSS, HEAD, BODY section, and &lt;em&gt;semantics element&lt;/em&gt; of HTML.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Semantic Elements in HTML&lt;/strong&gt; -Semantic elements = elements with a meaning.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A semantic element clearly describes its meaning to both the browser and the developer.👇🏻&lt;/p&gt;

&lt;p&gt;Examples of non-semantic elements: &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt; - Tells nothing about its content.&lt;/p&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Examples of semantic elements:&lt;code&gt;&amp;lt;form&amp;gt;&lt;/code&gt;,&lt;code&gt;&amp;lt;table&amp;gt;&lt;/code&gt;, and &lt;code&gt;&amp;lt;article&amp;gt;&lt;/code&gt; - Clearly defines its content.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JavaScript (JS) - If you have a basic understanding of JavaScript then it's enough to react. like - Validation of form, how click events work? storing data in variables, cookies, and so on. If you ever understood the programming concept of &lt;strong&gt;OOP&lt;/strong&gt; then it will be a &lt;em&gt;BONUS&lt;/em&gt; for you. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm repeating again, you don't need to be an expert in Javascript to learn React. &lt;/p&gt;




&lt;p&gt;Let's start the Reaction in React 🙀&lt;/p&gt;

&lt;p&gt;Now we already know what React is built for what we are trying to achieve with it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Point #1&lt;/strong&gt; - Basic understanding of &lt;strong&gt;ES6 features&lt;/strong&gt;. The below points are the most common and required for writing react code and working as lib suggests.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;let&lt;/li&gt;
&lt;li&gt;const&lt;/li&gt;
&lt;li&gt;Arrow functions&lt;/li&gt;
&lt;li&gt;imports and exports&lt;/li&gt;
&lt;li&gt;classes&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And Basic understanding of how to use ** &lt;a href="//npmjs.com"&gt;NPM&lt;/a&gt; **&lt;/p&gt;

&lt;p&gt;The importance of the above points you will be asked the question about it in interviews.&lt;/p&gt;

&lt;p&gt;Just not only let and const, but you will also be asked some questions related to &lt;em&gt;ES6&lt;/em&gt;, &lt;em&gt;JSX&lt;/em&gt;, &lt;em&gt;Babel&lt;/em&gt;, &lt;em&gt;Package manager&lt;/em&gt;, basic javascript or some other fundamental &lt;em&gt;concepts&lt;/em&gt;.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Point #2&lt;/strong&gt; -  &lt;strong&gt;JSX &amp;amp; Babel&lt;/strong&gt; - In React we will work with JSX that looks like HTML and you can consider it like HTML-with JavaScript. It is the easiest way to add HTML code inside javascript or you can say it is the extension of the Javascript language syntax.&lt;/p&gt;

&lt;p&gt;basic - &lt;code&gt;const title = &amp;lt;h1&amp;gt; Welcome to React ✡️ &amp;lt;/h1&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;meaning -&lt;br&gt;
&lt;br&gt;
  &lt;code&gt;JSX = JavaScript + HTML&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Point #3&lt;/strong&gt; -  &lt;strong&gt;Arrays&lt;/strong&gt; - Array Functions like &lt;code&gt;.map()&lt;/code&gt; and &lt;code&gt;.filter()&lt;/code&gt; - as React is essentially a view library, you’ll often be rendering items, or a list of records, to be displayed in your User interface. &lt;/p&gt;

&lt;p&gt;Information like this is usually stored in an array in a component’s state and passed around from parent to child, where you iterate over the list of items and do something with it. Most often, you use &lt;code&gt;.map()&lt;/code&gt; or &lt;code&gt;.filter()&lt;/code&gt; in cases like these.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Point #4&lt;/strong&gt; -  &lt;strong&gt;this&lt;/strong&gt;  - Binding and the &lt;code&gt;this&lt;/code&gt; keyword - If you go for the ES6 class syntax, you’ll usually bind your utility functions (like &lt;code&gt;handleClick/handleSubmit&lt;/code&gt;) to the class instance, using a &lt;code&gt;**constructor**&lt;/code&gt;. Along with that, you’ll often refer to these functions using the &lt;code&gt;this&lt;/code&gt; keyword. Prior knowledge of this and binding would help here.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Point #5&lt;/strong&gt; - &lt;strong&gt;Styling&lt;/strong&gt; -  Learning that JSX utilizes &lt;code&gt;className&lt;/code&gt; instead of &lt;code&gt;class&lt;/code&gt; for assigning class attributes and the nuances involved with how to assign styles inline become an important aspect of React as you begin to style basic pages.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Point #6&lt;/strong&gt; -  &lt;strong&gt;State&lt;/strong&gt;  - React components has a built-in state object.&lt;/p&gt;

&lt;p&gt;The state is data that we want to show to users or items in memory that we can access in order to allow our users to interact with our data. We hold all of the data that we present on an object called state and access these bits of data via properties on this state object.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Point #7&lt;/strong&gt; -  &lt;strong&gt;Event Handlers&lt;/strong&gt; - The native event object that you get with normal DOM manipulation in React is actually wrapped up in what’s called the SyntheticEvent. Make sure you can attach different types of events to HTML elements such as &lt;code&gt;onclicks&lt;/code&gt;, &lt;code&gt;onchange&lt;/code&gt;, &lt;code&gt;mouseenter&lt;/code&gt;, etc.&lt;/p&gt;

&lt;p&gt;But mostly you've to take care of such events in onChange for the input box.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Point #8&lt;/strong&gt; - ** Lifecycle** - After understanding how we can create modular components and pass the data, next comes learning how to utilize the lifecycle to properly handle obtaining data, choosing when to trigger a re-render, and responding to other lifecycle-related nuances as appropriate. This is critical to making more involved applications.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Few key points to understand&lt;/strong&gt; - React provides developers with many methods or “hooks” that are called during the life-cycle of a component, which allows us to update the UI and application state.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;constructor&lt;/strong&gt; - This is a special function that will get called whenever a new object is created. It’s very important to call a special function super in cases where our class extends any other class that also has a defined constructor. Calling this special function will call the constructor of our parent class and allow it to initialize itself. This is why we have access to this.props only after we’ve initially called super.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Events&lt;/th&gt;
&lt;th&gt;Do   ✅&lt;/th&gt;
&lt;th&gt;Don't  ❌&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;constructor&lt;/td&gt;
&lt;td&gt;set initial state&lt;/td&gt;
&lt;td&gt;cause any side effects (API calls etc.)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;componentWillMount&lt;/td&gt;
&lt;td&gt;update state via this.setState&lt;/td&gt;
&lt;td&gt;cause any side effects (API calls etc.) on client-side&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;componentWillReceiveProps&lt;/td&gt;
&lt;td&gt;sync state to props&lt;/td&gt;
&lt;td&gt;cause any side effects (API calls etc.)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;shouldComponentUpdate&lt;/td&gt;
&lt;td&gt;use for increasing performance of poor performing Components&lt;/td&gt;
&lt;td&gt;call this.setState&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;componentWillUpdate&lt;/td&gt;
&lt;td&gt;synchronize state to props&lt;/td&gt;
&lt;td&gt;cause any side effects (API calls etc.)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;componentDidUpdate&lt;/td&gt;
&lt;td&gt;cause side effects (API calls etc.)&lt;/td&gt;
&lt;td&gt;call this.setState as it will result in a re-render&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;componentDidCatch&lt;/td&gt;
&lt;td&gt;A new addition in React 16&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;componentDidMount&lt;/td&gt;
&lt;td&gt;cause side effects (API calls etc.)&lt;/td&gt;
&lt;td&gt;call this.setState as it will result in a re-render&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;componentWillUnmount&lt;/td&gt;
&lt;td&gt;remove any timers or listeners created in lifespan of the component&lt;/td&gt;
&lt;td&gt;call this.setState, start new listeners or timers&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For deep div understanding in react life cycle checkout the official  &lt;a href="https://reactjs.org/docs/state-and-lifecycle.html"&gt;doc&lt;/a&gt;  or check the blog of  &lt;a href="https://medium.com/@baphemot/understanding-reactjs-component-life-cycle-823a640b3e8d"&gt;Bartosz Szczeciński&lt;/a&gt; &lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Point #9&lt;/strong&gt; - &lt;strong&gt;ESLint&lt;/strong&gt; - ESLint is a tool for identifying and reporting on patterns found in ECMAScript/JavaScript code, with the goal of making code more consistent and avoiding bugs. And It's awesome 👍&lt;/p&gt;

&lt;p&gt;Awesome because not only does ESLint identify ways to make code better, but if you don’t need or don’t agree with certain rules, they can be changed or ignored (either for the line, for the whole file, or for the whole project).&lt;/p&gt;

&lt;p&gt;None of the rules depend on each other, they all function independently, and some rules can even fix the code themselves to fall in line with the prescribed rules.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;** &lt;a href="https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb"&gt;Airbnb ESLint&lt;/a&gt; ** -The ESLint rules that Airbnb abides by are considered among many as the gold standard for React. They are strict, they are unforgiving and they are thorough.&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vJ70wriM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/airbnb"&gt;
        airbnb
      &lt;/a&gt; / &lt;a href="https://github.com/airbnb/javascript"&gt;
        javascript
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      JavaScript Style Guide
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Airbnb JavaScript Style Guide() {&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;A mostly reasonable approach to JavaScript&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: this guide assumes you are using &lt;a href="https://babeljs.io" rel="nofollow"&gt;Babel&lt;/a&gt;, and requires that you use &lt;a href="https://npmjs.com/babel-preset-airbnb" rel="nofollow"&gt;babel-preset-airbnb&lt;/a&gt; or the equivalent. It also assumes you are installing shims/polyfills in your app, with &lt;a href="https://npmjs.com/airbnb-browser-shims" rel="nofollow"&gt;airbnb-browser-shims&lt;/a&gt; or the equivalent.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://www.npmjs.com/package/eslint-config-airbnb" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/a933cce640ac4a82eadf6bba106e1523b12c8e1dd8e8dc4b8754d6b555c18615/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f65736c696e742d636f6e6669672d616972626e622e737667" alt="Downloads"&gt;&lt;/a&gt;
&lt;a href="https://www.npmjs.com/package/eslint-config-airbnb-base" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/eec211cbd52a6227ef09a18a19bdd49234ce48e395a383bfbfedeaf6c5052d33/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f65736c696e742d636f6e6669672d616972626e622d626173652e737667" alt="Downloads"&gt;&lt;/a&gt;
&lt;a href="https://gitter.im/airbnb/javascript?utm_source=badge&amp;amp;utm_medium=badge&amp;amp;utm_campaign=pr-badge" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/5dbac0213da25c445bd11f168587c11a200ba153ef3014e8408e462e410169b3/68747470733a2f2f6261646765732e6769747465722e696d2f4a6f696e253230436861742e737667" alt="Gitter"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This guide is available in other languages too. See &lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#translation"&gt;Translation&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Other Style Guides&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/airbnb/javascript/tree/es5-deprecated/es5"&gt;ES5 (Deprecated)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/react/"&gt;React&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/css-in-javascript/"&gt;CSS-in-JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/airbnb/css"&gt;CSS &amp;amp; Sass&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/airbnb/ruby"&gt;Ruby&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
Table of Contents&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#types"&gt;Types&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#references"&gt;References&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#objects"&gt;Objects&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#arrays"&gt;Arrays&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#destructuring"&gt;Destructuring&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#strings"&gt;Strings&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#functions"&gt;Functions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#arrow-functions"&gt;Arrow Functions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#classes--constructors"&gt;Classes &amp;amp; Constructors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#modules"&gt;Modules&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#iterators-and-generators"&gt;Iterators and Generators&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#properties"&gt;Properties&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#variables"&gt;Variables&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#hoisting"&gt;Hoisting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#comparison-operators--equality"&gt;Comparison Operators &amp;amp; Equality&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#blocks"&gt;Blocks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#control-statements"&gt;Control Statements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#comments"&gt;Comments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#whitespace"&gt;Whitespace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#commas"&gt;Commas&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#semicolons"&gt;Semicolons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#type-casting--coercion"&gt;Type Casting &amp;amp; Coercion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#naming-conventions"&gt;Naming Conventions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#accessors"&gt;Accessors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#events"&gt;Events&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#jquery"&gt;jQuery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#ecmascript-5-compatibility"&gt;ECMAScript 5 Compatibility&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#ecmascript-6-es-2015-styles"&gt;ECMAScript 6+ (ES 2015+) Styles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#standard-library"&gt;Standard Library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#testing"&gt;Testing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#performance"&gt;Performance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#resources"&gt;Resources&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#in-the-wild"&gt;In the Wild&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#translation"&gt;Translation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#the-javascript-style-guide-guide"&gt;The JavaScript Style Guide Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#chat-with-us-about-javascript"&gt;Chat With Us About JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#contributors"&gt;Contributors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#license"&gt;License&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#amendments"&gt;Amendments&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
Types&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://raw.githubusercontent.com/airbnb/javascript/master/#types--primitives"&gt;1.1&lt;/a&gt; &lt;strong&gt;Primitives&lt;/strong&gt;: When you access a primitive type you work…&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/airbnb/javascript"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Here is my setup for EsLint:-&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "parser": "babel-eslint",
  "extends": "airbnb",
  "plugins": ["compat"],
  "env": {
    "browser": true,
    "node": true,
    "es6": true,
    "mocha": true,
    "jest": true,
    "jasmine": true
  },
  "rules": {
    "generator-star-spacing": [0],
    "consistent-return": [0],
    "react/forbid-prop-types": [0],
    "react/jsx-filename-extension": [1, { "extensions": [".js"] }],
    "global-require": [1],
    "import/prefer-default-export": [0],
    "react/jsx-no-bind": [0],
    "react/prop-types": [0],
    "react/prefer-stateless-function": [0],
    "react/jsx-wrap-multilines": ["error", {
      "declaration": "parens-new-line",
      "assignment": "parens-new-line",
      "return": "parens-new-line",
      "arrow": "parens-new-line",
      "condition": "parens-new-line",
      "logical": "parens-new-line",
      "prop": "ignore"
    }],
    "no-else-return": [0],
    "no-restricted-syntax": [0],
    "import/no-extraneous-dependencies": [0],
    "no-use-before-define": [0],
    "jsx-a11y/no-static-element-interactions": [0],
    "jsx-a11y/no-noninteractive-element-interactions": [0],
    "jsx-a11y/click-events-have-key-events": [0],
    "jsx-a11y/anchor-is-valid": [0],
    "no-nested-ternary": [0],
    "arrow-body-style": [0],
    "import/extensions": [0],
    "no-bitwise": [0],
    "no-cond-assign": [0],
    "import/no-unresolved": [0],
    "comma-dangle": ["error", {
      "arrays": "always-multiline",
      "objects": "always-multiline",
      "imports": "always-multiline",
      "exports": "always-multiline",
      "functions": "ignore"
    }],
    "object-curly-newline": [0],
    "function-paren-newline": [0],
    "no-restricted-globals": [0],
    "require-yield": [1],
    "compat/compat": "error"
  },
  "parserOptions": {
    "ecmaFeatures": {
      "experimentalObjectRestSpread": true
    }
  },
  "settings": {
    "polyfills": ["fetch", "promises"]
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;p&gt;&lt;strong&gt;Point #10&lt;/strong&gt; - &lt;strong&gt;Node + npm&lt;/strong&gt; - Yes node and NPM both are required to fully develop and test the application.&lt;/p&gt;

&lt;p&gt;React developers need to have a solid understanding of the npm registry. This is the place where software developers can go to get the software to help them build software.&lt;/p&gt;

&lt;p&gt;Sometime we need clear understanding which we should choose ** &lt;a href="https://yarnpkg.com/"&gt;YARN&lt;/a&gt; ** OR ** &lt;a href="//npmjs.com"&gt;NPM&lt;/a&gt; **.&lt;/p&gt;

&lt;p&gt;Yarn is a package manager that is built to utilize the npm registry. The yarn actually optimizes your npm workflows. Yarn and npm somewhat compete today, but the mission of Yarn has been to solve a lot of the problems that are accepted in the Node/npm ecosystem. npm has been doing everything it can to follow the patterns and practices that Yarn presents.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Point #11&lt;/strong&gt; - ** Redux** - The state management library of React, Redux is another essential feature or skill that every developer must-have. Earlier developers have had a hard time dealing with the asynchronous nature of React updates.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Here is how I manage the Redux-Saga Application&lt;/em&gt;!&lt;/p&gt;

&lt;p&gt;What is &lt;strong&gt;Redux Saga&lt;/strong&gt;? &lt;a href="https://redux-saga.js.org/"&gt;Doc&lt;/a&gt;&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vJ70wriM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/redux-saga"&gt;
        redux-saga
      &lt;/a&gt; / &lt;a href="https://github.com/redux-saga/redux-saga"&gt;
        redux-saga
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      An alternative side effect model for Redux apps
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/9aeca0c4895a016857cfef6208b2da091f20f41505b938933dad7b6a7aaf4942/68747470733a2f2f72656475782d736167612e6a732e6f72672f6c6f676f2f303830302f52656475782d536167612d4c6f676f2d4c616e6473636170652e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/9aeca0c4895a016857cfef6208b2da091f20f41505b938933dad7b6a7aaf4942/68747470733a2f2f72656475782d736167612e6a732e6f72672f6c6f676f2f303830302f52656475782d536167612d4c6f676f2d4c616e6473636170652e706e67" alt="Redux Logo Landscape" width="800px"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
redux-saga&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://www.npmjs.com/package/redux-saga" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/82f553529679bcc7f2f846d2447c3406cf867eac1417618b23db86c66f5c7d3a/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f72656475782d736167612e737667" alt="npm version"&gt;&lt;/a&gt;
&lt;a href="https://cdnjs.com/libraries/redux-saga" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/c52190c9a21e24ecfab737207fc42aaf410a4e30bfcab03d252c47fe84e6c354/68747470733a2f2f696d672e736869656c64732e696f2f63646e6a732f762f72656475782d736167612e737667" alt="CDNJS"&gt;&lt;/a&gt;
&lt;a href="https://www.npmjs.com/package/redux-saga" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/f5ac5d506af1fc8a87b28b4e928645940396314eb464ec8c7b38a0de56867477/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f72656475782d736167612e737667" alt="npm"&gt;&lt;/a&gt;
&lt;a href="https://travis-ci.org/redux-saga/redux-saga" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/4ae069eae701344823a63475c3f477a86982978642398942858ecd6533b04ae2/68747470733a2f2f7472617669732d63692e6f72672f72656475782d736167612f72656475782d736167612e7376673f6272616e63683d6d6173746572" alt="Build Status"&gt;&lt;/a&gt;
&lt;a href="https://gitter.im/yelouafi/redux-saga?utm_source=badge&amp;amp;utm_medium=badge&amp;amp;utm_campaign=pr-badge&amp;amp;utm_content=badge" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/e43f8f4dccb657548cca31161f2248ef376a47c1ccedee8ec4eeadf4a47c886a/68747470733a2f2f6261646765732e6769747465722e696d2f79656c6f756166692f72656475782d736167612e737667" alt="Join the chat at https://gitter.im/yelouafi/redux-saga"&gt;&lt;/a&gt;
&lt;a href="https://raw.githubusercontent.com/redux-saga/redux-saga/master/#backers"&gt;&lt;img src="https://camo.githubusercontent.com/eb13e40084bffd7593aa7e961688f6f12fc66726fe0ffd03fe2d37b27aa5e0e2/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f72656475782d736167612f6261636b6572732f62616467652e737667" alt="OpenCollective"&gt;&lt;/a&gt;
&lt;a href="https://raw.githubusercontent.com/redux-saga/redux-saga/master/#sponsors"&gt;&lt;img src="https://camo.githubusercontent.com/5806c9d9bd8518ee5c1772cf111934d11a99500fad1b878b06a73dd818cf784a/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f72656475782d736167612f73706f6e736f72732f62616467652e737667" alt="OpenCollective"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;redux-saga&lt;/code&gt; is a library that aims to make application side effects (i.e. asynchronous things like data fetching and impure things like accessing the browser cache) easier to manage, more efficient to execute, easy to test, and better at handling failures.&lt;/p&gt;
&lt;p&gt;The mental model is that a saga is like a separate thread in your application that's solely responsible for side effects. &lt;code&gt;redux-saga&lt;/code&gt; is a redux middleware, which means this thread can be started, paused and cancelled from the main application with normal redux actions, it has access to the full redux application state and it can dispatch redux actions as well.&lt;/p&gt;
&lt;p&gt;It uses an ES6 feature called Generators to make those asynchronous flows easy to read, write and test. &lt;em&gt;(if you're not familiar with them &lt;a href="https://redux-saga.js.org/docs/ExternalResources.html" rel="nofollow"&gt;here are some introductory links&lt;/a&gt;)&lt;/em&gt; By doing so, these asynchronous flows look like your standard synchronous JavaScript code. (kind of like &lt;code&gt;async&lt;/code&gt;/…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/redux-saga/redux-saga"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;p&gt;How to manage the Redux store? where to write reducer, action, &amp;amp; how to update the state of an application?&lt;/p&gt;

&lt;p&gt;The First thing to manage all the main part application with folders like,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;models 📁 &lt;/li&gt;
&lt;li&gt;pages 📁&lt;/li&gt;
&lt;li&gt;components 📁&lt;/li&gt;
&lt;li&gt;layouts 📁&lt;/li&gt;
&lt;/ul&gt;

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


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;





&lt;p&gt;&lt;strong&gt;Point #12&lt;/strong&gt; - ** Testing** - You can test React components similar to testing other JavaScript code.&lt;/p&gt;

&lt;p&gt;There are a few ways to test React components. Broadly, they divide into two categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rendering component trees&lt;/strong&gt; in a simplified test environment and asserting on their output.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Running a complete app&lt;/strong&gt; in a realistic browser environment (also known as “end-to-end” tests).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Recommended Tools&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;** &lt;a href="https://jestjs.io/"&gt;Jest&lt;/a&gt; ** -is a JavaScript test runner that lets you access the DOM via jsdom. While jsdom is only an approximation of how the browser works, it is often good enough for testing React components. Jest provides a great iteration speed combined with powerful features like mocking modules and timers so you can have more control over how the code executes.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vJ70wriM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/facebook"&gt;
        facebook
      &lt;/a&gt; / &lt;a href="https://github.com/facebook/jest"&gt;
        jest
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Delightful JavaScript Testing.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;
  &lt;a href="http://badge.fury.io/js/jest" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/9d823e30179e43b1d7d9f4ced26c51b08465b6a5379bbdf52f3d26f312713f8e/68747470733a2f2f62616467652e667572792e696f2f6a732f6a6573742e737667" alt="npm version"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/facebook/jest/blob/master/LICENSE"&gt;
    &lt;img src="https://camo.githubusercontent.com/83d3746e5881c1867665223424263d8e604df233d0a11aae0813e0414d433943/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667" alt="Jest is released under the MIT license."&gt;
  &lt;/a&gt;
  &lt;a href="https://twitter.com/intent/follow?screen_name=fbjest" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/7b7452fafa9b5777d721b5f9da01c15d6bd22d48c54fb0bbfd53af5856b394f5/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f66626a6573742e7376673f7374796c653d736f6369616c266c6162656c3d466f6c6c6f772532304066626a657374" alt="Follow on Twitter"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://raw.githubusercontent.com/facebook/jest/master/website/static/img/jest-readme-headline.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cV4PAcQQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/facebook/jest/master/website/static/img/jest-readme-headline.png" width="80%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
🃏 Delightful JavaScript Testing&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;👩🏻‍💻 Developer Ready&lt;/strong&gt;: A comprehensive JavaScript testing solution. Works out of the box for most JavaScript projects.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;🏃🏽 Instant Feedback&lt;/strong&gt;: Fast, interactive watch mode only runs test files related to changed files.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;📸 Snapshot Testing&lt;/strong&gt;: Capture snapshots of large objects to simplify testing and to analyze how they change over time.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;See more on &lt;a href="https://jestjs.io" rel="nofollow"&gt;jestjs.io&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
Table of Contents&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/facebook/jest/master/#getting-started"&gt;Getting Started&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/facebook/jest/master/#running-from-command-line"&gt;Running from command line&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://raw.githubusercontent.com/facebook/jest/master/#additional-configuration"&gt;Additional Configuration&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/facebook/jest/master/#generate-a-basic-configuration-file"&gt;Generate a basic configuration file&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/facebook/jest/master/#using-babel"&gt;Using Babel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/facebook/jest/master/#using-webpack"&gt;Using Webpack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/facebook/jest/master/#using-parcel"&gt;Using Parcel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/facebook/jest/master/#using-typescript"&gt;Using Typescript&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/facebook/jest/master/#documentation"&gt;Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/facebook/jest/master/#badge"&gt;Badge&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://raw.githubusercontent.com/facebook/jest/master/#contributing"&gt;Contributing&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/facebook/jest/master/#code-of-conduct"&gt;Code of Conduct&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/facebook/jest/master/#contributing-guide"&gt;Contributing Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/facebook/jest/master/#good-first-issues"&gt;Good First Issues&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://raw.githubusercontent.com/facebook/jest/master/#credits"&gt;Credits&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/facebook/jest/master/#backers"&gt;Backers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/facebook/jest/master/#sponsors"&gt;Sponsors&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/facebook/jest/master/#license"&gt;License&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
Getting Started&lt;/h2&gt;
&lt;p&gt;Install Jest using &lt;a href="https://yarnpkg.com/en/package/jest" rel="nofollow"&gt;&lt;code&gt;yarn&lt;/code&gt;&lt;/a&gt;:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell js-code-highlight"&gt;
&lt;pre&gt;yarn add --dev jest&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Or &lt;a href="https://www.npmjs.com/package/jest" rel="nofollow"&gt;&lt;code&gt;npm&lt;/code&gt;&lt;/a&gt;:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell js-code-highlight"&gt;
&lt;pre&gt;npm install --save-dev jest&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Note: Jest documentation uses &lt;code&gt;yarn&lt;/code&gt; commands, but &lt;code&gt;npm&lt;/code&gt; will also work. You can compare &lt;code&gt;yarn&lt;/code&gt; and &lt;code&gt;npm&lt;/code&gt; commands in the &lt;a href="https://yarnpkg.com/en/docs/migrating-from-npm#toc-cli-commands-comparison" rel="nofollow"&gt;yarn docs, here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Let's get started by writing a test…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/facebook/jest"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;** &lt;a href="https://testing-library.com/docs/react-testing-library/intro/"&gt;React Testing Library&lt;/a&gt; ** - is a set of helpers that let you test React components without relying on their implementation details. This approach makes refactoring a breeze and also nudges you towards best practices for accessibility. Although it doesn’t provide a way to “shallowly” render a component without its children, a test runner like Jest lets you do this by mocking.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vJ70wriM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/testing-library"&gt;
        testing-library
      &lt;/a&gt; / &lt;a href="https://github.com/testing-library/react-testing-library"&gt;
        react-testing-library
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      🐐 Simple and complete React DOM testing utilities that encourage good testing practices.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div&gt;
&lt;h1&gt;
React Testing Library&lt;/h1&gt;
&lt;a href="https://www.emojione.com/emoji/1f410" rel="nofollow"&gt;
  &lt;img height="80" width="80" alt="goat" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Beaa5N4q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/testing-library/react-testing-library/master/other/goat.png"&gt;
&lt;/a&gt;
&lt;p&gt;Simple and complete React DOM testing utilities that encourage good testing
practices.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;a href="https://testing-library.com/react" rel="nofollow"&gt;&lt;strong&gt;Read The Docs&lt;/strong&gt;&lt;/a&gt; |
&lt;a href="https://github.com/testing-library/testing-library-docs"&gt;Edit the docs&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/testing-library/react-testing-library/actions?query=workflow%3Avalidate"&gt;&lt;img src="https://camo.githubusercontent.com/4fdc74396fab71872561f292f74537b34c4c471d2c7a06ef02bdb25969e28f67/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f74657374696e672d6c6962726172792f72656163742d74657374696e672d6c6962726172792f76616c69646174653f6c6f676f3d676974687562267374796c653d666c61742d737175617265" alt="Build Status"&gt;&lt;/a&gt;
&lt;a href="https://codecov.io/github/testing-library/react-testing-library" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/cdad167a16e6e3f97a0208b948a14425e05908d12079eb9e7ba91ef428f8ba42/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f6769746875622f74657374696e672d6c6962726172792f72656163742d74657374696e672d6c6962726172792e7376673f7374796c653d666c61742d737175617265" alt="Code Coverage"&gt;&lt;/a&gt;
&lt;a href="https://www.npmjs.com/package/@testing-library/react" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/9305b48aaffa2ed6e0ce152bf1935db82b4de37e2de2c8a4da8a69b7d65f6d0a/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f4074657374696e672d6c6962726172792f72656163742e7376673f7374796c653d666c61742d737175617265" alt="version"&gt;&lt;/a&gt;
&lt;a href="http://www.npmtrends.com/@testing-library/react" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/6ac3257f13edd540175d4ec413d03ddcf998ccc34b4db9a6f856a85d992c266c/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f4074657374696e672d6c6962726172792f72656163742e7376673f7374796c653d666c61742d737175617265" alt="downloads"&gt;&lt;/a&gt;
&lt;a href="https://github.com/testing-library/react-testing-library/blob/master/LICENSE"&gt;&lt;img src="https://camo.githubusercontent.com/f2076c59950eb93a960df2bc57415be805330e05df8f909d57f55f44439beaa7/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f6c2f4074657374696e672d6c6962726172792f72656163742e7376673f7374796c653d666c61742d737175617265" alt="MIT License"&gt;&lt;/a&gt;
&lt;a href="https://raw.githubusercontent.com/testing-library/react-testing-library/master/#contributors"&gt;&lt;img src="https://camo.githubusercontent.com/ab88fbc00572cb473e2f7bb4e2aff55092b98069892f81c3d40f65c9de9f1ef9/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616c6c2d636f6e7472696275746f72732f74657374696e672d6c6962726172792f72656163742d74657374696e672d6c6962726172793f636f6c6f723d6f72616e6765267374796c653d666c61742d737175617265" alt="All Contributors"&gt;&lt;/a&gt;
&lt;a href="http://makeapullrequest.com" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/0ff11ed110cfa69f703ef0dcca3cee6141c0a8ef465e8237221ae245de3deb3d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5052732d77656c636f6d652d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265" alt="PRs Welcome"&gt;&lt;/a&gt;
&lt;a href="https://github.com/testing-library/react-testing-library/blob/master/CODE_OF_CONDUCT.md"&gt;&lt;img src="https://camo.githubusercontent.com/7cd7c9431068f145e0a61cde3bbe8abd0be87567023c8ffde96818d69f82c907/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f64652532306f662d636f6e647563742d6666363962342e7376673f7374796c653d666c61742d737175617265" alt="Code of Conduct"&gt;&lt;/a&gt;
&lt;a href="https://discord.gg/testing-library" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/c172dca7e6ee7cc42546c8ca2f3bb44300426ce63cca5bc5275cab1e2444afee/68747470733a2f2f696d672e736869656c64732e696f2f646973636f72642f3732333535393236373836383733373535362e7376673f636f6c6f723d373338394438266c6162656c436f6c6f723d364137454332266c6f676f3d646973636f7264266c6f676f436f6c6f723d666666666666267374796c653d666c61742d737175617265" alt="Discord"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/testing-library/react-testing-library/watchers"&gt;&lt;img src="https://camo.githubusercontent.com/b4efc35116852152933e22c725010a6e5fcd5c561f474f04f975a65ab1798e42/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f77617463686572732f74657374696e672d6c6962726172792f72656163742d74657374696e672d6c6962726172792e7376673f7374796c653d736f6369616c" alt="Watch on GitHub"&gt;&lt;/a&gt;
&lt;a href="https://github.com/testing-library/react-testing-library/stargazers"&gt;&lt;img src="https://camo.githubusercontent.com/a695a0604b15e861902197db9969f2abf3c6a5253b00775cd2e6cae40ea224db/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f74657374696e672d6c6962726172792f72656163742d74657374696e672d6c6962726172792e7376673f7374796c653d736f6369616c" alt="Star on GitHub"&gt;&lt;/a&gt;
&lt;a href="https://twitter.com/intent/tweet?text=Check%20out%20react-testing-library%20by%20%40@TestingLib%20https%3A%2F%2Fgithub.com%2Ftesting-library%2Freact-testing-library%20%F0%9F%91%8D" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/f1fc8c10d653594bb88eb5daecc0097bf615f299060dba0bc4ef31ce65819123/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f75726c2f68747470732f6769746875622e636f6d2f74657374696e672d6c6962726172792f72656163742d74657374696e672d6c6962726172792e7376673f7374796c653d736f6369616c" alt="Tweet"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;
  &lt;a href="https://testingjavascript.com" rel="nofollow"&gt;
    &lt;img width="500" alt="TestingJavaScript.com Learn the smart, efficient way to test any JavaScript application." src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZgcdyNvw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/testing-library/react-testing-library/master/other/testingjavascript.jpg"&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;h2&gt;
Table of Contents&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/testing-library/react-testing-library/master/#the-problem"&gt;The problem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/testing-library/react-testing-library/master/#the-solution"&gt;The solution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://raw.githubusercontent.com/testing-library/react-testing-library/master/#installation"&gt;Installation&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/testing-library/react-testing-library/master/#suppressing-unnecessary-warnings-on-react-dom-168"&gt;Suppressing unnecessary warnings on React DOM 16.8&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://raw.githubusercontent.com/testing-library/react-testing-library/master/#examples"&gt;Examples&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/testing-library/react-testing-library/master/#basic-example"&gt;Basic Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/testing-library/react-testing-library/master/#complex-example"&gt;Complex Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/testing-library/react-testing-library/master/#more-examples"&gt;More Examples&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/testing-library/react-testing-library/master/#hooks"&gt;Hooks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/testing-library/react-testing-library/master/#guiding-principles"&gt;Guiding Principles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/testing-library/react-testing-library/master/#docs"&gt;Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://raw.githubusercontent.com/testing-library/react-testing-library/master/#issues"&gt;Issues&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/testing-library/react-testing-library/master/#-bugs"&gt;🐛 Bugs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/testing-library/react-testing-library/master/#-feature-requests"&gt;💡 Feature Requests&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/testing-library/react-testing-library/master/#-questions"&gt;❓ Questions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/testing-library/react-testing-library/master/#contributors"&gt;Contributors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/testing-library/react-testing-library/master/#license"&gt;LICENSE&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
The problem&lt;/h2&gt;
&lt;p&gt;You want to write maintainable tests for your React components. As a part of
this goal, you want your tests to avoid including implementation details of your
components and rather focus on making your tests give you the confidence for
which they are intended. As part of this, you want your testbase to be
maintainable in the long run so refactors of your components (changes to
implementation but not functionality) don't break your tests and slow you and
your team down.&lt;/p&gt;
&lt;h2&gt;
The solution&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;React Testing Library&lt;/code&gt; is a very…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/testing-library/react-testing-library"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;**  &lt;a href="https://github.com/cypress-io/cypress"&gt;Cypress&lt;/a&gt;  ** -E2E Testing tool - Fast, easy, and reliable testing for anything that runs in a browser.&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vJ70wriM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/cypress-io"&gt;
        cypress-io
      &lt;/a&gt; / &lt;a href="https://github.com/cypress-io/cypress"&gt;
        cypress
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Fast, easy and reliable testing for anything that runs in a browser.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://cloud.githubusercontent.com/assets/1268976/20607953/d7ae489c-b24a-11e6-9cc4-91c6c74c5e88.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EmZsSlN4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cloud.githubusercontent.com/assets/1268976/20607953/d7ae489c-b24a-11e6-9cc4-91c6c74c5e88.png"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
  &lt;a href="https://on.cypress.io" rel="nofollow"&gt;Documentation&lt;/a&gt; |
  &lt;a href="https://on.cypress.io/changelog" rel="nofollow"&gt;Changelog&lt;/a&gt; |
  &lt;a href="https://on.cypress.io/roadmap" rel="nofollow"&gt;Roadmap&lt;/a&gt;
&lt;/p&gt;
&lt;h3&gt;

  The web has evolved. Finally, testing has too.
&lt;/h3&gt;
&lt;p&gt;
  Fast, easy and reliable testing for anything that runs in a browser.
&lt;/p&gt;
&lt;p&gt;
  &lt;a href="https://www.npmjs.com/package/cypress" rel="nofollow"&gt;
    &lt;img src="https://camo.githubusercontent.com/7d3a4e8732acc4044f314b21635e537d614b18b3ffecfcafea1314b44cfc6382/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f637970726573732e737667" alt="npm"&gt;
  &lt;/a&gt;
  &lt;a href="https://gitter.im/cypress-io/cypress" rel="nofollow"&gt;
    &lt;img src="https://camo.githubusercontent.com/730406499fd7e24967944912e39fec1dbf25d960a78373b541997ef17414f9ef/68747470733a2f2f696d672e736869656c64732e696f2f6769747465722f726f6f6d2f637970726573732d696f2f637970726573732e737667" alt="Gitter chat"&gt;
  &lt;/a&gt;
    &lt;a href="https://stackshare.io/cypress" rel="nofollow"&gt;
    &lt;img src="https://camo.githubusercontent.com/8e7acb60c2eb3ac4d9b77bada06705e8a43a726818e92c6713c6d684108b17fa/68747470733a2f2f696d672e737461636b73686172652e696f2f6d6973632f666f6c6c6f772d6f6e2d737461636b73686172652d62616467652e737667" alt="StackShare"&gt;
  &lt;/a&gt;&lt;br&gt;
&lt;/p&gt;
&lt;h2&gt;
What is Cypress?&lt;/h2&gt;
&lt;p&gt;
  &lt;a href="https://player.vimeo.com/video/237527670" rel="nofollow"&gt;
    &lt;img alt="Why Cypress Video" src="https://res.cloudinary.com/practicaldev/image/fetch/s--2Te6AZuC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/1271364/31739717-dbdff0ee-b41c-11e7-9b16-bfa1b6ac1814.png" width="75%" height="75%"&gt;
  &lt;/a&gt;
&lt;/p&gt;
&lt;h2&gt;
Installing&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://badge.fury.io/js/cypress" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/4bc5573c6da1fdafdc5716abb349dfe898b23a4d7f4e4eff1e08b998b94b441c/68747470733a2f2f62616467652e667572792e696f2f6a732f637970726573732e737667" alt="npm version"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Install Cypress for Mac, Linux, or Windows, then &lt;a href="https://docs.cypress.io/guides/getting-started/installing-cypress.html" rel="nofollow"&gt;get started&lt;/a&gt;.&lt;/p&gt;
&lt;div class="highlight highlight-source-shell js-code-highlight"&gt;
&lt;pre&gt;npm install cypress --save-dev&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;or&lt;/p&gt;
&lt;div class="highlight highlight-source-shell js-code-highlight"&gt;
&lt;pre&gt;yarn add cypress --dev&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://user-images.githubusercontent.com/1271364/31740846-7bf607f0-b420-11e7-855f-41c996040d31.gif"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--E2KiHmn6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://user-images.githubusercontent.com/1271364/31740846-7bf607f0-b420-11e7-855f-41c996040d31.gif" alt="installing-cli e1693232"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
Contributing&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://circleci.com/gh/cypress-io/cypress/tree/develop" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/9a081936fd8432ac2f85ca4992435a31f956622f1628c1e5ca823a59529659ea/68747470733a2f2f636972636c6563692e636f6d2f67682f637970726573732d696f2f637970726573732f747265652f646576656c6f702e7376673f7374796c653d737667" alt="CircleCI"&gt;&lt;/a&gt; - &lt;code&gt;develop&lt;/code&gt; branch&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://circleci.com/gh/cypress-io/cypress/tree/master" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/41d86764321fba461768a0c81a93890325bb8a1a021a454bbe766567354040af/68747470733a2f2f636972636c6563692e636f6d2f67682f637970726573732d696f2f637970726573732f747265652f6d61737465722e7376673f7374796c653d737667" alt="CircleCI"&gt;&lt;/a&gt; - &lt;code&gt;master&lt;/code&gt; branch&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please see our &lt;a href="https://raw.githubusercontent.com/cypress-io/cypress/develop/./CONTRIBUTING.md"&gt;Contributing Guideline&lt;/a&gt; which explains repo organization, linting, testing, and other steps.&lt;/p&gt;
&lt;h2&gt;
License&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/cypress-io/cypress/blob/master/LICENSE"&gt;&lt;img src="https://camo.githubusercontent.com/45b4ffbd594af47fe09a3432f9f8e122c6518aa6352b4ce453a1a2563da2905c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e2e737667" alt="license"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This project is licensed under the terms of the &lt;a href="https://raw.githubusercontent.com/cypress-io/cypress/develop//LICENSE"&gt;MIT license&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
Badges&lt;/h2&gt;
&lt;p&gt;Let the world know your project is using Cypress.io to test with this cool badge&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cypress.io/" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/16428bf59999e11f6c40a85fd6ac1e6ac7f040065a9107e94647020f3135676b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f746573746564253230776974682d437970726573732d3034433338452e737667" alt="Cypress.io"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[![Cypress.io](https://img.shields.io/badge/tested%20with-Cypress-04C38E.svg)](https://www.cypress.io/)
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/cypress-io/cypress"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;




&lt;p&gt;&lt;strong&gt;Point #13&lt;/strong&gt; - ** Git** - Git is essential to every developer's toolkit for storing projects on solutions like GitHub, Bitbucket, and GitLab. Skills that should just be part of your day-to-day include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tracking changes with add, commit, push and pull&lt;/li&gt;
&lt;li&gt;Branching and merging strategies&lt;/li&gt;
&lt;li&gt;Handling merge conflicts&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;All the above-listed points are which I've focused on so far, some might be not exactly related to you but most of them are common for React concept and functionally related to each other.  &lt;/p&gt;
&lt;h2&gt;
  
  
  Wrapping Up 👋
&lt;/h2&gt;

&lt;p&gt;Hope you enjoyed this article. Go add some nice reactions and cool comments below. You only need a few moments to like and comments, it will encourage me to write more good articles in the future. Share it with your friends let them know about this article.&lt;/p&gt;

&lt;p&gt;Thank you for your time.🥂&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
