uniapp におけるルート ガードの役割と使用法
1. はじめに
uniapp アプリケーションを開発する過程で、しばしばいくつかの問題に遭遇します。 require ユーザーが権限判断やページジャンプを行うシナリオ。これらの機能を実現するために、uniappではルートガード機構を提供しており、ルートガードにより、ユーザーはルーティングジャンプ前に権限の確認などを行うことができ、より柔軟で安全なアプリケーションを実現します。
2. ルーティング ガードの役割
ルーティング ガードは主に、ページのアクセス許可を制御し、グローバル インターセプト操作を実装するために使用されます。ルートがジャンプする前にいくつかのコード ロジックを実行することで、次の機能を実現できます。
3. ルーティング ガードの使用法
uniapp のルーティング ガードには、主にグローバル ガードとローカル ガードが含まれます。
グローバル ガードは、プロジェクトのルート ディレクトリにある main.js ファイル内の設定を参照し、すべてのルートに有効になります。グローバル ガードでは、ログイン チェック、ページ アクセス許可の検証など、いくつかのグローバル操作を実行できます。
main.js ファイルでは、uni-app が提供する beforeEach メソッドと afterEach メソッドを使用してグローバル ガードを定義できます。
import Vue from 'vue' import App from './App' Vue.config.productionTip = false // 全局前置守卫 uni.$beforeEach((to, from, next) => { // 在这里进行权限验证或者其他操作 next() // 调用next()方法才能进行跳转 }) // 全局后置守卫 uni.$afterEach((to, from) => { // 在这里进行一些全局操作 }) App.mpType = 'app' const app = new Vue({ ...App }) app.$mount()
export default { created() { // 在这里添加局部守卫的逻辑 } }
uni.$beforeEach((to, from, next) => { // 判断用户是否已登录 if (to.path !== '/login' && !uni.getStorageSync('token')) { // 如果用户未登录,则跳转到登录页面 next('/login') } else { // 用户已登录,可以继续访问目标页面 next() } })
export default { created() { // 判断用户是否有访问当前页面的权限 if (!this.$store.state.user.isAdmin) { // 如果用户不是管理员,则跳转到首页 uni.redirectTo({ url: '/pages/index/index' }) } } }
以上がuniapp におけるルーティング ガードの役割と使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。