찾다
웹 프론트엔드View.jsVue.js에서 중첩 라우팅을 사용하는 방법 소개

Vue.js에서 중첩 라우팅을 사용하는 방법 소개

Dec 01, 2020 pm 05:26 PM
vue.js중첩된 라우팅

Vue.js에서 중첩 라우팅을 사용하는 방법 소개

Vue.js SPA(단일 페이지 애플리케이션)가 상당히 복잡해지면 Vue 라우터와 중첩 경로가 필요하기 시작합니다. 중첩 라우팅을 사용하면 더 복잡한 사용자 인터페이스와 구성 요소가 서로 중첩될 수 있습니다. Vue Router에서 중첩 라우팅의 유용성을 보여주기 위해 비교적 간단한 사용 사례를 만들어 보겠습니다.

Vue CLI로 설정

아직 설치하지 않은 경우 다음 명령을 실행하여 Vue CLI를 전역적으로 설치하세요.

$ npm install -g @vue/cli

또는

$ yarn global add @vue/cli

이제 다음에서 vue 명령을 실행할 수 있습니다. 명령줄. alligator-nest라는 Vue 앱을 만들어 보겠습니다. vue 命令了。让我们创建一个名为 alligator-nest 的 Vue 应用:

$ vue create alligator-nest

在提示符下选择默认预设(按 Enter 键)。之后,运行以下命令:

$ npm install vue-router

然后,在你选择的编辑器中打开 alligator-nest 目录。

基本代码

以下 CSS 将帮助我们为 UI 定位元素。将其作为样式表文件添加到  public/ 文件夹中,并在 public/index.html 中引用它。为此,我们将使用 CSS grid

grid.css

.row1 {
  grid-row-start: 1;
  grid-row-end: 2;
}

.row12 {
  grid-row-start: 1;
  grid-row-end: 3;
}

.row123 {
  grid-row-start: 1;
  grid-row-end: 4;
}

.row2 {
  grid-row-start: 2;
  grid-row-end: 3;
}

.row23 {
  grid-row-start: 2;
  grid-row-end: 4;
}

.row3 {
  grid-row-start: 3;
  grid-row-end: 4;
}

.col1 {
  grid-column-start: 1;
  grid-column-end: 2;
}

.col12 {
  grid-column-start: 1;
  grid-column-end: 3;
}

.col123 {
  grid-column-start: 1;
  grid-column-end: 4;
}

.col1234 {
  grid-column-start: 1;
  grid-column-end: 5;
}

.col2 {
  grid-column-start: 2;
  grid-column-end: 3;
}

.col23 {
  grid-column-start: 2;
  grid-column-end: 4;
}

.col234 {
  grid-column-start: 2;
  grid-column-end: 5;
}

.col3 {
  grid-column-start: 3;
  grid-column-end: 4;
}

.col34 {
  grid-column-start: 3;
  grid-column-end: 5;
}

.col4 {
  grid-column-start: 4;
  grid-column-end: 5;
}

接下来,让我们对 vue-cli 添加的默认文件进行一些更改。

src/components 文件夹中删除 HelloWorld.vue,并从 src/App.vue 中删除所有与其相关的东西。对 App.vue 中的 HTML 标记和 CSS 样式进行以下修改。

<template>
  <div id="app">
    <h1 id="Alligator-nbsp-Nest">Alligator Nest</h1>
    <a class="row1 col3">Travels</a>
    <a class="row1 col4">About</a>
    <div class="row2 col234"></div>
  </div>
</template>
html, body {
  height: 100vh;
  width: 100vw;
  padding: 0;
  margin: 0;
}

#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: #2c3e50;
  padding: 2%;
  height: 100%;
  display: grid;
  grid-template-rows: 20% 80%;
  grid-template-columns: 25% 25% 25% 25%;
}

如果你在项目的根目录中运行 npm run serve,则可以将鼠标悬停在浏览器中的 localhost:8080 上,并查看框架布局。那些 display:grid 属性很有用!现在我们可以开始创建路由了。

输入 Vue 路由

/components 文件夹中创建一个名为 AboutPage.vue 的组件。它看起来像这样:

<template>
  <div>
    <h2 id="About">About</h2>
    <p>Alligators were around during the time of the dinosaurs.</p>
  </div>
</template>

