目次
" >2. ルーティングとは
" >3. ルーティングの基本的な使い方
" >4. マルチレベル ルーティング
" >5. ルーティング パラメーター
" >##1.params
" >2. ルーティング小道具の設定
" >3.<router -link> の replace 属性
4.编程式路由导航" >4.编程式路由导航
5.缓存路由组件" >5.缓存路由组件
6.路由守卫" >6.路由守卫
全局守卫" >1.全局守卫
2.独享路由守卫" >2.独享路由守卫
3.组件内守卫" >3.组件内守卫
4.路由器的两种工作模式" >4.路由器的两种工作模式
ホームページ ウェブフロントエンド Vue.js Vue のルーティングとさまざまなガードを簡単に分析した記事

Vue のルーティングとさまざまなガードを簡単に分析した記事

Feb 09, 2023 pm 08:07 PM
vue

この記事では、Vue でのルーティングについて詳しく説明し、これら 2 つの知識ポイントを守ります。友達は記事の内容に基づいて関連する学習を行うことができます

Vue のルーティングとさまざまなガードを簡単に分析した記事

1.vue-router

vue のプラグイン ライブラリ。特に SPA アプリケーションの単一サーバー サポートを実装するために使用されます。 シングルページ Web アプリケーション (SPA)。アプリケーション全体に対して完全なページは 1 つだけです。ページ内のナビゲーション リンクをクリックしてもページは更新されず、ページは部分的にのみ更新されます。データは ajax リクエストを通じて取得する必要があります。

2. ルーティングとは

  • ルートとは、マッピング関係 (キー:値) のセットです

  • key はパス、値は関数またはコンポーネントの場合があります

ルーティング分類

1. バックエンドルーティング: value 関数。クライアントによって送信されたリクエストを処理するために使用されます。作業プロセス: サーバーはリクエストを受信すると、リクエストのパスに従って一致する関数を見つけてリクエストを処理し、応答データを返します。 [関連する推奨事項: vuejs ビデオ チュートリアル Web フロントエンド開発 ]

2. フロントエンド ルーティング: 値はコンポーネントであり、使用されますページコンテンツを表示します。作業プロセス: ブラウザのパスが変更されると、対応するコンポーネントが表示されます。

3. ルーティングの基本的な使い方

1. vue-router のインストール

npm i vue-router
ログイン後にコピー

2. プラグインの適用

Vue.use(VueRouter)
ログイン後にコピー

3. ルータの設定項目

//  引入vueRouter
importvueRouterfrom&#39;vue-router&#39;
// 引入组件
importAboutfrom&#39;../components/About&#39;
importHomefrom&#39;../components/Home&#39;
export default new vueRouter({
     routes: [{
             path: &#39;/about&#39;,
             component: About
         },
         {
             path: &#39;/home&#39;,
             component: Home
         },
     ]
ログイン後にコピー

})

4. router-linkを使用して切り替える(注: router-linkはブラウザを通過するとタグになります)

        <divclass="list-group">
          <!-- 原始写法——使用a标签进行页面的跳转 -->
          <!-- <a class="list-group-item active" href="./about.html">About</a>
          <a class="list-group-item" href="./home.html">Home</a>-->
          <!-- 使用vue-Router提供的标签进行路径的修改,实现路由的切换 -->
          <router-link 
            class="list-group-item"
            active-class="active"
            to="/about">About
           </router-link>
          <router-link 
            class="list-group-item"
            active-class="active"
            to="/home">Home
           </router-link>
        </div>
ログイン後にコピー

5. ルーター ビューを使用してコンポーネント プレゼンテーションを実装します (スロットと同様)

          <divclass="panel-body">
            <!-- 指定组件的呈现位置 -->
            <router-view>
            </router-view>
          </div>
ログイン後にコピー

注: 1. ルーティング コンポーネントは通常、pages フォルダーに保存されるため、コンポーネントにはアクセスしないでください。フォルダーに入れます
2. 切り替えると、「非表示」ルーティング コンポーネントはデフォルトで破棄され、必要に応じて再度マウントできます
3. 各コンポーネントには独自の $route 属性があり、独自のルーティング情報とともに保存されます。
4. アプリケーション全体にルーターは 1 つだけあり、コンポーネントの $router プロパティを通じて取得できます。

