<?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: yi</title>
    <description>The latest articles on DEV Community by yi (@yizhuang).</description>
    <link>https://dev.to/yizhuang</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%2F299246%2Fe1222457-8d52-4b29-a63c-e086fef5efe4.jpeg</url>
      <title>DEV Community: yi</title>
      <link>https://dev.to/yizhuang</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yizhuang"/>
    <language>en</language>
    <item>
      <title>Why you should use react-multi-carousel in your project? </title>
      <dc:creator>yi</dc:creator>
      <pubDate>Thu, 23 Apr 2020 14:20:20 +0000</pubDate>
      <link>https://dev.to/yizhuang/why-you-should-use-react-multi-carousel-in-your-project-2n4j</link>
      <guid>https://dev.to/yizhuang/why-you-should-use-react-multi-carousel-in-your-project-2n4j</guid>
      <description>&lt;p&gt;Hi folks,&lt;/p&gt;

&lt;p&gt;Finding a good Carousel that is small in size, and have supports in SSR(server-side rendering) with infinite mode is hard, building one yourself from scratch is even harder especially if you are in tight deadline. These are the exact reasons why I built &lt;a href="https://github.com/YIZHUANG/react-multi-carousel"&gt;react-multi-carousel&lt;/a&gt; at the very first place. I was working as a Software consultant for a while, a few of the projects that I worked on in big companies that went live to production use the exact same Carousel component, as you know you gotta fulfill your clients' weird demands to make the carousel working in the exact same way they wanted in their dreams and that's not easy with the current Carousel components available in NPM.&lt;/p&gt;

&lt;p&gt;Here are a list of the key features:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Server-side rendering&lt;/li&gt;
&lt;li&gt;Infinite mode&lt;/li&gt;
&lt;li&gt;Dot mode&lt;/li&gt;
&lt;li&gt;Custom animation&lt;/li&gt;
&lt;li&gt;AutoPlay mode&lt;/li&gt;
&lt;li&gt;Auto play interval&lt;/li&gt;
&lt;li&gt;Supports images, videos, everything.&lt;/li&gt;
&lt;li&gt;Responsive&lt;/li&gt;
&lt;li&gt;Swipe to slide&lt;/li&gt;
&lt;li&gt;Mouse drag to slide&lt;/li&gt;
&lt;li&gt;Keyboard control to slide&lt;/li&gt;
&lt;li&gt;Multiple items&lt;/li&gt;
&lt;li&gt;Show / hide arrows&lt;/li&gt;
&lt;li&gt;Custom arrows / control buttons&lt;/li&gt;
&lt;li&gt;Custom dots&lt;/li&gt;
&lt;li&gt;Custom styling&lt;/li&gt;
&lt;li&gt;Accessibility support&lt;/li&gt;
&lt;li&gt;Center mode.&lt;/li&gt;
&lt;li&gt;Show next/previous set of items partially&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The infinite mode and allow sliding multiple items at once are the hardest parts of building this library, honestly it took me on and off a few months just to get these two working properly. The will be soon a blog post on how I made it. #caretoshare&lt;/p&gt;

&lt;p&gt;I am currently working on the version 3.0 to rewrite this completely in hooks and context, that means the following APIs will be available soon:&lt;/p&gt;

&lt;p&gt;ProductCard.jsx&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const { isVisble, isActive } = props
const [next, previous, goToSlide, disable Animation, resetCarousel] = useCarousel().
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;The new APIs will allow further and yeah easier customization for supporting your business use cases. &lt;/p&gt;

&lt;p&gt;Folks, please give it a try and it would mean a lot if you can consider giving financial support for my work in &lt;a href="https://opencollective.com/REACT-MULTI-CAROUSEL"&gt;open collective&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>css</category>
      <category>serverless</category>
    </item>
  </channel>
</rss>