<script>
  export default {
    name: &#39;AboutPage&#39;,
  }
</script>

<style scoped>
  
</style>

现在我们的 main.js 文件需要 /about 路由。它看起来像这样。

import VueRouter from &#39;vue-router&#39;;
import Vue from &#39;vue&#39;;
import App from &#39;./App.vue&#39;;

Vue.config.productionTip = false;

import VueRouter from &#39;vue-router&#39;;
Vue.use(VueRouter);

import AboutPage from &#39;./components/AboutPage.vue&#39;;

const routes = [
  { path: &#39;/about&#39;, component: AboutPage },
]

const router = new VueRouter({
  routes
})

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

最后,让我们回到 App.vue,并将 “About” 的锚标记更改为属性为 to="/about"<router-link></router-link> 标签。然后,将第二个 div 更改为 <router-view></router-view> 标签。确保保持网格定位类属性不变。

现在,我们有了一个功能齐全的站点框架,并为 “About” 页面处理了路由。

我们在此重点介绍路由功能,因此不会在样式上话费太多时间。尽管如此,我们也要让Travels 页面看起来更精致一些。


首先,创建一个 TravelPage,方法与创建 AboutPage 相同。在 main.js 中引用它。

还需要创建以下两个组件,这些组件最终将嵌套在 TravelPage.vue 中:

TravelAmericaPage.vue

<template>
  <div>
    <p>Alligators can be found in the American states of Louisiana and Florida.</p>
  </div>
</template>

<script>
  export default {
    name: &#39;TravelAmericaPage&#39;
  }
</script>

<style scoped>
</style>

TravelChinaPage.vue

<template>
  <div>
    <p>Alligators can be found in China&#39;s Yangtze River Valley.</p>
  </div>
</template>

<script>
  export default {
    name: &#39;TravelChinaPage&#39;
  }
</script>

<style scoped>

</style>

配置嵌套路由

现在,让我们同时更新 main.jsTravelPage.vue,以使用 children 来引用这些嵌套路由。必须将 main.js 更新为对 routes 常量具有以下定义:

const routes = [
  {
    path: &#39;/travel&#39;, component: TravelPage,
    children: [
      { path: &#39;/travel/america&#39;, component: TravelAmericaPage },
      { path: &#39;/travel/china&#39;, component: TravelChinaPage}
    ]
  },
  {
    path: &#39;/about&#39;, component: AboutPage
  }
];

请注意,子级的嵌套可以无限继续下去。

并且 TravelPage.vue 可以通过以下方式编写:

TravelPage.vue

<template>
  <div id="travel">
    <h2 id="Travels">Travels</h2>
    <div class="flex-container row2">
      <router-link to="/travel/america">America</router-link>
      <router-link to="/travel/china">China</router-link>
    </div>
    <router-view class="row3"></router-view>
  </div>
</template>

<script>
  export default {
    name: &#39;TravelPage&#39;
  }
</script>

<style scoped>
div {
  text-align: center;
}

#travel {
  display: grid;
  grid-template-rows: 20% 40% 40%;
}

.flex-container {
  display: flex;
  justify-content: space-around;
}
</style>

检出 localhost:8080,你将看到 Travels 页面中包含 2 个子页面!当你单击任一链接时,我们的 URL 也会相应更新。

总结

希望本教程对你了解如何使用嵌套路由有帮助!

关于该主题的其他注意事项——我们可以使用动态段定义路由,例如 path:'/location/:id'。然后在这些路由的视图上,可以将该 id 引用为 this.$route.paramsrrreee

프롬프트에서 기본 사전 설정을 선택합니다(Enter를 누르세요). 그 후 다음 명령을 실행하세요:
rrreee

그런 다음 원하는 편집기에서 alligator-nest 디렉터리를 엽니다.

기본 코드

다음 CSS는 UI 요소를 배치하는 데 도움이 됩니다. public/ 폴더에 스타일시트 파일로 추가하고 public/index.html에서 참조하세요. 이를 위해 CSS 그리드
를 사용합니다:

Grid.css
rrreee

다음으로 vue-cli로 추가된 기본 파일을 일부 변경해 보겠습니다.

src/comComponents 폴더에서 HelloWorld.vue를 삭제하고 src/App.vue에서 이와 관련된 모든 항목을 삭제하세요. App.vue의 HTML 마크업 및 CSS 스타일을 다음과 같이 변경합니다. rrreee

프로젝트 루트 디렉터리에서 npm run submit을 실행하면 브라우저에서 localhost:8080 위로 마우스를 가져가면 프레임 레이아웃을 볼 수 있습니다. display:grid 속성이 유용합니다! 이제 경로 생성을 시작할 수 있습니다.

Vue 경로를 입력하세요. /comComponents 폴더에 AboutPage.vue라는 구성 요소를 만듭니다. rrreee

이제 main.js 파일에 /about 경로가 필요합니다. 이렇게 생겼습니다.

rrreee마지막으로 App.vue로 돌아가서 "About" 앵커 태그를 to="/about" 속성을 ​​사용하여 &lt로 변경해 보겠습니다. -link> 태그. 그런 다음 두 번째 div<router-view></router-view> 태그로 변경하세요. 그리드 위치 지정 클래스 속성을 변경하지 않고 유지하세요.
이제 "정보" 페이지에서 라우팅이 처리되는 완전한 기능을 갖춘 사이트 뼈대가 생겼습니다.

🎜여기에서는 라우팅 기능에 중점을 두어 스타일에 너무 많은 시간을 들이지 않겠습니다. 그래도 우리는 여행 페이지를 좀 더 세련되게 보이도록 만들고 싶습니다. 🎜
🎜먼저 AboutPage 생성과 동일한 방법으로 TravelPage를 생성하세요. main.js에서 참조하세요. 🎜🎜또한 TravelPage.vue에 중첩될 다음 두 구성 요소도 만들어야 합니다. 🎜🎜TravelAmericaPage.vue🎜rrreee🎜TravelChinaPage.vue 🎜rrreee

중첩 라우팅 구성

🎜이제 main.jsTravelPage.vue 를 사용하여 <code>하위 항목을 사용하여 이러한 중첩 경로를 참조합니다. main.jsroutes 상수에 대해 다음 정의를 갖도록 업데이트되어야 합니다. 🎜rrreee🎜자식 중첩은 무기한으로 계속될 수 있다는 점에 유의하세요. 🎜🎜그리고 TravelPage.vue는 다음과 같이 작성할 수 있습니다: 🎜🎜TravelPage.vue🎜rrreee🎜localhost:8080를 확인하면 다음이 표시됩니다. 여행 페이지에는 2개의 하위 페이지가 있습니다! 링크를 클릭하면 그에 따라 URL이 업데이트됩니다. 🎜

요약🎜🎜이 튜토리얼이 중첩 라우팅 사용 방법을 이해하는 데 도움이 되기를 바랍니다! 🎜🎜이 주제에 대한 또 다른 참고 사항 - path:'/location/:id'와 같은 동적 세그먼트를 사용하여 경로를 정의할 수 있습니다. 그런 다음 해당 경로에 대한 보기에서 해당 ID를 this.$route.params로 참조할 수 있습니다. 이 기능은 웹사이트와 앱에서 보다 구체적인 유형의 데이터(사용자, 이미지 등)를 표시하고 싶을 때 유용합니다. 🎜🎜🎜영어 원문 주소 : https://alligator.io/vuejs/nested-routes/🎜🎜번역 주소 : https://segmentfault.com/a/1190000021930656🎜🎜🎜🎜관련 추천 : 🎜🎜🎜🎜2020 요약 프런트 엔드 Vue 인터뷰 질문(답변 포함) 🎜🎜🎜🎜vue 튜토리얼 추천: 2020 최신 5개 vue.js 비디오 튜토리얼 선택 🎜🎜🎜🎜더 많은 프로그래밍 관련 지식을 보려면 다음을 방문하세요: 🎜프로그래밍 소개🎜! ! 🎜🎜

위 내용은 Vue.js에서 중첩 라우팅을 사용하는 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 segmentfault에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
vue.js and React : 주요 차이점 이해vue.js and React : 주요 차이점 이해Apr 10, 2025 am 09:26 AM

vue.js는 중소형 프로젝트에 적합하지만 REACT는 크고 복잡한 응용 프로그램에 더 적합합니다. 1. Vue.js의 응답 형 시스템은 종속성 추적을 통해 DOM을 자동으로 업데이트하여 데이터 변경을 쉽게 관리 할 수 ​​있습니다. 2. 반응은 단방향 데이터 흐름을 채택하고 데이터 흐름에서 하위 구성 요소로 데이터가 흐르고 명확한 데이터 흐름과 곤란하기 쉬운 구조를 제공합니다.

vue.js vs. React : 프로젝트 별 고려 사항vue.js vs. React : 프로젝트 별 고려 사항Apr 09, 2025 am 12:01 AM

vue.js는 중소형 프로젝트 및 빠른 반복에 적합한 반면 React는 크고 복잡한 응용 프로그램에 적합합니다. 1) vue.js는 사용하기 쉽고 팀이 불충분하거나 프로젝트 규모가 작는 상황에 적합합니다. 2) React는 더 풍부한 생태계를 가지고 있으며 고성능 및 복잡한 기능적 요구가있는 프로젝트에 적합합니다.

