ホームページ  >  記事  >  ウェブフロントエンド  >  Vue ルーティングのネストされた SPA 実装手順の詳細な説明

Vue ルーティングのネストされた SPA 実装手順の詳細な説明

小云云
小云云オリジナル
2017-12-26 14:10:531881ブラウズ

この記事では主に vue ルーティングネストの SPA 実装手順を詳しく紹介しますので、興味のある方は参考にしていただければ幸いです。

この記事では、ルーティングのネストされた SPA を実装する手順を説明します:

A (/a) コンポーネントは B コンポーネント (/b) と C コンポーネント (/c) をネストする必要があります

① 他の価格コンポーネントをネストする準備をします親コンポーネントのコンテナ

Aコンポーネントのコンテナを指定
975b587bf85a482ea10b0a28848e78a4acc6c268390a5a09c9c08d82b6a9c623

②Aコンポーネントのルーティング設定オブジェクトにchildren属性を指定

{
パス:'/a',
コンポーネント:A,
子:[
{パス:'/b',コンポーネント:B},
{パス:'/c',コンポーネント:C},
]
}

補足:

//記録されている数値を超えると動作しません。
this.$router.go(num);
num が正の数の場合は、前に進みます
num が負の数の場合は、後戻りします

コード


<!doctype html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>路由嵌套</title>
  <script src="js/vue.js"></script>
  <script src="js/vue-router.js"></script>
 </head>
 <body>
 <p id="container">
    <p>{{msg}}</p>
    <router-view></router-view>
  </p>
  <script>
//登录组件
    var myLogin = Vue.component("login",{
      template:`
        <p>
          <h1>登录组件</h1>
          <router-link to="/mail">登录</router-link>
        </p>
    `
    })
//  邮箱页面
    var myMail = Vue.component("mail",{
//    定义一个返回的方法
      methods:{
        goBack:function(){
          this.$router.go(-1);
        }
      },
      template:`
        <p>
          <h1>邮箱主页面</h1>
          <ul>
            <li>
              <router-link to="/inbox">收件箱</router-link>
            </li>
            <li>
              <router-link to="/outbox">发件箱</router-link>
            </li>
          </ul>
//        点击按钮返回前面的页面
          <button @click="goBack">返回</button>
          <router-view></router-view>
        </p>
    `
//  指定一个容器,加载收件箱或收件箱的列表
    })
//  收件箱组件
    var myInBox = Vue.component("inbox-component",{
      template:`
        <p>
          <h4>收件箱</h4>
          <ul>
            <li>未读邮件1</li>
            <li>未读邮件2</li>
            <li>未读邮件3</li>
          </ul>
        </p>
    `
    })
//  发件箱组件
    var myOutBox = Vue.component("outbox-component",{
      template:`
        <p>
          <h4>发件箱</h4>
          <ul>
            <li>已发送邮件1</li>
            <li>已发送邮件2</li>
            <li>已发送邮件3</li>
          </ul>
        </p>
    `
    })
    //配置路由词典
    new Vue({
      router:new VueRouter({
        routes:[
          {path:&#39;&#39;,redirect:&#39;/login&#39;},
          {path:&#39;/login&#39;,component:myLogin},
          {path:&#39;/mail&#39;,component:myMail,children:[
            {path:&#39;/inbox&#39;,component:myInBox},
            {path:&#39;/outbox&#39;,component:myOutBox}
        ]},
        ]
      }),
      el:"#container",
      data:{
        msg:"Hello VueJs"
      }
    })
    //通过再次指定一个<router-view></router-view>和children:[]
  </script>
 </body>
</html>

関連する推奨事項:

vue SPA シングルページアプリケーションでのインスタンスの詳細な説明

Vue ルーティングジャンプ問題をまとめたサンプルチュートリアル

Vue ルーティングフックとアプリケーションシナリオの詳細な例

以上がVue ルーティングのネストされた SPA 実装手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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