


Compétences en développement Vue3+TS+Vite : comment gérer les droits des utilisateurs
Conseils de développement Vue3+TS+Vite : Comment gérer les droits des utilisateurs
Introduction :
Dans les applications Web modernes, la gestion des droits des utilisateurs est une fonction cruciale. En déterminant le rôle et les autorisations de l'utilisateur, nous pouvons restreindre l'accès de l'utilisateur à différentes fonctionnalités et pages. Avec la combinaison de Vue3, TypeScript et Vite, nous pouvons gérer les droits des utilisateurs plus efficacement. Cet article présentera quelques conseils pratiques et exemples de code pour vous aider à implémenter la gestion des droits des utilisateurs dans Vue3 + TS + Vite.
- Définir les rôles et les autorisations
Avant de gérer les autorisations des utilisateurs, nous devons d'abord définir différents rôles et autorisations. Le rôle peut être admin (administrateur), utilisateur (utilisateur ordinaire), etc., et les autorisations peuvent être créer (créer), mettre à jour (mettre à jour) ou supprimer (supprimer), etc. Voici un exemple simple de définition de rôle et d'autorisation :
// roles.ts export enum Role { Admin = 'admin', User = 'user', } // permissions.ts export enum Permission { Create = 'create', Update = 'update', Delete = 'delete', }
- Créer une directive d'autorisation
Afin d'afficher ou de masquer plus facilement certains éléments dans les composants Vue, nous pouvons créer une directive personnalisée pour vérifier les autorisations de l'utilisateur. Voici un exemple de directive d'autorisation :
// directives/permission.ts import { Directive, DirectiveBinding } from 'vue' import { Role, Permission } from '@/constants/roles' const permissionDirective: Directive = (el: HTMLElement, binding: DirectiveBinding) => { const { value } = binding const userRole = 'admin' // 这里假设用户角色为admin,实际开发中需要根据实际情况获取 // 在这里检查用户权限和角色,决定是否展示元素 if (value) { const [requiredRole, requiredPermission] = value.split('.') if ( (requiredRole && requiredRole !== userRole) || (requiredPermission && !hasPermission(userRole, requiredPermission)) ) { el.style.display = 'none' } } } const hasPermission = (role: Role, permission: Permission): boolean => { // 在这里根据角色和权限检查用户是否有权限 // 实际开发中,可以从后端接口获取用户角色和权限,并做相应的校验 return true } export default permissionDirective
- Enregistrer la directive d'autorisation
Enregistrez la directive d'autorisation dans le fichier d'entrée de l'application. Voici un exemple :
// main.ts import { createApp } from 'vue' import App from './App.vue' import permissionDirective from '@/directives/permission' const app = createApp(App) app.directive('permission', permissionDirective) app.mount('#app')
- Utilisation des directives d'autorisation
Dans les composants Vue, nous pouvons utiliser des directives d'autorisation pour contrôler l'affichage ou le masquage d'éléments. Voici un exemple :
<template> <div> <h1 id="仅管理员可见">仅管理员可见</h1> <h1 id="仅普通用户可见">仅普通用户可见</h1> </div> </template>
Dans l'exemple ci-dessus, la première balise
ne sera affichée que si le rôle de l'utilisateur est administrateur et dispose des autorisations de création. De même, la deuxième balise ne sera affichée que si le rôle utilisateur est utilisateur et dispose de l'autorisation de mise à jour. - Gestion dynamique des autorisations de routage
Dans les projets réels, il est souvent nécessaire de générer dynamiquement des itinéraires en fonction des autorisations des utilisateurs. Nous pouvons vérifier les autorisations de l'utilisateur dans la garde de navigation d'itinéraire et ajouter, supprimer ou rediriger dynamiquement des itinéraires en fonction des autorisations. Voici un exemple de gestion des autorisations de routage dynamique à l'aide de Vue Router :
// router.ts
import { createRouter, createWebHistory } from 'vue-router'
import { Role, Permission } from '@/constants/roles'
import { hasPermission } from '@/utils/permission'
const routes = [
{
path: '/admin',
name: 'admin',
component: () => import('@/views/Admin.vue')
meta: {
requiresAuth: true,
requiredRoles: [Role.Admin],
},
},
// ...
]
const router = createRouter({
history: createWebHistory(),
routes,
})
router.beforeEach((to, from, next) => {
const isLoggedIn = true // 假设用户已登录,实际开发中需要根据实际情况获取
if (to.meta.requiresAuth && !isLoggedIn) {
next('/login')
} else {
const userRole = 'admin' // 这里假设用户角色为admin,实际开发中需要根据实际情况获取
if (to.meta.requiredRoles && !hasPermission(userRole, to.meta.requiredRoles)) {
next('/error')
} else {
next()
}
}
})
export default router
Copier après la connexion
- Gestion dynamique des autorisations de routage
Dans les projets réels, il est souvent nécessaire de générer dynamiquement des itinéraires en fonction des autorisations des utilisateurs. Nous pouvons vérifier les autorisations de l'utilisateur dans la garde de navigation d'itinéraire et ajouter, supprimer ou rediriger dynamiquement des itinéraires en fonction des autorisations. Voici un exemple de gestion des autorisations de routage dynamique à l'aide de Vue Router :
// router.ts import { createRouter, createWebHistory } from 'vue-router' import { Role, Permission } from '@/constants/roles' import { hasPermission } from '@/utils/permission' const routes = [ { path: '/admin', name: 'admin', component: () => import('@/views/Admin.vue') meta: { requiresAuth: true, requiredRoles: [Role.Admin], }, }, // ... ] const router = createRouter({ history: createWebHistory(), routes, }) router.beforeEach((to, from, next) => { const isLoggedIn = true // 假设用户已登录,实际开发中需要根据实际情况获取 if (to.meta.requiresAuth && !isLoggedIn) { next('/login') } else { const userRole = 'admin' // 这里假设用户角色为admin,实际开发中需要根据实际情况获取 if (to.meta.requiredRoles && !hasPermission(userRole, to.meta.requiredRoles)) { next('/error') } else { next() } } }) export default router
Dans l'exemple ci-dessus, nous vérifions d'abord si l'utilisateur est connecté. Nous obtenons ensuite les rôles des utilisateurs et les comparons aux "requiredRoles" de l'itinéraire. Si le rôle d'utilisateur ne répond pas aux exigences, redirigez vers une page d'erreur. Sinon, nous continuons à charger l'itinéraire demandé.
Conclusion :
Grâce aux puissantes capacités de Vue3, TypeScript et Vite, nous pouvons gérer les droits des utilisateurs plus efficacement. En définissant des rôles et des autorisations, en créant des directives d'autorisation et en utilisant la gestion dynamique des autorisations de routage, nous pouvons facilement implémenter le contrôle des autorisations des utilisateurs. Les exemples ci-dessus espèrent vous aider à implémenter la gestion des droits des utilisateurs dans votre projet Vue3 + TS + Vite.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Vous pouvez ajouter une fonction au bouton VUE en liant le bouton dans le modèle HTML à une méthode. Définissez la logique de la fonction de méthode et d'écriture dans l'instance Vue.

