Maison > interface Web > js tutoriel > Routage Vue uto par structure de fichiers

Routage Vue uto par structure de fichiers

WBOY
Libérer: 2024-07-29 01:28:23
original
755 Les gens l'ont consulté

L'un de mes problèmes lorsque je travaille avec VueJS est lors de la création de routes, surtout si le projet prend de l'ampleur et que cela devient un problème d'essayer de maintenir votre route.ts ou route.js. Je me souviens encore d'un projet comportant trop de pages et vous devez mettre à jour vos itinéraires lorsque vous créez une nouvelle page et vous devez mettre à jour votre fichier d'itinéraire chaque fois que vous supprimez une page juste pour éviter que des erreurs n'apparaissent.

J'ai donc commencé à chercher comment effectuer le routage automatique en utilisant un fichier. Essayer de rechercher sur Google était difficile à trouver car la plupart des résultats que je trouve sur Internet concernent principalement le webpack et la version 2. J'ai donc dû le poser dans la discussion sur le repo Vue Github et j'ai obtenu une réponse.

Présentation de Unplugin Vue Router, il s'agit d'un routage typé basé sur des fichiers pour Vue 3. Et il est en fait facile à configurer. C'est expérimental comme ils l'ont indiqué dans leur fichier readme Github.

Commençons par créer notre projet Vue à partir de zéro. Comme nous le savons tous, nous pouvons générer un projet en exécutant cette commande, puis répondre à certaines options. Si vous ne savez pas comment procéder, vous pouvez consulter Démarrage rapide sur la page VueJs.

pnpm create vue@latest
Copier après la connexion

Donc, dans cet exemple, c'est ainsi que j'ai créé le projet.

pnpm create vue@latest

Vue.js - The Progressive JavaScript Framework

√ Project name: ... vue-auto-route
√ Add TypeScript? ... No / Yes
√ Add JSX Support? ... No / Yes
√ Add Vue Router for Single Page Application development? ... No / Yes
√ Add Pinia for state management? ... No / Yes
√ Add Vitest for Unit Testing? ... No / Yes
√ Add an End-to-End Testing Solution? » No
√ Add ESLint for code quality? ... No / Yes
√ Add Vue DevTools 7 extension for debugging? (experimental) ... No / Yes

Scaffolding project in D:\Projects\Testing\vue-auto-route...

Done. Now run:

  cd vue-auto-route
  pnpm install
  pnpm dev
Copier après la connexion

Nous allons utiliser Select TypeScript. J'ai également activé le routeur pour qu'il régénére automatiquement les pages pour moi.

Cd sur notre projet et installons les dépendances. Ainsi, en fonction du gestionnaire de packages que vous avez utilisé, vous pouvez l'utiliser. Pour ma part j'utilise le pnpm je commence à l'aimer. Maintenant une fois notre projet créé, il nous fallait maintenant installer unplugin-vue-router.

pnpm add -D unplugin-vue-router
Copier après la connexion

Maintenant, mettons à jour vite.config.ts . Assurez-vous de mettre le plugin dans l'index 0.

import { fileURLToPath, URL } from "node:url";
import VueRouter from "unplugin-vue-router/vite";
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";

// https://vitejs.dev/config/
export default defineConfig({
    plugins: [
        VueRouter({
            /* options */
        }),
        // ⚠️ Vue must be placed after VueRouter()
        vue(),
    ],
    resolve: {
        alias: {
            "@": fileURLToPath(new URL("./src", import.meta.url)),
        },
    },

});
Copier après la connexion

Ensuite, mettons à jour env.d.ts afin que notre éditeur puisse facilement trouver les types de notre package.

/// <reference types="vite/client" />
/// <reference types="unplugin-vue-router/client" />
Copier après la connexion

Alors mettons à jour notre routeur index.ts dans src/router/index.ts.

import { createRouter, createWebHistory } from "vue-router";
import { routes, handleHotUpdate } from "vue-router/auto-routes";

const router = createRouter({
    history: createWebHistory(import.meta.env.BASE_URL),
    routes,
});

if (import.meta.hot) {
    handleHotUpdate(router);
}

export default router;
Copier après la connexion

Maintenant que tout est fait, nous pouvons maintenant créer le répertoire src/pages, et dans ce dossier ou répertoire c'est là que nous ajoutons nos pages et il crée automatiquement des itinéraires en fonction de la structure des fichiers. Si vous connaissez Nuxt, c'est quelque chose comme ça.

Créons une page à propos dans srcpagesabout.vue.

<template>
    <div>This is the about page</div>
</template>
Copier après la connexion

Créons notre page d'accueil en utilisant l'index dans srcpagesindex.vue.

<template>
    <div>This is Home Page</div>
</template>
Copier après la connexion

Ensuite, nous pouvons ensuite exécuter notre application vue, en exécutant un script dev. développeur pnpm. C'est parti, si vous cliquez sur Accueil, vous serez redirigé vers la page d'accueil, si vous cliquez sur à propos, vous serez redirigé vers la page à propos.

Maintenant, tout est configuré pour vous. Si vous n'êtes pas familier avec la structure des dossiers du routeur. Vous pouvez consulter cette doc https://uvr.esm.is/guide/file-based-routing.html.

Essayons d'ajouter un composant slug comme src/pages/blog/[id].vue avec ce contenu.

<script setup>
const { id } = useRoute().params;
</script>
<template>
    <div>This is the blog post with id: {{ id }}</div>
</template>
Copier après la connexion

Essayons maintenant d'exécuter à nouveau pnpm dev. Et lorsque vous allez sur http://localhost:5173/blog/6, vous devriez obtenir ceci.

Vue uto Routing By File Structure

Incroyable, n'est-ce pas ? J'espère que ce court blog vous a aidé dans votre parcours VueJS. Bonne journée.

Si vous appréciez cet article et souhaitez montrer votre soutien, vous pouvez facilement le faire en m'offrant un café. Votre contribution est grandement appréciée !


Si vous appréciez cet article et souhaitez montrer votre soutien, vous pouvez facilement le faire en m'offrant un café. Votre contribution est grandement appréciée !

Vue uto Routing By File Structure

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal