>  기사  >  웹 프론트엔드  >  Vue 라우팅 중첩 SPA 구현 단계에 대한 자세한 설명

Vue 라우팅 중첩 SPA 구현 단계에 대한 자세한 설명

小云云
小云云원래의
2017-12-26 14:10:531939검색

이 글은 주로 Vue 라우팅 중첩의 SPA 구현 단계를 자세히 소개합니다. 관심 있는 친구들이 참고할 수 있기를 바랍니다.

이 문서에서는 중첩된 SPA 라우팅을 구현하는 단계를 공유합니다.

A (/a) 구성 요소는 B 구성 요소(/b) 및 C 구성 요소(/c)를 중첩해야 합니다.

① 다른 가격 구성 요소 중첩 준비 상위 구성 요소의 컨테이너

A 구성 요소의 컨테이너 지정
975b587bf85a482ea10b0a28848e78a4acc6c268390a5a09c9c08d82b6a9c623

②A 구성 요소의 라우팅 구성 개체에 하위 속성 지정

{
경로:'/a',
구성 요소:A,
어린이:[
{경로:'/b',구성 요소:B},
{경로:'/c',구성 요소:C},
]
}

보충사항:

//녹화된 개수를 초과하면 작동하지 않습니다.
this.$router.go(num);
num이 양수이면 앞으로 이동
num이 음수이면 뒤로 이동

Code


<!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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.