Vue ボタンの権限制御の導入

Vue ボタンの権限制御の導入

序文:

日常的なプロジェクトでは、バックグラウンド インターフェイスによって返されるデータに基づいて、現在のユーザーの操作権限を判断する必要がある場合があります。削除権限がある場合は削除ボタンを表示する必要があります。この権限がないと、ボタンは表示されず、削除もされません。情報を検索することで、この機能はvuexを通じて実現されます。

1. 手順

1. ボタンの権限を定義する

バックグラウンド インターフェイスによって返された権限データを保存するには、 statebuttomPermissionを作成します。

setPermissionは、データを受け入れ、ページ権限管理をbuttomPermissionオブジェクトに渡すために使用されます。

vuex の使用:

Vue.use(Vuex)

Vueインスタンスを作成する const store = new Vuex.Store({
    州: {
        ボタン権限: {}
    },
    突然変異:
        setPermission(状態、権限) {
            state.buttomPermission = 許可
        }
    }
})
デフォルトストアをエクスポート


2. ストアを定義する

'./store/index.js' からストアをインポートします

新しいVue({
    店、
    el: '#app',
    レンダリング: h => h(App)
})


3. 権限指示を作成する

新しいdirectivesフォルダーを作成し、 permission.jsファイルを作成します。

ここで、 inserted関数は、バインドされた要素が親ノードに挿入されるときに、要素に権限があるかどうかを確認するために使用されます。

挿入されました(el、バインディング、vnode) {}


4. パーミッションディレクティブを使用する

ボタン ページでpermissionディレクティブを導入して定義し、 buttomにディレクティブを記述して、ディレクティブ内の対応する値をバインドします。

 <button v-permission="'add'">追加</button>
'./directives/permission' から権限をインポートします
ディレクティブ: {permission,},


5. 不正なデータを削除する

permission命令では、 bindingsを通じてボタンバインディングのvalueを取得し、 buttomPermissionオブジェクトでそれを見つけて、権限があるかどうかを判断します。権限がない場合は、ノードを削除します。

挿入(el, バインディング, vnode) {
        btnPermissionValue を bindings.value とします。
        ブール値をvnode.context.$store.state.buttomPermission[btnPermissionValue]に設定します。
        !boolean && el.parentNode.removeChild(el);
    }


6. 状態管理データの受け渡し

setPermissionメソッドを通じて状態管理データを権限管理に渡す

権限を {} にします
this.$store.commit("setPermission", 権限);


II. 概要

一般的に、 buttomPermission権限ステータス オブジェクトはvuexを通じて定義され、次にpermissionsディレクティブが作成されます。 permissionsディレクティブは各buttomに使用され、ボタンの特定の意味の値がバインドされます。次に、 permission.jsファイルで現在の値を取得し、現在のボタンにbuttomPermissionからの権限があるかどうかを取得します。権限がない場合は、現在のボタン ノードを直接削除します。

これで、vue ボタンの権限制御に関するこの記事は終了です。vue ボタンの権限制御に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue 動的ルーティングと Springsecurity ボタンレベルの権限制御の実装
  • VUEフロントエンドボタン権限制御の詳細な説明
  • Vueカスタム命令に基づいてボタンレベルの権限制御を実装するアイデアの詳細説明

<<:  Linux のソフトリンクとハードリンクの詳細な説明

>>:  CSS3で実装された炎のアニメーション

推薦する

Mysql の追加、削除、変更、クエリステートメントのシンプルな実装

Mysql の追加、削除、変更、クエリステートメントのシンプルな実装追加されたレコード: テーブル名...

シャトルボックス機能を実装するためのVueの詳細なコード

Vue - シャトルボックス機能を実装します。効果図は次のようになります。 CS 。移行{ ディスプ...

Tomcat サーバーの設定と Web プロジェクトの公開に関する IDEA グラフィック チュートリアル

1. Webプロジェクトを作成したら、Tomcatを例にサーバーを構成する必要があります。 2. 実...

JSはストップウォッチタイマーを実装します

この記事の例では、ストップウォッチタイマーを実装するためのJSの具体的なコードを参考までに共有してい...

よく使われるnginxの書き換えルールの詳細な説明

この記事では、Web ページのリンクを美しくするためによく使用される書き換えルールをいくつか紹介しま...

CSS3 変換遷移ジッター問題の解決

transform: scale(); スケーリングするとIEブラウザでジッターが発生します変換スケ...

MySQL のインデックスとビューの使用方法と違いの詳細な説明

序文この記事では主に、MySQL のインデックスとビューの使用方法と違いを紹介し、参考と学習のために...

EChartsマルチチャート連携機能の実装プロセス

表示するデータが多い場合、1 つのチャートに表示しても効果はよくありません。このとき、2 つのチャー...

Postman に基づく HTTP インターフェース テスト プロセスの分析

偶然、素晴らしい人工知能のチュートリアルを発見したので、みんなと共有せずにはいられませんでした。この...

CSSの4種類の配置の違いの詳細な説明

フロントエンド開発でよく使われるCSSの配置方法は、位置決めには、通常位置決め、相対位置決め、絶対位...

Ubuntu でディスク容量不足により MySQL が起動しない場合の解決策

序文最近、データベースのテーブルに 2 つのフィールドを追加しました。その後、ディスク容量不足のよう...

HTML で 2 列レイアウトを実装する方法の例 (左側は固定幅、右側は適応幅)

HTMLは2列レイアウトを実装し、左側は固定幅、右側は適応幅です。実装1: <スタイル>...

nginxアクセス制御の実装例

高性能で軽量なウェブサービスソフトウェアであるNginxについて高い安定性 システムリソースの消費量...

MYSQLはUnionを使用して2つのテーブルのデータを結合し、表示します。

UNION演算子の使用union : 2 つ以上の SELECT ステートメントの結果を 1 つの...

Vueは秒殺しのカウントダウンコンポーネントを実装する

この記事では、2番目のキルカウントダウンコンポーネントを実装するためのVueの具体的なコードを参考ま...