태그를 vue로 점프하는 방법태그를 vue로 점프하는 방법Apr 08, 2025 am 09:24 AM

VUE에서 태그의 점프를 구현하는 방법에는 다음이 포함됩니다. HTML 템플릿의 A 태그를 사용하여 HREF 속성을 지정합니다. VUE 라우팅의 라우터 링크 구성 요소를 사용하십시오. javaScript 에서이. $ router.push () 메소드를 사용하십시오. 매개 변수는 쿼리 매개 변수를 통해 전달 될 수 있으며 동적 점프를 위해 라우터 옵션에서 경로가 구성됩니다.

VUE의 구성 요소 점프를 구현하는 방법VUE의 구성 요소 점프를 구현하는 방법Apr 08, 2025 am 09:21 AM

VUE에서 구성 요소 점프를 구현하는 방법은 다음과 같습니다. 라우터 링크 및 & lt; router-view & gt; 하이퍼 링크 점프를 수행하고 대상 경로로 속성을 지정합니다. & lt; router-view & gt; 현재 라우팅 된 렌더링 된 구성 요소를 표시하는 구성 요소. 프로그래밍 방식 탐색을 위해 router.push () 및 router.replace () 메소드를 사용하십시오. 전자는 역사를 구하고 후자는 기록을 떠나지 않고 현재 경로를 대체합니다.