L'utilisation de bootstrap dans vue.js est divisée en cinq étapes: installer bootstrap. Importer un bootstrap dans main.js. Utilisez le composant bootstrap directement dans le modèle. Facultatif: style personnalisé. Facultatif: utilisez des plug-ins.

Il existe trois façons de se référer aux fichiers JS dans Vue.js: spécifiez directement le chemin à l'aide du & lt; script & gt; étiqueter;; importation dynamique à l'aide du crochet de cycle de vie monté (); et l'importation via la bibliothèque de gestion de l'État Vuex.

L'option Watch dans Vue.js permet aux développeurs d'écouter des modifications de données spécifiques. Lorsque les données changent, regardez déclenche une fonction de rappel pour effectuer des vues de mise à jour ou d'autres tâches. Ses options de configuration incluent immédiatement, qui spécifie s'il faut exécuter un rappel immédiatement, et profond, ce qui spécifie s'il faut écouter récursivement les modifications des objets ou des tableaux.

Vue.js dispose de quatre méthodes pour revenir à la page précédente: $ router.go (-1) $ router.back () utilise & lt; router-link to = & quot; / & quot; Composant Window.History.back (), et la sélection de la méthode dépend de la scène.

Implémentez les effets de défilement marquee / texte dans VUE, en utilisant des animations CSS ou des bibliothèques tierces. Cet article présente comment utiliser l'animation CSS: créer du texte de défilement et envelopper du texte avec & lt; div & gt;. Définissez les animations CSS et défini: caché, largeur et animation. Définissez les images clés, Set Transforment: Translatex () au début et à la fin de l'animation. Ajustez les propriétés d'animation telles que la durée, la vitesse de défilement et la direction.

La pagination est une technologie qui divise de grands ensembles de données en petites pages pour améliorer les performances et l'expérience utilisateur. Dans Vue, vous pouvez utiliser la méthode intégrée suivante pour la pagination: Calculez le nombre total de pages: TotalPages () Numéro de page de traversée: Directive V-FOR pour définir la page actuelle: CurrentPage Obtenez les données de la page actuelle: CurrentPagedata ()

Vous pouvez interroger la version Vue en utilisant Vue Devtools pour afficher l'onglet Vue dans la console du navigateur. Utilisez NPM pour exécuter la commande "NPM List -g Vue". Recherchez l'élément VUE dans l'objet "dépendances" du fichier package.json. Pour les projets Vue CLI, exécutez la commande "Vue --version". Vérifiez les informations de la version dans le & lt; script & gt; Tag dans le fichier html qui fait référence au fichier VUE.
