<?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: Eljan Simuratli</title>
    <description>The latest articles on DEV Community by Eljan Simuratli (@simuratli).</description>
    <link>https://dev.to/simuratli</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%2F496491%2Fefe4e1e5-901a-4a37-932a-0db84b76fb2d.jpeg</url>
      <title>DEV Community: Eljan Simuratli</title>
      <link>https://dev.to/simuratli</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/simuratli"/>
    <language>en</language>
    <item>
      <title>Top 5 Libraries to Boost Performance in React Applications</title>
      <dc:creator>Eljan Simuratli</dc:creator>
      <pubDate>Fri, 20 Sep 2024 18:43:17 +0000</pubDate>
      <link>https://dev.to/simuratli/top-5-libraries-to-boost-performance-in-react-applications-g9c</link>
      <guid>https://dev.to/simuratli/top-5-libraries-to-boost-performance-in-react-applications-g9c</guid>
      <description>&lt;p&gt;Building React applications for smooth and responsive user experiences involves prioritizing performance. However, when it comes to the size of an application it becomes more complex but do not worry. To optimize your app, make rendering faster, reduce bundle sizes as well as manage large datasets easily therein lies a host of libraries within the React ecosystem.Considering all these factors, here are the top 5 React libraries chosen randomly that can be used to enhance your application’s functionality and enable users to have no reason to frown at your app anymore.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. &lt;a href="https://www.npmjs.com/package/react-virtualized" rel="noopener noreferrer"&gt;React Virtualized&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Applications are very slow when they try to render several thousand DOM nodes at once from huge lists or grids. Virtualized reacts by rendering the visible items into a list; this takes some load off from the DOM.&lt;strong&gt;Main Features:&lt;/strong&gt;&lt;em&gt;1. It supports virtual scrolling for huge lists and tables.2. Lazy-loads data while the user scrolls.3. Highly customizable to suit various UI patterns.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This can be useful for big-data applications, like dashboards or other data-heavy applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. &lt;a href="https://react-window.vercel.app/#/examples/list/fixed-size" rel="noopener noreferrer"&gt;React Window&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;React Window is provided by the same creator of React Virtualized. This library is lighter and faster, so some sense of handling big lists translates into fewer characteristics and corresponds to better performance.&lt;strong&gt;Main features&lt;/strong&gt;&lt;em&gt;1. Similar virtualized rendering to React Virtualized2. Much smaller package size3. It is easily implemented on simple lists or grid-based layouts.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Ideal for lightweight use cases where a lighter library is needed, instead of carrying all the complexities of React Virtualized.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. &lt;a href="https://lodash.com/" rel="noopener noreferrer"&gt;Lodash (with Babel-plugin-lodash)&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Now, in this case, Lodash is a collection of utility functions and Babel-plugin-Lodash optimizes your usage of cherry-picked functions that you use. It keeps your bundle size down and your load time far quicker.&lt;strong&gt;Main Features:&lt;/strong&gt;&lt;em&gt;1. Importing Lodash functions as modules2. Eliminates the unnecessary code in your bundle&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Useful in just about any React project you use the utility functions of Lodash but you want to tune it for performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. &lt;a href="https://react.dev/reference/react/memo" rel="noopener noreferrer"&gt;React.memo&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Not really a library, but React memo is an API provided through react itself that memoizes component results so redundant re-renders aren’t triggered when props haven’t changed.&lt;strong&gt;Main features:&lt;/strong&gt;1. Wraps functional components to avoid re-renders.2. Works in conjunction with user-supplied comparison functions.&lt;/p&gt;

&lt;p&gt;Useful for components that re-render all the time but have the same props very frequently.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. &lt;a href="https://immerjs.github.io/immer/" rel="noopener noreferrer"&gt;Immer&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This is a common bottleneck when working with immutable state management because most would be using vanilla methods like Object.assign the spread operator. That is where Immer does its magic: It can keep immutability completely internal without affecting performance.&lt;strong&gt;Main Features:&lt;/strong&gt;1. It allows mutative logic in an immutable way.2. Handles deep updates efficiently with no extra re-renders.&lt;/p&gt;

