Vue Router는 진보적 인 JavaScript 프레임 워크 인 Vue.js의 공식 라우터입니다. SPA (Single Page Applications)를 구축하는 데 중요한 구성 요소입니다. 전체 페이지 재 장전없이 응용 프로그램 내에서 내비게이션 및 라우팅을 관리 할 수 있기 때문입니다. 대신 페이지의 필요한 부분 만 업데이트하여 더 부드럽고 반응이 좋은 사용자 경험을 만듭니다.
스파 탐색에 Vue 라우터를 사용하려면 먼저 NPM 또는 원사를 사용하여 설치해야합니다.
<code class="bash">npm install vue-router # or yarn add vue-router</code>
그런 다음 라우터 인스턴스를 만듭니다.
<code class="javascript">import { createRouter, createWebHistory } from 'vue-router'; import Home from './components/Home.vue'; import About from './components/About.vue'; import Contact from './components/Contact.vue'; const routes = [ { path: '/', component: Home }, { path: '/about', component: About }, { path: '/contact', component: Contact }, ]; const router = createRouter({ history: createWebHistory(), routes, }); export default router;</code>
이 코드는 세 가지 구성 요소 ( Home
, About
, Contact
)에 대한 경로를 만듭니다. createWebHistory
클리너 URL에 브라우저 히스토리 API를 사용합니다. 테스트 또는 서버 측 렌더링에 createMemoryHistory
사용할 수도 있습니다.
마지막으로 기본 응용 프로그램에서 라우터 인스턴스를 사용해야합니다.
<code class="javascript">import { createApp } from 'vue'; import App from './App.vue'; import router from './router'; createApp(App).use(router).mount('#app');</code>
이제 /about
또는 /contact
탐색하면 전체 페이지 재 장전없이 해당 구성 요소를 렌더링합니다. 응용 프로그램의 링크는 <router-link></router-link>
구성 요소를 사용할 수 있습니다.
<code class="vue"><router-link to="/about">About</router-link></code>
중첩 경로를 사용하면 중첩 탐색 메뉴 또는 조직 구조를 반영하여 응용 프로그램 내에서 계층 구조를 만들 수 있습니다. 이것은 부모 루트의 children
재산 내에서 아동 노선을 정의함으로써 달성됩니다.
<code class="javascript">const routes = [ { path: '/users', component: Users, // Parent component children: [ { path: ':id', component: UserDetail }, // Child route with parameter { path: 'new', component: UserCreate }, // Child route ], }, ];</code>
이 예에서 /users
부모 경로입니다. /users/:id
동적 세그먼트가있는 하위 경로입니다 :id
는 사용자의 ID를 나타냅니다. /users/new
새로운 사용자를 만들기위한 또 다른 자식 경로입니다. 액세스 :id
UserDetail
구성 요소 내에서 ID 매개 변수는 $route
객체를 통해 수행됩니다.
<code class="javascript"><template> <p>User ID: {{ $route.params.id }}</p> </template></code>
경로 매개 변수를 사용하면 URL을 통해 데이터를 전달할 수 있으므로 응용 프로그램이 더욱 역동적입니다. 경로의 매개 변수 이름 앞에 콜론 ( :
을 사용하여 정의됩니다.
경로를 효과적으로 구조화하는 것은 유지 관리 및 확장성에 중요합니다. 모범 사례는 다음과 같습니다.
name
속성을 사용하여 경로 이름을 제공하십시오. 이것은 내비게이션을 단순화하고 코드를 깨끗하게 만듭니다.<code class="javascript">{ path: '/about', name: 'About', component: About }</code>
그런 다음 이름을 사용하여 탐색합니다.
<code class="javascript">this.$router.push({ name: 'About' })</code>
beforeEnter
, beforeEach
)를 사용하십시오.push
, replace
, go
)의 차이점은 무엇입니까?Vue Router는 탐색을위한 몇 가지 방법을 제공합니다.
push(location)
: 이것은 가장 일반적인 방법입니다. 새로운 기록 항목이 추가되어 사용자가 브라우저의 뒤로 버튼을 사용하여 이전 페이지로 돌아갈 수 있습니다.replace(location)
: 새로운 위치로 탐색하지만 히스토리 스택의 현재 항목을 대체합니다. 사용자는 뒤로 버튼을 사용하여 이전 페이지로 돌아갈 수 없습니다.go(n)
: 이 방법은 히스토리 스택을 n
단계로 앞뒤로 움직입니다. go(1)
전달 버튼을 클릭하는 것과 동일하지만 go(-1)
뒤로 버튼을 클릭하는 것과 같습니다.다음은 차이점을 요약하는 표입니다.
방법 | 역사 항목을 추가합니다 | 현재 항목을 대체합니다 | 뒤로 버튼 기능 |
---|---|---|---|
push
|
예 | 아니요 | 활성화 |
replace
|
아니요 | 예 | 장애가 있는 |
go(n)
|
n 에 따라 다릅니다 |
n 에 따라 다릅니다 |
n 에 따라 다릅니다 |
올바른 방법을 선택하는 것은 특정 요구에 따라 다릅니다. push
는 일반적으로 대부분의 탐색 시나리오에서 선호되는 반면, replace
사용자가 이전 페이지 (예 : 성공적인 양식 제출 후)로 돌아갈 수없는 상황에 유용합니다. go
역사 스택에 대한보다 세분화 된 제어를 제공합니다.
위 내용은 VUE 라우터 란 무엇이며 SPA (Single Page Application) 내비게이션에 어떻게 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!