4. マルチレベル ルーティング

ルーティング ルールとルーティングで次のレベルのルーティングを設定します。子を使用します: [ { } ] This form

    routes: [{
            path: &#39;/about&#39;,
            component: About
        },
        {
            path: &#39;/home&#39;,
            component: Home,
            children: [{
                    path: &#39;news&#39;,
                    component: News
                },
                {
                    path: &#39;message&#39;,
                    component: Message
                }
            ]
        },
    ]
ログイン後にコピー

5. ルーティング パラメーター

2 つの方法があります。1 つ目は、クエリ パラメーターをパスに直接記述する方法です。パラメータを渡すことです

ルートの名前付け (簡略化されたコード)

Vue のルーティングとさまざまなガードを簡単に分析した記事

に行くときに多くを書く必要はありませんパスは

Vue のルーティングとさまざまなガードを簡単に分析した記事

##1.params

1 です。params パラメーターを受け入れるようにルーティング ステートメントを構成します

                    children:[
                        {
                            name:&#39;xiangqing&#39;,
                            path:&#39;detail/:id/:title&#39;,// 使用占位符声明接收参数
                            component:Detail,
                        }
                    ]
ログイン後にコピー

2. パラメータを渡す

<!-- 跳转路由并携带params参数,to的字符串写法 -->
        <router-link:to="`/home/message/detail/${m.id}/${m.title}`">{{m.title}}</router-link>
        <!-- 跳转路由并携带params参数,to的对象写法 -->
        <router-link
          :to="{
            // 简化路径代码
            name:&#39;xiangqing&#39;,// 必须使用name,不能使用path
             //  params:所携带的参数
            params:{
                id:m.id,
                title:m.title,
            }
        }"
        >{{m.title}}</router-link>
ログイン後にコピー

3、パラメータを受け入れる

    <div>
        <ul>
            <!-- params写法 -->
            <li>消息:{{$route.params.id}}</li>
            <li>编号:{{$route.params.title}}</li>
        </ul>
    </div>
ログイン後にコピー

2. ルーティング小道具の設定

合計 3 つの設定方法があります。つまり、

オブジェクト タイプ ブール タイプ 関数タイプ です。目的は、ルーティング コンポーネントがパラメータを受信するのをより便利にすることです

children: [{
    name: &#39;xiangqing&#39;,
    // path: &#39;detail/:id/:title&#39;, // 使用占位符声明接收参数
    path: &#39;detail&#39;, // query不使用占位符声明接收参数
    component: Detail,
    // props的第一种写法
    // props:{a:"1",b:"2"},
    // 第二种写法,值为布尔值,若布尔值为真,就会把该路由组件收到的所有params參数,以props的形式传给Detail
    // props:true,
    // props的第三种写法,值为函数
    props($route) {// 使用解构赋值连续写法简化代码
        return {id:$route.query.id,title:$route.query.title}
    }
    // props({query:{id,title}}) {// 使用解构赋值连续写法简化代码
    //     return {id,title}
    // }
}]
ログイン後にコピー

1. 機能: ルーティング ジャンプ時のブラウザ履歴の動作モードを制御します

2.浏览器的历史记录有两种写入方式:分别为pushreplace,push 是追加历史记录,replace 是替换当前记录。路由跳转时候默认为push,所以为push的时候可以进行后退前进操作,而replace直接就是替换掉之前的那个地址所以在replace的里面智慧存在一个地址,也就是当前所呈现的那个地址,就好比做核算,push是排队的人,replace是做核酸的医务人员

3.如何开启replace模式:News即可

Vue のルーティングとさまざまなガードを簡単に分析した記事


4.编程式路由导航

1.作用:不借助实现路由跳转,让路由跳转更加灵活

  methods: {
      //后退
    back() {
      this.$router.back();
    },
      //前进
    forward() {
      this.$router.forward();
    },
      //可以后退也可以前进
    test() {
      this.$router.go(-2);
    }
  }
ログイン後にコピー

5.缓存路由组件

1.作用:让不展示的路由组件保持挂载,不被销毁。

2.具体实现方法

<keep-alivelinclude= "News">
K router-view></router-view>
</keep-alive>
ログイン後にコピー