Vue의 div로 점프하는 방법Vue의 div로 점프하는 방법Apr 08, 2025 am 09:18 AM

VUE에서 DIV 요소를 점프하는 두 가지 방법이 있습니다. VUE 라우터를 사용하고 라우터 링크 구성 요소를 추가하십시오. @Click 이벤트 리스너를 추가하고 이것을 호출하십시오. $ router.push () 메소드를 점프하십시오.

vue 점프로 값을 전송하는 방법vue 점프로 값을 전송하는 방법Apr 08, 2025 am 09:15 AM

VUE에서 데이터를 전달하는 두 가지 주요 방법이 있습니다 : Props : 일원 데이터 바인딩, 부모 구성 요소에서 자식 구성 요소로 데이터를 전달합니다. 이벤트 : 이벤트와 사용자 정의 이벤트를 사용하여 구성 요소간에 데이터를 전달합니다.

Vue의 소개 방법으로 점프하는 방법Vue의 소개 방법으로 점프하는 방법Apr 08, 2025 am 09:12 AM

vue.js는 점프하는 세 가지 방법을 제공합니다. 기본 JavaScript API : Window.location.href를 사용하여 점프하십시오. Vue 라우터 : & lt; router-link & gt를 사용하십시오. 태그 또는이. $ router.push () 메소드 점프. Vuex : 파견 경로 점프는 파견 동작을 통과하거나 돌연변이를 커밋합니다.

VUE의 점프 페이지를 설정하는 방법VUE의 점프 페이지를 설정하는 방법Apr 08, 2025 am 09:09 AM

라우터 링크 구성 요소를 사용하여 클릭 가능한 링크 생성을 포함하여 VUE에서 페이지 리디렉션을 설정하는 몇 가지 방법이 있습니다. router.push () 메소드를 사용하여 히스토리 스택에 새 경로를 수동으로 추가하십시오. 라우터 .replace () 메소드를 사용하여 현재 경로를 교체하십시오. location.href를 사용하여 직접 새 페이지로 리디렉션하십시오.

See all articles

핫 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 Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.