<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Manindu Wijewickrama</title>
    <description>The latest articles on Forem by Manindu Wijewickrama (@manindu).</description>
    <link>https://forem.com/manindu</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%2F52471%2Fb7b73a53-e94d-4d1e-bca1-597d8b94b31b.png</url>
      <title>Forem: Manindu Wijewickrama</title>
      <link>https://forem.com/manindu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/manindu"/>
    <language>en</language>
    <item>
      <title>A List of Useful npm Packages for React Developers</title>
      <dc:creator>Manindu Wijewickrama</dc:creator>
      <pubDate>Sun, 07 Jul 2019 04:56:26 +0000</pubDate>
      <link>https://forem.com/manindu/a-list-of-useful-npm-packages-for-react-developers-3dhg</link>
      <guid>https://forem.com/manindu/a-list-of-useful-npm-packages-for-react-developers-3dhg</guid>
      <description>&lt;p&gt;(Originally posted on &lt;a href="https://manindu.dev/list-of-useful-npm-packages-for-react-developers/"&gt;manindu.dev&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Hi all, this is a list of useful npm packages for React developers. I'm planning to update this frequently by adding more packages. Your suggestions are welcome 😊. Happy coding!!&lt;/p&gt;

&lt;h2&gt;
  
  
  UI component libraries
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; &lt;a href="https://www.npmjs.com/package/antd"&gt;antd&lt;/a&gt; - Ant Design is an enterprise grade UI design system.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/@material-ui/core"&gt;@material-ui/core&lt;/a&gt; - React Material UI components&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-bootstrap"&gt;react-bootstrap&lt;/a&gt; - Bootstrap 4 components built with React&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-bulma-components"&gt;react-bulma-components&lt;/a&gt; - React component for Bulma framework&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/semantic-ui-react"&gt;semantic-ui-react&lt;/a&gt; - A React component library&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/office-ui-fabric-react"&gt;office-ui-fabric-react&lt;/a&gt; - The React-based front-end framework for building experiences for Office and Office 365&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/reactstrap"&gt;reactstrap&lt;/a&gt; - Stateless React Components for Bootstrap 4&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/rebass"&gt;rebass&lt;/a&gt; - React primitive UI components built with styled-system&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/@appbaseio/reactivesearch"&gt;@appbaseio/reactivesearch&lt;/a&gt; - React UI components for Elasticsearch&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Individual UI components
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/@tippy.js/react"&gt;@tippy.js/react&lt;/a&gt; - The complete tooltip and popover solution for React apps&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-spinners"&gt;react-spinners&lt;/a&gt; - A collection of loading spinners with React.js based on Halogen&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-loader-spinner"&gt;react-loader-spinner&lt;/a&gt; - react-spinner-loader provides simple React.js spinner component which can be implemented for async wait operation before data load to the view&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-spinners-kit"&gt;react-spinners-kit&lt;/a&gt; - A collection of loading spinners built with styled-components&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/draft-js"&gt;draft-js&lt;/a&gt; - Draft.js is a JavaScript rich text editor framework, built for React and backed by an immutable model&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-custom-scrollbars"&gt;react-custom-scrollbars&lt;/a&gt; - Custom scrollbars for React&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-select"&gt;react-select&lt;/a&gt; - The Select control for React&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-dropdown"&gt;react-dropdown&lt;/a&gt; - Simple Dropdown component for React, inspired by react-select&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-horizontal-scrolling-menu"&gt;react-horizontal-scrolling-menu&lt;/a&gt; - A horizontal scrolling menu component for React&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-collapsible"&gt;react-collapsible&lt;/a&gt; - React responsive collapsible section component&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-calendar"&gt;react-calendar&lt;/a&gt; - Calendar component for React&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-datepicker"&gt;react-datepicker&lt;/a&gt; - A simple and reusable Datepicker component for React&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-table"&gt;react-table&lt;/a&gt; - react-table is a lightweight, fast and extendable datagrid built for React&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-awesome-button"&gt;react-awesome-button&lt;/a&gt; - A button component for React&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-compound-slider"&gt;react-compound-slider&lt;/a&gt; - React Compound Slider is a tiny (4.3kb) slider component with no opinion about markup or styles&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/rheostat"&gt;rheostat&lt;/a&gt; - A mobile, tablet, desktop, and accessible slider for the web by Airbnb&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-checkbox-tree"&gt;react-checkbox-tree&lt;/a&gt; - A simple and elegant checkbox tree for React&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/recharts"&gt;recharts&lt;/a&gt; - Recharts is a Redefined chart library built with React and D3&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-chartjs-2"&gt;react-chartjs-2&lt;/a&gt; - React wrapper for Chart.js 2&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-vis"&gt;react-vis&lt;/a&gt; - A collection of react components to render common data visualization charts&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/victory"&gt;victory&lt;/a&gt; - React.js components for modular charting and data visualization&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-modal"&gt;react-modal&lt;/a&gt; - Accessible modal dialog component for React.JS&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-responsive-modal"&gt;react-responsive-modal&lt;/a&gt; - A simple responsive and accessible react modal compatible with React 16 and ready for React 17&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-slick"&gt;react-slick&lt;/a&gt; - Carousel component built with React. It is a react port of slick carousel&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-responsive-carousel"&gt;react-responsive-carousel&lt;/a&gt; - A responsive carousel component for React&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/pure-react-carousel"&gt;pure-react-carousel&lt;/a&gt; - A highly impartial suite of React components that can be assembled by the consumer to create a responsive and aria compliant carousel with almost no limits on DOM structure or CSS styles&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-grid-gallery"&gt;react-grid-gallery&lt;/a&gt; - Justified image gallery component for React inspired by Google Photos and based upon React Images&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-images"&gt;react-images&lt;/a&gt; - A mobile-friendly, highly customizable, carousel component for displaying media in ReactJS&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-image-lightbox"&gt;react-image-lightbox&lt;/a&gt; - A flexible lightbox component for displaying images in a React project&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-tabs"&gt;react-tabs&lt;/a&gt; - An accessible and easy tab component for ReactJS&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  CSS in JS
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/styled-components"&gt;styled-components&lt;/a&gt; - Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/emotion"&gt;emotion&lt;/a&gt; - A CSS in JS library&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/radium"&gt;radium&lt;/a&gt; - Radium is a set of tools to manage inline styles on React elements. It gives you powerful styling capabilities without CSS&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Http clients
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/axios"&gt;axios&lt;/a&gt; - Promise based HTTP client for the browser and node.js&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/apisauce"&gt;apisauce&lt;/a&gt; - An http client built on top of axios&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/request"&gt;request&lt;/a&gt; - Request is designed to be the simplest way possible to make http calls. It supports HTTPS and follows redirects by default&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/superagent"&gt;superagent&lt;/a&gt; - Small progressive client-side HTTP request library, and Node.js module with the same API, sporting many high-level HTTP client features&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Routing
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-router-dom"&gt;react-router-dom&lt;/a&gt; - DOM bindings for React Router&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/universal-router"&gt;universal-router&lt;/a&gt; - A simple middleware-style router that can be used in both client-side and server-side applications&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/connected-react-router"&gt;connected-react-router&lt;/a&gt; - A Redux binding for React Router v4 and v5&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  State management
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/redux"&gt;redux&lt;/a&gt; - Redux is a predictable state container for JavaScript apps&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/react-redux"&gt;react-redux&lt;/a&gt; - Official React bindings for Redux&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/mobx"&gt;mobx&lt;/a&gt; - MobX is a battle tested, simple and scalable state management library transparently applying functional reactive programming (TFRP)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/redux-saga"&gt;redux-saga&lt;/a&gt; - redux-saga 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&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/redux-thunk"&gt;redux-thunk&lt;/a&gt; - Thunk middleware for Redux&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/redux-persist"&gt;redux-persist&lt;/a&gt; - Persist and rehydrate a redux store&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>react</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Creating React Components From Command Line</title>
      <dc:creator>Manindu Wijewickrama</dc:creator>
      <pubDate>Sat, 06 Jul 2019 12:11:12 +0000</pubDate>
      <link>https://forem.com/manindu/creating-react-components-from-command-line-26pm</link>
      <guid>https://forem.com/manindu/creating-react-components-from-command-line-26pm</guid>
      <description>&lt;p&gt;In this tutorial, I'm going to show you an easy way to configure your React project for creating components from the command line.&lt;/p&gt;

&lt;p&gt;Let's get started by creating a new React project using &lt;code&gt;create-react-app&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Execute the following command in your terminal. This will create a new project named components-demo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;manindu@dev:~$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;create-react-app components-demo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next we have to install &lt;code&gt;create-react-component-folder&lt;/code&gt; (created by Snær Seljan Þóroddsson - &lt;a href="https://github.com/snaerth"&gt;GitHub&lt;/a&gt;) NPM package as a development dependency in our project. As the name implies, this is the package which allows us to create components using the command line.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;manindu@dev:~$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;npm i &lt;span class="nt"&gt;--save-dev&lt;/span&gt; create-react-component-folder
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now it's time to create some components!!. I would like to create a directory named &lt;strong&gt;components&lt;/strong&gt; and create my components inside that. We can do that by executing the command below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;manindu@dev:~$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;npx crcf components/Button Input
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I just created two components named &lt;strong&gt;Button&lt;/strong&gt; and &lt;strong&gt;Input&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;  Button
  |_Button.css
  |_Button.js
  |_Button.test.js
  |_index.js
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;  Button
  |_Input.css
  |_Input.js
  |_Input.test.js
  |_index.js
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we have two components with .css files for each of them. However, I prefer to use SASS with CSS modules for our project. We can do that by adding a configuration fie &lt;code&gt;create-react-component-folder&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;In the project root, create a file named .crcfrc and add the code below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;  &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;scss&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;cssmodules&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Delete the &lt;strong&gt;Button&lt;/strong&gt; and &lt;strong&gt;Input&lt;/strong&gt; components that we created earlier and run the same command as below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;  manindu@dev:~$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;npx crcf components/Button Input
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This time you will get the same components with .module.scss files which means now you can use SASS with CSS modules for styling (you have to install node-sass for using sass)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;  Button
  |_Button.js
  |_Button.module.scss
  |_Button.test.js
  |_index.js
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;  Button
  |_Input.js
  |_Input.module.scss
  |_Input.test.js
  |_index.js
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can read more about the &lt;code&gt;create-react-component-folder&lt;/code&gt; on their &lt;a href="https://www.npmjs.com/package/create-react-component-folder"&gt;documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy Coding!!!&lt;/p&gt;

</description>
      <category>react</category>
      <category>reactnative</category>
      <category>components</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Expo vs pure React Native: What would you recommend?</title>
      <dc:creator>Manindu Wijewickrama</dc:creator>
      <pubDate>Sun, 03 Jun 2018 03:36:21 +0000</pubDate>
      <link>https://forem.com/manindu/expo-vs-pure-react-native-what-would-you-recommend-3fj0</link>
      <guid>https://forem.com/manindu/expo-vs-pure-react-native-what-would-you-recommend-3fj0</guid>
      <description>&lt;p&gt;Should I go with Expo for a new React Native project? or should I stick to pure React Native? What's your recommendation?&lt;/p&gt;

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