两个新的生命周期钩子

1.作用:路由组件所独有的两个钩子,用于捕获路由组件的激活状态分别是activated 路由组件被激活时触发。deactivated 路由组件失活时触发。

6.路由守卫

作用:对路由进行权限控制

分类:全局守卫独享守卫组件内守卫

1.全局守卫

router.beforeEach((to, from, next) => {
    console.log(to, from);
    if (to.meta.isAuth) {//判断是否需要鉴权
        if (localStorage.getItem(&#39;school&#39;) ===&#39;shanyu&#39;) {
            next();
        } else {
            alert(&#39;该学校无权限查看此内容&#39;)
        }
    } else {
        next()
    }
})
// 后置路由守卫,切换路由后调用
router.afterEach((to, from) => {
    console.log(to, from);
    document.title=to.meta.title||&#39;山鱼屋&#39;
})
ログイン後にコピー

2.独享路由守卫

专门服务于一个路由的守卫

beforeEnter: (to, from, next) => {
                        console.log(to, from);
                        if (to.meta.isAuth) { //判断是否需要鉴权
                            if (localStorage.getItem(&#39;school&#39;) ===&#39;shanyu&#39;) {
                                next();
                            } else {
                                alert(&#39;该学校无权限查看此内容&#39;)
                            }
                        } else {
                            next()
                        }
                    },
ログイン後にコピー

3.组件内守卫

在进入/离开组件时被激活

//进入守卫:通过路由规则,进入该组件时被调用
beforeRouteEnter (to, from, next) {
},
//离开守卫:通过路由规则,离开该组件时被调用
beforeRouteLeave (to, from, next) {
}
ログイン後にコピー

4.路由器的两种工作模式

对于一个url来说#其后面的内容就是hash值。

Vue のルーティングとさまざまなガードを簡単に分析した記事

就是这个#后面的

hash的特点及使用

  • hash值不会带给服务器。

  • hash模式

1.地址中永远带着#号

2.若以后将地址通过第三方手机app分享,若app校验严格, 则地址会被标记为不合法。

3.兼容性较好。

3.history模式

1.地址干净,美观。

2.兼容性和hash模式相比略差。

3. 应用部署上线时需要后端人员支持,解决刷新页面服务端404的问题。

4.切换history模式

Vue のルーティングとさまざまなガードを簡単に分析した記事

在route文件夹下面的index文件里添加 `mode: 'history'`这句代码即可(默认的是hash模式)

(学习视频分享:vuejs入门教程编程基础视频

以上がVue のルーティングとさまざまなガードを簡単に分析した記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

VUEのボタンに関数を追加する方法 VUEのボタンに関数を追加する方法 Apr 08, 2025 am 08:51 AM

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

VueでBootstrapの使用方法 VueでBootstrapの使用方法 Apr 07, 2025 pm 11:33 PM

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

vue.jsでJSファイルを参照する方法 vue.jsでJSファイルを参照する方法 Apr 07, 2025 pm 11:27 PM

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

VueでWatchの使用方法 VueでWatchの使用方法 Apr 07, 2025 pm 11:36 PM

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

Vueによる前のページに戻る方法 Vueによる前のページに戻る方法 Apr 07, 2025 pm 11:30 PM

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

Vueはマーキー/テキストスクロール効果を実現します Vueはマーキー/テキストスクロール効果を実現します Apr 07, 2025 pm 10:51 PM

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

Vueのバージョンを照会する方法 Vueのバージョンを照会する方法 Apr 07, 2025 pm 11:24 PM

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

Vue Multi-Page開発とはどういう意味ですか? Vue Multi-Page開発とはどういう意味ですか? Apr 07, 2025 pm 11:57 PM

VUEマルチページ開発は、VUE.JSフレームワークを使用してアプリケーションを構築する方法です。アプリケーションは別々のページに分割されます。コードメンテナンス:アプリケーションを複数のページに分割すると、コードの管理とメンテナンスが容易になります。モジュール性:各ページは、簡単に再利用および交換するための別のモジュールとして使用できます。簡単なルーティング:ページ間のナビゲーションは、単純なルーティング構成を介して管理できます。 SEOの最適化:各ページには独自のURLがあり、SEOに役立ちます。

See all articles