ホームページ  >  記事  >  ウェブフロントエンド  >  vue でセカンダリのサブルートをデフォルトで表示する方法

vue でセカンダリのサブルートをデフォルトで表示する方法

PHPz
PHPzオリジナル
2023-04-10 09:04:302052ブラウズ

Vue.js は、現在最も人気のあるフロントエンド フレームワークの 1 つで、豊富なコンポーネントとルーティング メカニズムを備えているため、複雑な単一ページ アプリケーションを迅速に開発できます。その中でもルーティング メカニズムは Vue.js の重要な部分であり、URL アドレスを通じて対応するコンポーネントにマッピングされ、ネストされたルーティングをサポートします。この記事では、Vue.js でセカンダリ サブルートをデフォルトで表示する方法を検討します。

1. vue-router を使用してルーティングを構成する

Vue.js では、vue-router を使用してルーティングを構成するのは非常に簡単です。まず、基本的な Vue.js プロジェクトを作成し、vue-router をインストールします。

npm install vue-router --save

main.js ファイルに、vue-router をインポートして、次のように登録します。

import Vue from 'vue'
import App from './App.vue'
import router from './router'

Vue.config.productionTip = false

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

router.js ファイルに、ルーティングを構成できます:

import Vue from 'vue'
import Router from 'vue-router'
import Home from './views/Home.vue'
import About from './views/About.vue'
import User from './views/User.vue'
import Profile from './views/Profile.vue'
import Setting from './views/Setting.vue'

Vue.use(Router)

export default new Router({
  mode: 'history',
  base: process.env.BASE_URL,
  routes: [
    {
      path: '/',
      name: 'home',
      component: Home
    },
    {
      path: '/about',
      name: 'about',
      component: About
    },
    {
      path: '/user',
      name: 'user',
      component: User,
      children: [
        {
          path: '',
          name: 'profile',
          component: Profile
        },
        {
          path: 'setting',
          name: 'setting',
          component: Setting
        }
      ]
    }
  ]
})

上記のルーティング構成では、/user パスの下に 2 つのサブルート、/user と /user/setting を構成しました。これらは、それぞれ Profile コンポーネントとsetting コンポーネントに対応します。

2. セカンダリ サブルートのデフォルト表示を設定します

/user パスにアクセスすると、Profile コンポーネントのみが表示され、/user/setting コンポーネントが表示されることがわかりました。デフォルトでは表示されません。 /user/setting コンポーネントをデフォルトで表示したい場合、どのように設定すればよいでしょうか?

ルートのルート ガードで Vue.js を使用して、ルートの変更を監視し、パスが正当であるかどうかを判断できます。正当な場合、URL はリダイレクトされます。

router.js ファイルでは、ルーティング ガードを追加できます:

export default new Router({
  // ...其他配置
  routes: [
    // ...其他路由配置
  ]
})

router.beforeEach((to, from, next) => {
  // 判断是否进入 /user 路径
  if (to.path === '/user') {
    // 将路径重定向为 /user/setting
    next({path: '/user/setting'})
  } else {
    // 不需要进入 /user 路径
    next()
  }
})

上記のコードでは、router.beforeEach() メソッドを使用してグローバル ルーティング ガードを登録します。インターセプトに変更します。まず、現在のルーティング パスが /user であるかどうかを確認し、そうである場合は URL を /user/setting にリダイレクトし、それ以外の場合は次のルーティング ステップに直接進みます。

このようにして、デフォルトで第 2 レベルのサブルートを表示する効果が得られます。

概要

Vue.js でデフォルトで表示されるセカンダリ サブルートを設定します。ルーティング ガードでルーティングの変更とリダイレクト パスを監視できます。このようにして、ユーザーが特定のルートにアクセスすると、対応するコンポーネントが自動的に表示され、ユーザー エクスペリエンスが向上します。

以上がvue でセカンダリのサブルートをデフォルトで表示する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。