vue-router 경로 와 페이지 간 네 비게 이 션 인 스 턴 스 분석
vue-router
우 리 는 경로 가 일련의 방문 주소 규칙 을 정의 한 것 을 알 고 있 습 니 다.경로 엔진 은 이러한 규칙 에 따라 해당 하 는 처리 페이지 를 찾 은 다음 에 요청 을 페이지 에 전송 하여 처리 합 니 다.모든 백 엔 드 개발 은 이렇게 한다 고 할 수 있 지만 전단 로 는'요청'이 존재 하지 않 는 다.
전단 경 로 는 주소 가 일치 하 는 구성 요소 나 대상 을 찾 아 렌 더 링 합 니 다.브 라 우 저 주 소 를 바 꾸 어 서버 에 요청 하지 않 는 방법 은 두 가지 가 있 습 니 다.
첫째,주소 에\#를 추가 하여 브 라 우 저 를 속 이 는 것 입 니 다.주소 의 변 화 는 페이지 내 내 비게 이 션 을 하고 있 기 때 문 입 니 다.둘째,HTML 5 의 window.history 기능 을 사용 하여 URL 의 hash 를 사용 하여 완전한 URL 을 모 의 하 는 것 입 니 다.
vue-router 는 공식 적 으로 제공 하 는 전용 경로 도구 라 이브 러 리 입 니 다.vue 의 플러그 인 입 니 다.전역 참조 에서 vue.use()를 통 해 vue 인 스 턴 스 에 도입 해 야 합 니 다.
vue-cli 를 사용 하여 프로젝트 를 만 든 후(init 초기 화 시 vue-router 확인 y)
프로젝트 src 의 구 조 를 살 펴 보고 cmd 를 통 해 프로젝트 src 디 렉 터 리 에 들 어가 서 실행
tree -f > list.txt
구조 트 리 생 성(list.txt 에 저장):구 조 는 다음 과 같다.
src
├─assets //
│ └─image //
│
├─components //
│ └─HelloWorld
│ HelloWorld.vue
│
└─router //
│ └─index.js
│
│ App.vue //
│ main.js
│
1、main.js 열기:
import Vue from 'vue'
import App from './App'
import router from './router'
Vue.config.productionTip = false
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
render: h => h(App)
})
10 번 째 줄 은 설정 한 경 로 를 vue 인 스 턴 스 에 연결 하고 11 번 째 줄 은 vue 인 스 턴 스 에서 render 방법 으로 vue 구성 요소(App)를 초기 화 합 니 다.Render 는 vue 2 에 추 가 된 특색 있 는 방법 으로 더 좋 은 운행 속 도 를 얻 기 위해 vue 2 도 react 와 유사 한 Virtual Dom(가상 Dom)을 사용 합 니 다.
2.그리고 우 리 는 components 에 몇 개의 구성 요 소 를 등록 합 니 다.
3.router/index.js 설정 경로 열기
import Vue from 'vue'
import Router from 'vue-router'
import Singer from '@/components/rank/rank'
Vue.use(Router) // router
export default new Router({
routes: [
{
path: '/',
name: 'Hello',
component: MHeader //
},
{
path: '/rank',
name: 'rank',
component: Rank
}
]
})
경로 의 패턴키워드:"mode","history 모드","hash 모드","Abstract 모드"
매개 변수
mode:history
와 같은 라 우 터 에서 모드 를 사용 할 수 있 습 니 다.이 값 은history
모드 를 사용 한 다 는 뜻 입 니 다.이 모드 는 history.pushstate API 를 충분히 이용 하여 URL 의 전환 을 완성 하고 페이지 를 다시 불 러 올 필요 가 없습니다.history 모드 를 사용 하지 않 으 면 rank 에 접근 할 때 경로 가 다음 과 같 습 니 다.
http://localhost/#rank
반대로:
http://localhost/rank
이것 이 바로 history 모드 와 hash 모드 의 차이 입 니 다.그 밖 에 abstract 모드 도 있 습 니 다.
키워드:"router-link","router-view"
vue-router 는 이 네 비게 이 션 과 자동 렌 더 링 논 리 를 처리 하기 위해 두 개의 명령 탭 구성 요 소 를 제공 합 니 다.
루트 를 사용 할 때 루트 정 의 를 직접 인용 하지 않 는 다 는 원칙 을 명 확 히 해 야 한다.(즉,루트-link 에서 to='conpontents/rank/rank'을 통 해 루트 정 의 를 직접 인용 하지 않 는 다.)루트 정의 의 URL 이 변경 되면 모든 인용 부분 을 수정 해 야 한다.
router-link 에서 이름 참조 경로:to 속성 에 대상 표시 경로 의 이름 을 입력 합 니 다.
문자열 이 아 닌 v-bind 바 인 딩(약자:)을 사용 합 니 다.router-link 에 전달 해 야 하 는 대상{name:rank}입 니 다.
동적 경로
키워드:"동적 경로 파라미터","params","$router.params"
vue-router 는 매개 변 수 를 경로 정의 에 융합 시 켜 경로 의 일부분 이 되 었 습 니 다.우 리 는 이러한 매개 변 수 를'동적 경로 파라미터'라 고 부 릅 니 다.
매우 간단 합 니 다.매개 변수 이름 전에":"를 추가 한 다음 에 매개 변 수 를 경로 가 정의 하 는 path 에 씁 니 다.
routers:[{
name:'BookDetails',
path:'books/:id',
component:BookDetails
}]
1.이렇게 정 의 된 후에 vue-router 는 자동 으로/books/1,/books/2,.../books/n 형식의 경로 모델 과 일치 합 니 다.이렇게 정 의 된 경로 의 수량 이 확실 하지 않 기 때문에'동적 경로'라 고도 부 릅 니 다.2.
<router-link :to="{ name:'BookDetails',params:{ id:1 } }">
//...
</router-link>
3.내 비게 이 션 이 도서 상세 페이지 에 들 어간 후에 우 리 는 속성 이 지정 한 매개 변수 값(즉,id 매개 변 수 를 다시 읽 는 것)을 가 져 와 야 할 수도 있 습 니 다.우 리 는$router.params 를 통 해 완성 할 수 있 습 니 다.
export default {
created () {
const bookID = this.$router.params.id
}
}
내장 경로키워드:"children",
우 리 는 아래 의 장면 을 이용 하여 첫 페이지/홈/독서 상세 페이지,독서 상세 도 우 리 는 아래 의 네 비게 이 션 구역 이 필요 하지 않다.그러나 우 리 는 이전의 경로 정 의 를 사용 하고 모든 페이지 는 사용 하고 싶 은 아래쪽 네 비게 이 션 바 를 가 져 야 한다.앞의 경로 구조 에 따라 도서 상세 페이지 로 안내 할 수 없다.다음 과 같다.
그래서 우 리 는 길 을 정의 하 는 다른 방식 으로 앞의 길 을 조정 해 야 한다.
플러그 인 루트 는 하위 루트 라 고도 부른다.루트 를 하위 보기에 표시 하려 면 상응하는 하위 루트 와 대응 해 야 한다.루트 정의 에서 children 수조 속성 을 사용 하면 하위 루트 를 정의 할 수 있다.
routers:[
{
name:'Main',
path:'/',
component:Main,
children:[
{ name:'Home',path:'home',component:Home }
{ name:'Me',path:'me',component:Me }
]
},
{ name:'BookDetail',path:'/books/:id',component:BookDetail }
]
주의해 야 할 것 은'/'로 시작 하 는 내장 경 로 는 루트 경로 로 간주 되 므 로 하위 경로 에'/'를 추가 하지 마 십시오.경로 와 별명 을 바 꿉 니 다.
키워드:"redirect","alias"
방향 을 바 꾸 는 것 도 routes 설정 을 통 해 이 루어 집 니 다.다음 예 는/a 에서/b 로 바 꾸 는 것 입 니 다.
routes: [
{ path: '/a', redirect: '/b' }
]
//
routes: [
{ path: '/a', redirect: { name: 'foo' }}
]
또한 리 셋 과 별명 을 구별 해 야 합 니 다.'리 셋'은 사용자 가/a 에 접근 할 때 URL 이/b 로 바 뀌 고 경로 가/b 와 일치 한 다 는 뜻 입 니 다.그러면'별명'은 무엇 입 니까?/a 의 별명 은/b 입 니 다.사용자 가/b 에 접근 할 때 URL 은/b 로 유지 되 지만 경로 가 일치 하면/a 입 니 다.사용자 가/a 에 접근 하 는 것 과 같 습 니 다.
alias 를 이용 하여 경로 에 별명 을 설정 합 니 다.
routes: [
{ path: '/a', component: A, alias: '/b' }
]
총결산여기까지 vue 경로 의 기 초 를 우 리 는 이미 정 리 했 습 니 다.우 리 는 실전 에서 계속 연습 하고 문 제 를 많이 해결 해 야 경로 로 우 리 를 도와 임 무 를 완성 하 는 동시에 vue 가 진급 하 는 경로 지식 에 기반 을 다 질 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fastapi websocket 및 vue 3(Composition API)1부: FastAPI virtualenv 만들기(선택 사항) FastAPI 및 필요한 모든 것을 다음과 같이 설치하십시오. 생성main.py 파일 및 실행 - 브라우저에서 이 링크 열기http://127.0.0.1:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.