vue でログインせずにページがレンダリングされないようにする方法
Vue では、ユーザーがログインしていないときにページをレンダリングできない状況がよく発生します。ユーザーが特定のページにアクセスするには対応する権限を持っている必要があるため、この問題は実際のアプリケーションではよく発生します。
この問題を解決するには、Vue のルーティングにグローバル ルーティング ガードを定義して、ユーザーがログインしていないときのページのレンダリングを禁止します。
以下、この機能の実装方法を具体例を交えて紹介します。
最初のステップはルーティング ガードを定義することです
Vue では、ルーティング ガードを定義することでルートのアクセス許可を制御できます。このプロセスでは、「beforeEach」という名前のルーティング フック関数を使用する必要があります。この関数は、各ルーティング スイッチの前に呼び出されます。
具体的には、次のコードをルーティング定義に追加できます。
router.beforeEach((to, from, next) => { const isLogin = localStorage.getItem("token"); // 判断是否有登陆态 if (to.meta.requireAuth) { // 判断当前路由是否需要进行权限判断 if (isLogin) { // 已经登陆 next(); } else { // 没有登陆,跳转到登陆页面 next({ path: "/login", query: { redirect: to.fullPath // 记下跳转前的 url,为了登陆后自动跳转回原页面 } }); } } else { next(); } });
上記のコードでは、まずユーザーが「localStorage」を介してログイン ステータスを持っているかどうかを判断し、次に、現在のルートは許可の判断が必要です。判断が必要だがユーザーがログインしていない場合は、ログインに成功した後に自動的に元のページに戻るために、ログイン ページにジャンプし、現在のページの URL を記録します。
「localStorage」は HTML5 の新機能であり、クライアント側でデータを保存する方法を提供するものであることに言及する価値があります。ログインに成功すると、トークンを「localStorage」に保存して、その後のルーティングの決定に使用できるようにします。
2 番目のステップは、許可の判断が必要なルートを定義することです。
ルートを定義するとき、「メタ」フィールドを使用して、現在のルートが許可の判断が必要かどうかをマークできます。権限判定が必要な場合は、ルート定義に以下のコードを追加します。
const router = new VueRouter({ routes: [ { path: "/home", name: "home", component: Home, meta: { requireAuth: true } // 需要进行权限判断 }, { path: "/login", name: "login", component: Login } ] });
上記のコードでは、権限判定が必要なルートに「meta: { requireAuth: true }」フィールドを追加しています。権限の判断が必要です。
3 番目のステップは、ログイン関数を実装することです
最後に、ログイン関数を実装する必要があります。ユーザーが正常にログインしたら、トークンを「localStorage」に保存してリダイレクトする必要があります。以前に保存した URL に移動します。
具体的には、ログイン ページに次のコードを追加できます:
methods: { login() { // 登陆成功后,存储 token localStorage.setItem("token", "userToken"); // 重定向到之前存储的 url if (this.$route.query.redirect) { this.$router.push(this.$route.query.redirect); } else { this.$router.push("/"); } } }
上記のコードでは、ログインに成功した後、トークンを「localStorage」に保存し、以前に保存されている場所にリダイレクトします。 URL。
概要
上記の手順により、Vue でルーティング許可制御を簡単に実装できます。実際のアプリケーションでは、独自のニーズに応じてルーティング ガードを柔軟に構成し、より複雑な権限制御メカニズムを実現できます。
一般に、Vue はフロントエンド フレームワークで広く使用されており、Vue のルーティング制御も非常に重要な側面です。上記の方法は、Vue のルーティング許可制御ソリューションの中でも非常に代表的な方法と言えるので、Vue のルーティング許可制御を学ぶ人にとっては非常に参考になるものです。
以上がvue でログインせずにページがレンダリングされないようにする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









ReactはJSXとHTMLを組み合わせてユーザーエクスペリエンスを向上させます。 1)JSXはHTMLを埋め込み、開発をより直感的にします。 2)仮想DOMメカニズムは、パフォーマンスを最適化し、DOM操作を削減します。 3)保守性を向上させるコンポーネントベースの管理UI。 4)国家管理とイベント処理は、インタラクティブ性を高めます。

VUE 2の反応性システムは、直接配列インデックス設定、長さの変更、およびオブジェクトプロパティの追加/削除と闘っています。開発者は、Vueの突然変異法とVue.set()を使用して、反応性を確保することができます。

Reactコンポーネントは、機能またはクラスによって定義され、UIロジックのカプセル化、およびプロップを介して入力データを受け入れることができます。 1)コンポーネントの定義:関数またはクラスを使用して、反応要素を返します。 2)レンダリングコンポーネント:Reactコールレンダリングメソッドまたは機能コンポーネントを実行します。 3)マルチプレックスコンポーネント:データをプロップに渡して、複雑なUIを構築します。コンポーネントのライフサイクルアプローチにより、ロジックをさまざまな段階で実行でき、開発効率とコードメンテナビリティが向上します。

タイプスクリプトは、タイプの安全性を提供し、コードの品質を改善し、IDEサポートを改善し、エラーを減らし、保守性を向上させることにより、反応開発を促進します。

Reactは、インタラクティブなフロントエンドエクスペリエンスを構築するための好ましいツールです。 1)Reactは、コンポーネント化と仮想DOMを通じてUIの開発を簡素化します。 2)コンポーネントは、関数コンポーネントとクラスコンポーネントに分割されます。関数コンポーネントはよりシンプルで、クラスコンポーネントはより多くのライフサイクル方法を提供します。 3)Reactの作業原則は、パフォーマンスを改善するために仮想DOMおよび調整アルゴリズムに依存しています。 4)国家管理は、usestateまたはthis.stateを使用し、ComponentDidmountなどのライフサイクルメソッドが特定のロジックに使用されます。 5)基本的な使用には、コンポーネントの作成と状態の管理が含まれ、高度な使用にはカスタムフックとパフォーマンスの最適化が含まれます。 6)一般的なエラーには、不適切なステータスの更新とパフォーマンスの問題が含まれます。

この記事では、Reactで複雑な状態管理にusereducerを使用して、useStateよりもその利点と副作用のために使用するEffectと統合する方法を詳述しています。

VUE.JSの機能コンポーネントは、無国籍で軽量で、ライフサイクルフックがないため、純粋なデータのレンダリングとパフォーマンスの最適化に最適です。状態または反応性を持たないことにより、ステートフルコンポーネントとは異なり、レンダリング関数を直接使用します。

この記事では、セマンティックHTML、ARIA属性、キーボードナビゲーション、カラーコントラストに焦点を当てて、反応コンポーネントにアクセスできるようにするための戦略とツールについて説明します。 Eslint-Plugin-JSX-A11yやAxe-Coreなどのツールを使用することをお勧めします。
