[{"data":1,"prerenderedAt":555},["ShallowReactive",2],{"accueil-chapitres":3},[4,9,13,17,21,25,29,33,38,42,46,50,54,58,62,67,71,75,79,83,87,91,96,100,104,108,112,116,120,125,129,133,137,141,145,149,154,158,162,166,170,174,178,183,187,190,194,198,202,206,211,215,219,223,227,231,235,240,243,247,251,255,259,263,268,272,275,279,283,287,291,296,300,304,308,312,316,320,324,329,333,337,341,345,349,353,358,362,366,370,374,378,382,387,390,394,398,402,406,410,415,419,423,427,431,435,439,444,448,452,456,460,464,468,473,477,481,486,490,493,497,502,506,510,514,518,522,526,531,535,539,543,547,551],{"path":5,"title":6,"ligne":7,"stem":8},"\u002Fapi\u002Fcomprendre-les-api","Comprendre les API","api","api\u002F01.comprendre-les-api",{"path":10,"title":11,"ligne":7,"stem":12},"\u002Fapi\u002Fmethodes-et-codes-de-statut","Méthodes et codes de statut","api\u002F02.methodes-et-codes-de-statut",{"path":14,"title":15,"ligne":7,"stem":16},"\u002Fapi\u002Fconsommer-une-api-externe","Consommer une API externe","api\u002F03.consommer-une-api-externe",{"path":18,"title":19,"ligne":7,"stem":20},"\u002Fapi\u002Fcacher-une-cle-d-api","Cacher une clé d'API","api\u002F04.cacher-une-cle-d-api",{"path":22,"title":23,"ligne":7,"stem":24},"\u002Fapi\u002Fecrire-une-api-complete","Écrire une API complète","api\u002F05.ecrire-une-api-complete",{"path":26,"title":27,"ligne":7,"stem":28},"\u002Fapi\u002Fsecurite-et-limites","Sécurité et limites","api\u002F06.securite-et-limites",{"path":30,"title":31,"ligne":7,"stem":32},"\u002Fapi","API","api\u002Findex",{"path":34,"title":35,"ligne":36,"stem":37},"\u002Fcpp\u002Fpremier-programme","Premier programme","cpp","cpp\u002F01.premier-programme",{"path":39,"title":40,"ligne":36,"stem":41},"\u002Fcpp\u002Fconditions-boucles-fonctions","Conditions, boucles et fonctions","cpp\u002F02.conditions-boucles-fonctions",{"path":43,"title":44,"ligne":36,"stem":45},"\u002Fcpp\u002Fstring-et-vector","std::string et std::vector","cpp\u002F03.string-et-vector",{"path":47,"title":48,"ligne":36,"stem":49},"\u002Fcpp\u002Freferences-et-pointeurs","Références et pointeurs","cpp\u002F04.references-et-pointeurs",{"path":51,"title":52,"ligne":36,"stem":53},"\u002Fcpp\u002Fclasses-et-raii","Classes, constructeurs et RAII","cpp\u002F05.classes-et-raii",{"path":55,"title":56,"ligne":36,"stem":57},"\u002Fcpp\u002Fmemoire-et-bibliotheque","Mémoire, pointeurs intelligents et bibliothèque standard","cpp\u002F06.memoire-et-bibliotheque",{"path":59,"title":60,"ligne":36,"stem":61},"\u002Fcpp","C++","cpp\u002Findex",{"path":63,"title":64,"ligne":65,"stem":66},"\u002Fcsharp\u002Fpremier-programme","Premier programme C#","csharp","csharp\u002F01.premier-programme",{"path":68,"title":69,"ligne":65,"stem":70},"\u002Fcsharp\u002Fconditions-boucles-methodes","Conditions, boucles et méthodes","csharp\u002F02.conditions-boucles-methodes",{"path":72,"title":73,"ligne":65,"stem":74},"\u002Fcsharp\u002Fcollections-et-exceptions","Collections et exceptions","csharp\u002F03.collections-et-exceptions",{"path":76,"title":77,"ligne":65,"stem":78},"\u002Fcsharp\u002Fclasses-proprietes-records","Classes, propriétés et records","csharp\u002F04.classes-proprietes-records",{"path":80,"title":81,"ligne":65,"stem":82},"\u002Fcsharp\u002Fheritage-et-interfaces","Héritage et interfaces","csharp\u002F05.heritage-et-interfaces",{"path":84,"title":85,"ligne":65,"stem":86},"\u002Fcsharp\u002Flinq-et-async","LINQ et async\u002Fawait","csharp\u002F06.linq-et-async",{"path":88,"title":89,"ligne":65,"stem":90},"\u002Fcsharp","C#","csharp\u002Findex",{"path":92,"title":93,"ligne":94,"stem":95},"\u002Fcss\u002Fpremiers-pas","Premiers pas en CSS","css","css\u002F01.premiers-pas",{"path":97,"title":98,"ligne":94,"stem":99},"\u002Fcss\u002Fcascade-et-specificite","Cascade et spécificité","css\u002F02.cascade-et-specificite",{"path":101,"title":102,"ligne":94,"stem":103},"\u002Fcss\u002Fboites-et-texte","Boîtes, unités et texte","css\u002F03.boites-et-texte",{"path":105,"title":106,"ligne":94,"stem":107},"\u002Fcss\u002Fflexbox","Flexbox","css\u002F04.flexbox",{"path":109,"title":110,"ligne":94,"stem":111},"\u002Fcss\u002Fgrid-et-responsive","Grid et responsive","css\u002F05.grid-et-responsive",{"path":113,"title":114,"ligne":94,"stem":115},"\u002Fcss\u002Fvariables-et-animations","Variables, transitions et animations","css\u002F06.variables-et-animations",{"path":117,"title":118,"ligne":94,"stem":119},"\u002Fcss","CSS","css\u002Findex",{"path":121,"title":122,"ligne":123,"stem":124},"\u002Fgit\u002Fpourquoi-git","Pourquoi Git","git","git\u002F01.pourquoi-git",{"path":126,"title":127,"ligne":123,"stem":128},"\u002Fgit\u002Fpremiers-commits","Premiers commits","git\u002F02.premiers-commits",{"path":130,"title":131,"ligne":123,"stem":132},"\u002Fgit\u002Fbranches","Les branches","git\u002F03.branches",{"path":134,"title":135,"ligne":123,"stem":136},"\u002Fgit\u002Ftravailler-a-plusieurs","Travailler à plusieurs","git\u002F04.travailler-a-plusieurs",{"path":138,"title":139,"ligne":123,"stem":140},"\u002Fgit\u002Fannuler","Annuler une erreur","git\u002F05.annuler",{"path":142,"title":143,"ligne":123,"stem":144},"\u002Fgit\u002Frebase","Le rebase","git\u002F06.rebase",{"path":146,"title":147,"ligne":123,"stem":148},"\u002Fgit","Git","git\u002Findex",{"path":150,"title":151,"ligne":152,"stem":153},"\u002Fhtml\u002Fune-page-web","Qu'est-ce que HTML ?","html","html\u002F01.une-page-web",{"path":155,"title":156,"ligne":152,"stem":157},"\u002Fhtml\u002Fstructure-du-document","La structure d'un document","html\u002F02.structure-du-document",{"path":159,"title":160,"ligne":152,"stem":161},"\u002Fhtml\u002Ftexte-liens-images","Texte, liens et images","html\u002F03.texte-liens-images",{"path":163,"title":164,"ligne":152,"stem":165},"\u002Fhtml\u002Flistes-et-tableaux","Listes et tableaux","html\u002F04.listes-et-tableaux",{"path":167,"title":168,"ligne":152,"stem":169},"\u002Fhtml\u002Fsemantique-et-accessibilite","Sémantique et accessibilité","html\u002F05.semantique-et-accessibilite",{"path":171,"title":172,"ligne":152,"stem":173},"\u002Fhtml\u002Fformulaires-et-validation","Formulaires et validation","html\u002F06.formulaires-et-validation",{"path":175,"title":176,"ligne":152,"stem":177},"\u002Fhtml","HTML","html\u002Findex",{"path":179,"title":180,"ligne":181,"stem":182},"\u002Fjava\u002Fjvm-et-premier-programme","La JVM et ton premier programme","java","java\u002F01.jvm-et-premier-programme",{"path":184,"title":185,"ligne":181,"stem":186},"\u002Fjava\u002Fvariables-et-types","Variables, types et String","java\u002F02.variables-et-types",{"path":188,"title":69,"ligne":181,"stem":189},"\u002Fjava\u002Fconditions-boucles-methodes","java\u002F03.conditions-boucles-methodes",{"path":191,"title":192,"ligne":181,"stem":193},"\u002Fjava\u002Ftableaux-classes-et-records","Tableaux, classes et records","java\u002F04.tableaux-classes-et-records",{"path":195,"title":196,"ligne":181,"stem":197},"\u002Fjava\u002Fheritage-et-interfaces","Héritage, interfaces et polymorphisme","java\u002F05.heritage-et-interfaces",{"path":199,"title":200,"ligne":181,"stem":201},"\u002Fjava\u002Fcollections-generiques-exceptions","Collections, génériques et exceptions","java\u002F06.collections-generiques-exceptions",{"path":203,"title":204,"ligne":181,"stem":205},"\u002Fjava","Java","java\u002Findex",{"path":207,"title":208,"ligne":209,"stem":210},"\u002Fjs\u002Fpremiers-pas","Premiers pas en JavaScript","js","js\u002F01.premiers-pas",{"path":212,"title":213,"ligne":209,"stem":214},"\u002Fjs\u002Fconditions-et-boucles","Conditions et boucles","js\u002F02.conditions-et-boucles",{"path":216,"title":217,"ligne":209,"stem":218},"\u002Fjs\u002Ffonctions","Les fonctions","js\u002F03.fonctions",{"path":220,"title":221,"ligne":209,"stem":222},"\u002Fjs\u002Ftableaux-et-objets","Tableaux et objets","js\u002F04.tableaux-et-objets",{"path":224,"title":225,"ligne":209,"stem":226},"\u002Fjs\u002Fdom-et-evenements","Le DOM et les événements","js\u002F05.dom-et-evenements",{"path":228,"title":229,"ligne":209,"stem":230},"\u002Fjs\u002Fasynchrone-et-modules","Asynchrone et modules","js\u002F06.asynchrone-et-modules",{"path":232,"title":233,"ligne":209,"stem":234},"\u002Fjs","JavaScript","js\u002Findex",{"path":236,"title":237,"ligne":238,"stem":239},"\u002Fkotlin\u002Fdecouvrir-kotlin","Découvrir Kotlin","kotlin","kotlin\u002F01.decouvrir-kotlin",{"path":241,"title":40,"ligne":238,"stem":242},"\u002Fkotlin\u002Fconditions-boucles-fonctions","kotlin\u002F02.conditions-boucles-fonctions",{"path":244,"title":245,"ligne":238,"stem":246},"\u002Fkotlin\u002Fsecurite-du-null","La sécurité du null","kotlin\u002F03.securite-du-null",{"path":248,"title":249,"ligne":238,"stem":250},"\u002Fkotlin\u002Fclasses-et-objets","Classes, data classes et objets","kotlin\u002F04.classes-et-objets",{"path":252,"title":253,"ligne":238,"stem":254},"\u002Fkotlin\u002Fcollections-et-lambdas","Collections et lambdas","kotlin\u002F05.collections-et-lambdas",{"path":256,"title":257,"ligne":238,"stem":258},"\u002Fkotlin\u002Fcoroutines-et-compose","Coroutines et Jetpack Compose","kotlin\u002F06.coroutines-et-compose",{"path":260,"title":261,"ligne":238,"stem":262},"\u002Fkotlin","Kotlin","kotlin\u002Findex",{"path":264,"title":265,"ligne":266,"stem":267},"\u002Fnuxt-ui\u002Finstallation","Installer Nuxt UI","nuxt-ui","nuxt-ui\u002F01.installation",{"path":269,"title":270,"ligne":266,"stem":271},"\u002Fnuxt-ui\u002Fpremiers-composants","Premiers composants","nuxt-ui\u002F02.premiers-composants",{"path":273,"title":172,"ligne":266,"stem":274},"\u002Fnuxt-ui\u002Fformulaires","nuxt-ui\u002F03.formulaires",{"path":276,"title":277,"ligne":266,"stem":278},"\u002Fnuxt-ui\u002Fnavigation-et-superpositions","Navigation et superpositions","nuxt-ui\u002F04.navigation-et-superpositions",{"path":280,"title":281,"ligne":266,"stem":282},"\u002Fnuxt-ui\u002Ftheme-et-couleurs","Thème, couleurs et mode sombre","nuxt-ui\u002F05.theme-et-couleurs",{"path":284,"title":285,"ligne":266,"stem":286},"\u002Fnuxt-ui\u002Fpersonnaliser-un-composant","Personnaliser un composant","nuxt-ui\u002F06.personnaliser-un-composant",{"path":288,"title":289,"ligne":266,"stem":290},"\u002Fnuxt-ui","Nuxt UI","nuxt-ui\u002Findex",{"path":292,"title":293,"ligne":294,"stem":295},"\u002Fnuxt\u002Fintroduction","Introduction à Nuxt","nuxt","nuxt\u002F01.introduction",{"path":297,"title":298,"ligne":294,"stem":299},"\u002Fnuxt\u002Fstructure","La structure d'un projet","nuxt\u002F02.structure",{"path":301,"title":302,"ligne":294,"stem":303},"\u002Fnuxt\u002Fpages-et-routage","Pages et routage","nuxt\u002F03.pages-et-routage",{"path":305,"title":306,"ligne":294,"stem":307},"\u002Fnuxt\u002Fcomposants","Les composants","nuxt\u002F04.composants",{"path":309,"title":310,"ligne":294,"stem":311},"\u002Fnuxt\u002Frecuperer-des-donnees","Récupérer des données","nuxt\u002F05.recuperer-des-donnees",{"path":313,"title":314,"ligne":294,"stem":315},"\u002Fnuxt\u002Froutes-api","Les routes API","nuxt\u002F06.routes-api",{"path":317,"title":318,"ligne":294,"stem":319},"\u002Fnuxt\u002Fmodes-de-rendu","Les modes de rendu","nuxt\u002F07.modes-de-rendu",{"path":321,"title":322,"ligne":294,"stem":323},"\u002Fnuxt","Nuxt","nuxt\u002Findex",{"path":325,"title":326,"ligne":327,"stem":328},"\u002Fphp\u002Fpremiers-pas","Premiers pas en PHP","php","php\u002F01.premiers-pas",{"path":330,"title":331,"ligne":327,"stem":332},"\u002Fphp\u002Ftypes-et-chaines","Types, chaînes et conditions","php\u002F02.types-et-chaines",{"path":334,"title":335,"ligne":327,"stem":336},"\u002Fphp\u002Fboucles-et-tableaux","Boucles et tableaux","php\u002F03.boucles-et-tableaux",{"path":338,"title":339,"ligne":327,"stem":340},"\u002Fphp\u002Ffonctions-et-objets","Fonctions et objets","php\u002F04.fonctions-et-objets",{"path":342,"title":343,"ligne":327,"stem":344},"\u002Fphp\u002Fformulaires","Formulaires et sécurité","php\u002F05.formulaires",{"path":346,"title":347,"ligne":327,"stem":348},"\u002Fphp\u002Fpdo-et-composer","Base de données avec PDO et Composer","php\u002F06.pdo-et-composer",{"path":350,"title":351,"ligne":327,"stem":352},"\u002Fphp","PHP","php\u002Findex",{"path":354,"title":355,"ligne":356,"stem":357},"\u002Fpratiques\u002Fnommer-et-organiser","Nommer et organiser son code","pratiques","pratiques\u002F01.nommer-et-organiser",{"path":359,"title":360,"ligne":356,"stem":361},"\u002Fpratiques\u002Flire-une-erreur","Lire une erreur","pratiques\u002F02.lire-une-erreur",{"path":363,"title":364,"ligne":356,"stem":365},"\u002Fpratiques\u002Fdeboguer","Déboguer méthodiquement","pratiques\u002F03.deboguer",{"path":367,"title":368,"ligne":356,"stem":369},"\u002Fpratiques\u002Fgerer-un-projet","Gérer un projet","pratiques\u002F04.gerer-un-projet",{"path":371,"title":372,"ligne":356,"stem":373},"\u002Fpratiques\u002Fsecurite-de-base","Sécurité de base","pratiques\u002F05.securite-de-base",{"path":375,"title":376,"ligne":356,"stem":377},"\u002Fpratiques\u002Fqualite-et-mise-en-ligne","Qualité et mise en ligne","pratiques\u002F06.qualite-et-mise-en-ligne",{"path":379,"title":380,"ligne":356,"stem":381},"\u002Fpratiques","Bonnes pratiques","pratiques\u002Findex",{"path":383,"title":384,"ligne":385,"stem":386},"\u002Fpython\u002Fpremiers-pas","Premiers pas avec Python","python","python\u002F01.premiers-pas",{"path":388,"title":213,"ligne":385,"stem":389},"\u002Fpython\u002Fconditions-et-boucles","python\u002F02.conditions-et-boucles",{"path":391,"title":392,"ligne":385,"stem":393},"\u002Fpython\u002Ffonctions-et-modules","Fonctions et modules","python\u002F03.fonctions-et-modules",{"path":395,"title":396,"ligne":385,"stem":397},"\u002Fpython\u002Fcollections","Listes, dictionnaires et tuples","python\u002F04.collections",{"path":399,"title":400,"ligne":385,"stem":401},"\u002Fpython\u002Ffichiers-et-exceptions","Fichiers, exceptions et JSON","python\u002F05.fichiers-et-exceptions",{"path":403,"title":404,"ligne":385,"stem":405},"\u002Fpython\u002Fclasses-et-environnements","Classes, annotations et environnements virtuels","python\u002F06.classes-et-environnements",{"path":407,"title":408,"ligne":385,"stem":409},"\u002Fpython","Python","python\u002Findex",{"path":411,"title":412,"ligne":413,"stem":414},"\u002Fsql\u002Fbase-relationnelle","La base relationnelle et SELECT","sql","sql\u002F01.base-relationnelle",{"path":416,"title":417,"ligne":413,"stem":418},"\u002Fsql\u002Fmodifier-les-donnees","Ajouter, modifier et supprimer des lignes","sql\u002F02.modifier-les-donnees",{"path":420,"title":421,"ligne":413,"stem":422},"\u002Fsql\u002Fcreer-des-tables","Créer des tables","sql\u002F03.creer-des-tables",{"path":424,"title":425,"ligne":413,"stem":426},"\u002Fsql\u002Fjointures","Les jointures","sql\u002F04.jointures",{"path":428,"title":429,"ligne":413,"stem":430},"\u002Fsql\u002Fagregats-et-index","Agrégats et index","sql\u002F05.agregats-et-index",{"path":432,"title":433,"ligne":413,"stem":434},"\u002Fsql\u002Ftransactions-et-injection","Transactions et injection SQL","sql\u002F06.transactions-et-injection",{"path":436,"title":437,"ligne":413,"stem":438},"\u002Fsql","SQL","sql\u002Findex",{"path":440,"title":441,"ligne":442,"stem":443},"\u002Fsupabase\u002Fdecouvrir-supabase","Découvrir Supabase","supabase","supabase\u002F01.decouvrir-supabase",{"path":445,"title":446,"ligne":442,"stem":447},"\u002Fsupabase\u002Fbrancher-a-nuxt","Brancher Supabase à Nuxt","supabase\u002F02.brancher-a-nuxt",{"path":449,"title":450,"ligne":442,"stem":451},"\u002Fsupabase\u002Flire-et-ecrire","Lire et écrire des données","supabase\u002F03.lire-et-ecrire",{"path":453,"title":454,"ligne":442,"stem":455},"\u002Fsupabase\u002Fauthentification","Authentification","supabase\u002F04.authentification",{"path":457,"title":458,"ligne":442,"stem":459},"\u002Fsupabase\u002Frow-level-security","Row Level Security","supabase\u002F05.row-level-security",{"path":461,"title":462,"ligne":442,"stem":463},"\u002Fsupabase\u002Fstockage-et-temps-reel","Stockage et temps réel","supabase\u002F06.stockage-et-temps-reel",{"path":465,"title":466,"ligne":442,"stem":467},"\u002Fsupabase","Supabase","supabase\u002Findex",{"path":469,"title":470,"ligne":471,"stem":472},"\u002Ftailwind\u002Fprincipe-et-installation","Principe et installation","tailwind","tailwind\u002F01.principe-et-installation",{"path":474,"title":475,"ligne":471,"stem":476},"\u002Ftailwind\u002Fespacements-couleurs-typographie","Espacements, couleurs et typographie","tailwind\u002F02.espacements-couleurs-typographie",{"path":478,"title":479,"ligne":471,"stem":480},"\u002Ftailwind\u002Fflex-et-grid","Mise en page avec flex et grid","tailwind\u002F03.flex-et-grid",{"path":482,"title":483,"ligne":484,"stem":485},"\u002Ftailwind\u002Fetats-et-responsive","Variantes d'état et responsive",null,"tailwind\u002F04.etats-et-responsive",{"path":487,"title":488,"ligne":471,"stem":489},"\u002Ftailwind\u002Fpersonnaliser-le-theme","Personnaliser le thème avec @theme","tailwind\u002F05.personnaliser-le-theme",{"path":491,"title":380,"ligne":471,"stem":492},"\u002Ftailwind\u002Fbonnes-pratiques","tailwind\u002F06.bonnes-pratiques",{"path":494,"title":495,"ligne":471,"stem":496},"\u002Ftailwind","Tailwind CSS","tailwind\u002Findex",{"path":498,"title":499,"ligne":500,"stem":501},"\u002Fts\u002Fpourquoi-typescript","Pourquoi TypeScript","ts","ts\u002F01.pourquoi-typescript",{"path":503,"title":504,"ligne":500,"stem":505},"\u002Fts\u002Ftypes-de-base","Types de base et fonctions","ts\u002F02.types-de-base",{"path":507,"title":508,"ligne":500,"stem":509},"\u002Fts\u002Fobjets-interfaces-types","Objets, interface et type","ts\u002F03.objets-interfaces-types",{"path":511,"title":512,"ligne":500,"stem":513},"\u002Fts\u002Funions-et-narrowing","Unions, littéraux et narrowing","ts\u002F04.unions-et-narrowing",{"path":515,"title":516,"ligne":500,"stem":517},"\u002Fts\u002Fgeneriques-et-utilitaires","Génériques et types utilitaires","ts\u002F05.generiques-et-utilitaires",{"path":519,"title":520,"ligne":500,"stem":521},"\u002Fts\u002Ftypescript-dans-vue-et-nuxt","TypeScript dans Vue et Nuxt","ts\u002F06.typescript-dans-vue-et-nuxt",{"path":523,"title":524,"ligne":500,"stem":525},"\u002Fts","TypeScript","ts\u002Findex",{"path":527,"title":528,"ligne":529,"stem":530},"\u002Fvue\u002Fpremier-composant","Ton premier composant Vue","vue","vue\u002F01.premier-composant",{"path":532,"title":533,"ligne":529,"stem":534},"\u002Fvue\u002Ftemplate-et-directives","Le template et les directives","vue\u002F02.template-et-directives",{"path":536,"title":537,"ligne":529,"stem":538},"\u002Fvue\u002Freactivite","La réactivité","vue\u002F03.reactivite",{"path":540,"title":541,"ligne":529,"stem":542},"\u002Fvue\u002Fprops-et-evenements","Props, événements et v-model sur un composant","vue\u002F04.props-et-evenements",{"path":544,"title":545,"ligne":529,"stem":546},"\u002Fvue\u002Fslots-watch-et-cycle-de-vie","Slots, watch et cycle de vie","vue\u002F05.slots-watch-et-cycle-de-vie",{"path":548,"title":549,"ligne":529,"stem":550},"\u002Fvue\u002Fcomposables","Les composables","vue\u002F06.composables",{"path":552,"title":553,"ligne":529,"stem":554},"\u002Fvue","Vue","vue\u002Findex",1794583425854]