Vue3+TS+Vite 開発スキル: ユーザー権限の管理方法
Vue3 TS Vite 開発のヒント: ユーザー権限を管理する方法
はじめに:
最新の Web アプリケーションでは、ユーザー権限管理は重要な機能です。ユーザーの役割と権限を決定することで、さまざまな機能やページへのユーザーのアクセスを制限できます。 Vue3、TypeScript、Vite を組み合わせることで、ユーザー権限をより効率的に管理できます。この記事では、Vue3 TS Vite でユーザー権限管理を実装するのに役立ついくつかの実践的なヒントとコード例を紹介します。
- ロールと権限の定義
ユーザー権限管理を実行する前に、まずさまざまなロールと権限を定義する必要があります。ロールには admin (管理者)、user (一般ユーザー) などがあり、権限には作成 (create)、更新 (update)、削除 (delete) などがあります。以下は、ロールと権限の定義の簡単な例です。
// roles.ts export enum Role { Admin = 'admin', User = 'user', } // permissions.ts export enum Permission { Create = 'create', Update = 'update', Delete = 'delete', }
- 権限ディレクティブの作成
Vue コンポーネント内の特定の要素をより便利に表示または非表示にするために、カスタム ユーザー権限を確認するためのディレクティブを定義します。以下はパーミッション ディレクティブの例です。
// 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
- パーミッション ディレクティブの登録
パーミッション ディレクティブをアプリケーションのエントリ ファイルに登録します。以下は例です:
// 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')
- パーミッション ディレクティブの使用
Vue コンポーネントでは、パーミッション ディレクティブを使用して要素の表示または非表示を制御できます。例を次に示します:
<template> <div> <h1 id="仅管理员可见">仅管理员可见</h1> <h1 id="仅普通用户可见">仅普通用户可见</h1> </div> </template>
上の例では、最初の
タグは、ユーザーの役割が管理者であり、作成権限がある場合にのみ表示されます。同様に、2 番目の タグは、ユーザーの役割が user で、更新権限がある場合にのみ表示されます。 - 動的ルーティング権限管理
実際のプロジェクトでは、ユーザー権限に基づいてルートを動的に生成することが必要になることがよくあります。ルート ナビゲーション ガードでユーザーの権限を確認し、その権限に基づいてルートを動的に追加、削除、またはリダイレクトできます。以下は、動的ルーティング権限管理に 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
ログイン後にコピー
- 動的ルーティング権限管理
実際のプロジェクトでは、ユーザー権限に基づいてルートを動的に生成することが必要になることがよくあります。ルート ナビゲーション ガードでユーザーの権限を確認し、その権限に基づいてルートを動的に追加、削除、またはリダイレクトできます。以下は、動的ルーティング権限管理に 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
上の例では、最初にユーザーがログインしているかどうかを確認します。次に、ユーザーのロールを取得し、ルートの「requiredRoles」と照合します。ユーザーの役割が要件を満たしていない場合は、エラー ページにリダイレクトされます。それ以外の場合は、要求されたルートの読み込みを続けます。
結論:
Vue3、TypeScript、Vite の強力な機能を使用すると、ユーザー権限をより効率的に管理できます。ロールと権限を定義し、権限ディレクティブを作成し、動的ルーティング権限管理を使用することで、ユーザー権限制御を簡単に実装できます。上記の例は、Vue3 TS Vite プロジェクトでのユーザー権限管理の実装に役立つことを期待しています。
以上がVue3+TS+Vite 開発スキル: ユーザー権限の管理方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









vue.jsでJSファイルを参照するには3つの方法があります。タグ;; mounted()ライフサイクルフックを使用した動的インポート。 Vuex State Management Libraryを介してインポートします。

HTMLテンプレートのボタンをメソッドにバインドすることにより、VUEボタンに関数を追加できます。 VUEインスタンスでメソッドを定義し、関数ロジックを書き込みます。

Vue.jsの監視オプションにより、開発者は特定のデータの変更をリッスンできます。データが変更されたら、Watchはコールバック関数をトリガーして更新ビューまたはその他のタスクを実行します。その構成オプションには、すぐにコールバックを実行するかどうかを指定する即時と、オブジェクトまたは配列の変更を再帰的に聴くかどうかを指定するDEEPが含まれます。

vue.jsでBootstrapを使用すると、5つのステップに分かれています。ブートストラップをインストールします。 main.jsにブートストラップをインポートしますブートストラップコンポーネントをテンプレートで直接使用します。オプション:カスタムスタイル。オプション:プラグインを使用します。

CSSアニメーションまたはサードパーティライブラリを使用して、VUEでマーキー/テキストスクロール効果を実装します。この記事では、CSSアニメーションの使用方法を紹介します。スクロールテキストを作成し、テキストを&lt; div&gt;をラップします。 CSSアニメーションを定義し、オーバーフローを設定します:非表示、幅、アニメーション。キーフレームを定義し、アニメーションの開始と終了時にtranslatex()を設定します。期間、スクロール速度、方向などのアニメーションプロパティを調整します。

vue.jsには、前のページに戻る4つの方法があります。$ router.go(-1)$ router.back()outes&lt; router-link to =&quot;/&quot; Component Window.history.back()、およびメソッド選択はシーンに依存します。

Vue Devtoolsを使用してブラウザのコンソールでVueタブを表示することにより、Vueバージョンを照会できます。 NPMを使用して、「NPM List -G Vue」コマンドを実行します。 package.jsonファイルの「依存関係」オブジェクトでVueアイテムを見つけます。 Vue CLIプロジェクトの場合、「Vue -Version」コマンドを実行します。 &lt; script&gt;でバージョン情報を確認してくださいVueファイルを参照するHTMLファイルにタグを付けます。

Vue.jsには配列とオブジェクトを通過するには3つの一般的な方法があります。V-Forディレクティブは、各要素をトラバースしてテンプレートをレンダリングするために使用されます。 V-BindディレクティブをV-Forで使用して、各要素の属性値を動的に設定できます。 .mapメソッドは、配列要素を新しい配列に変換できます。