&lt;p&gt;Works in complex state update very well with React applications, which has quite reduced the overhead of maintaining immutability manually.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Performance is a major thing in the fast and user-friendly delivery of React applications, especially when complexity grows. These libraries all solve different problems with performance: from the management of huge lists and state updates to optimizing bundle size. By applying a couple of these libraries in your React projects, you may feel a remarkable increase in speed or responsiveness improvements in the general user experience.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What is CSS Flexbox</title>
      <dc:creator>Eljan Simuratli</dc:creator>
      <pubDate>Thu, 22 Oct 2020 10:13:38 +0000</pubDate>
      <link>https://dev.to/simuratli/css-flexbox-3848</link>
      <guid>https://dev.to/simuratli/css-flexbox-3848</guid>
      <description>&lt;p&gt;CSS flexboxes are modern css layout that help us to order elements vertical and horizontal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why flexbox?
&lt;/h2&gt;

&lt;p&gt;It is easier to make responsive our website with flexbox.&lt;br&gt;
Flex structure is simple.&lt;br&gt;
Flexbox supported by all browsers today.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fjlpvcptv5e8njck48pae.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fjlpvcptv5e8njck48pae.png" alt="Browser" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to use Flexbox:&lt;/strong&gt;&lt;br&gt;
There are 2 main item in flexbox. First Container , second Items.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuvn0nbrhmi55f4vg3gmk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuvn0nbrhmi55f4vg3gmk.png" alt="flex" width="" height=""&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk9etuaym47adiaz9hm8p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk9etuaym47adiaz9hm8p.png" alt="flex" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Display&lt;br&gt;
Using display:flex we make our container flexible.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.container{display: flex /* or inline-flex */}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Flex Direction
&lt;/h2&gt;

&lt;p&gt;![flexcontainer}(&lt;a href="https://miro.medium.com/max/490/1*s-G7MS21vXkAgI1gTBzeBg.png" rel="noopener noreferrer"&gt;https://miro.medium.com/max/490/1*s-G7MS21vXkAgI1gTBzeBg.png&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Flex direction used to determine how items arranged in layout(horizontal or vertical) and applied to the &lt;strong&gt;container element&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F75g85ks84arlvgnqpuwa.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F75g85ks84arlvgnqpuwa.gif" alt="gif" width="" height=""&gt;&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;.container{
display: flex /* or inline-flex*/
flex-direction: row /* or  | row-reverse | column | column-reverse */;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;row (default): standard layout from left to right&lt;/li&gt;
&lt;li&gt;row-reverse: reverse layout from right to left&lt;/li&gt;
&lt;li&gt;column: From top to bottom layout&lt;/li&gt;
&lt;li&gt;column-reverse: From bottom to top layout&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Flex-wrap
&lt;/h2&gt;

&lt;p&gt;Flex-wrap mostly used for creating responsive layouts. The flex-wrap property is specified as a single keyword chosen from the list of values below.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;nowrap (default): All elements are in 1 row.This is the default value.&lt;/li&gt;
&lt;li&gt;wrap: The flex items break into multiple lines.&lt;/li&gt;
&lt;li&gt;wrap-reverse: Behaves the same as wrap but it have reverse order.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Justify-content
&lt;/h2&gt;

&lt;p&gt;It defines the alignment along the main axis.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8k3xkmfxxpynrc9xkfe8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8k3xkmfxxpynrc9xkfe8.png" alt="justify" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Align-items
&lt;/h2&gt;

&lt;p&gt;It help us alignment of items in y-axis.&lt;/p&gt;

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

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

&lt;p&gt;For more dev posts : &lt;a href="https://medium.com/simuratli" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>flexbox</category>
      <category>frontend</category>
    </item>
  </channel>
</rss>
