Blog ViteToNext.AI

Découvrez les meilleures pratiques, astuces et guides pour migrer efficacement vos projets React + Vite vers Next.js

Essayer ViteToNext.AI
Retour aux articles

Le jour où j'ai migré l'app de mon premier emploi - Rencontre avec 20 versions de moi-même

"// TODO: Refactor this later" - Moi en 2020, mentant effrontément à mon moi futur.

Chapitre 1 : L'archéologie du code

Ce que j'ai trouvé (2020)

// app.js
                            function fetchData() {
                            // Désolé pour ça...
                            fetch('/api').then(r => r.json()).then(data => {
                                // Magic numbers everywhere
                                if (data.length > 42) {
                                this.setState({ thing: data.slice(0, 42) })
                                } else {
                                this.setState({ thing: data })
                                }
                            })
                            }

Commentaire original : "Works for now ¯\_(ツ)_/¯"

Ce que j'ai écrit (2025)

// app/page.tsx
                            async function DataList() {
                            const data = await getData({ 
                                limit: DEFAULT_PAGINATION,
                                cache: 'force-cache'
                            })

                            return !data?.length ? (
                                
                            ) : (
                                
                            )
                            }

Nouveau commentaire : "Merci Next.js et TypeScript"

« Refactorer du vieux code, c'est comme retrouver son journal intime de lycée :
à la fois touchant et horriblement gênant. »

Chapitre 2 : Les 3 erreurs qui m'ont coûté cher

1. Le "state management maison"

J'avais inventé un système de state global avec... des EventListeners window. Résultat :

  • 48h à debugguer des memory leaks
  • Migration vers Zustand en 1 jour avec Next.js

2. Les CSS dans le JavaScript

// 2020 : Le cauchemar
                        <div style={{ 
                        margin: '5px', 
                        padding: '10px 5px 10px 5px',
                        backgroundColor: mode === 'dark' ? '#333' : '#fff'
                        }}>

Aujourd'hui : className="p-2 my-1 dark:bg-gray-800 bg-white" avec Tailwind et Next.js

Chapitre 3 : Dialogue avec mon ancien moi

Moi 2025 : « Pourquoi t'as mis toute la logique dans des useEffect ? »

Moi 2020 : « Euh... YouTube disait que c'était bien ? »

Moi 2025 : *soupir* « Au moins t'avais commenté ton code... »

Ce que cette migration m'a appris

Ne refais pas mes erreurs

Notre outil analyse ton code et te montre les patterns à risque avant migration.

Essayer

PS : Si ton ancien code ne te fait pas rougir, c'est que tu n'as pas assez progressé.