How I moved from React to Svelte
Artur Kedzior
Posted on August 28, 2023
In today's ever-evolving front-end landscape, React has been the crown jewel for many developers, including me. Its component-based structure, the efficiency of the Virtual DOM, and the vast community support made it a clear favorite.
Another thing called Svelte reached my ears. So I jumped into messing around with it and here is what I found:
1. Why Svelte?
Before diving into the transition, it's important to understand why one might consider moving. Svelte brings:
Simplicity: No Virtual DOM, less boilerplate, and straightforward syntax.
Performance: Svelte compiles components to vanilla JavaScript at build time, making it incredibly fast.
Reactivity: Reactive statements make data binding a breeze.
2. Initial Steps
The first thing I did was set up a Svelte project using Svelte's official template. Then, I spent some quality time with the official Svelte tutorial, which provides hands-on experience with the framework's core concepts.
3. Translating Components
Moving components from React to Svelte involved understanding the subtle differences:
JSX vs Svelte's Template Language: Instead of JSX, Svelte uses its HTML-like syntax, which made templates much more readable.
State Management: In Svelte, mutable state is handled with simple variables, and reactivity is achieved with a mere $:
before a statement.
4. Event Handling
While React uses synthetic events, Svelte employs native event listeners. Transitioning meant:
Replacing onClick
with on:click
.
Eliminating event.persist()
since Svelte uses native events.
5. Lifecycle Methods
React's lifecycle methods such as componentDidMount
or componentWillUnmount
got translated to Svelte's onMount
and beforeDestroy
.
6. Styling
Moving from CSS-in-JS (or any other React styling paradigm) to Svelte's scoped styles was refreshing. Each Svelte component gets its own encapsulated style, reducing the fear of global styles interfering with component-specific designs.
7. State Management on Steroids
While React has Context
or Redux
or Zustand
for global state management, Svelte offers stores. These writable and readable stores made state management straightforward and less verbose.
8. Integrations & Plugins
Transitioning also meant looking for equivalent Svelte plugins and integrations or creating custom solutions when needed. Luckily, the Svelte community is robust and growing, offering ample resources.
9. Community and Support
I won't lie; the React community is vast. But the Svelte community, although smaller, is enthusiastic and rapidly expanding. Platforms like Discord, Reddit, and Stack Overflow provided ample support during my transition.
10. Conclusion
The journey from React to Svelte was awesome. While both have their strengths and use cases, Svelte's simplicity, speed, and clean syntax it's all I wanted.
All my new projects this year were built with Svelte. Here is my last one (a solo adventure):
https://salarioo.com - a job board with salaries only. 🚀
On another project (full blown e-commerce) I encouraged my team of experienced React developers to try it out and they loved it and yes we have almost finished it using Svelte.
That said I doubt I will go back to React. ⚰️
In another words Svelte ruined React for me just as The Expanse ruined every other space science fiction.
🔥
🔥
Have you tried Svelte yet?
Share your experiences and thoughts below and thank you for reading!
If you enjoyed this post and want to stay updated, follow me on Twitter for the latest updates and check out my projects on GitHub.
May the code be with you!
Posted on August 28, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.