vue3 라우팅에서 매개변수 ts를 작성하는 방법
Vue3은 뛰어난 구성 요소화 및 응답성을 갖춘 현재 인기 있는 프런트 엔드 프레임워크 중 하나입니다. vue-router는 Vue에서 공식적으로 제공하는 라우팅 플러그인으로, 프런트엔드 애플리케이션의 페이지 간을 이동하고 단일 페이지 애플리케이션(SPA)을 구현할 수 있습니다.
개발 중에는 한 페이지에서 다른 페이지로 이동하고 해당 데이터를 표시하는 등 경로 간에 매개변수를 전달해야 하는 경우가 있습니다. 다음으로, 잘못된 매개변수 전달로 인해 발생하는 런타임 예외를 방지하기 위해 TypeScript 유형 검사와 결합된 Vue3의 vue-router를 통해 매개변수를 전달하는 방법을 소개합니다.
vue-router 설치
vue-router를 사용하여 경로 점프를 구현하기 전에 먼저 vue-router를 설치해야 합니다.
npm install vue-router@next
경로 정의
다음으로 Vue 애플리케이션에서 경로를 정의해야 합니다. Vue3에서는 경로가 Vue2와 다르게 정의됩니다. 다음은 간단한 샘플 코드입니다.
import { createRouter, createWebHistory } from 'vue-router'; const routes = [ { path: '/', name: 'Home', component: Home, props: true }, { path: '/page/:id', name: 'Page', component: Page, props: true } ]; const router = createRouter({ history: createWebHistory(), routes }); export default router;
그 중 createRouter
와 createWebHistory
는 라우팅 인스턴스 및 기록 관리자 생성을 위해 Vue3에서 제공하는 팩토리 메소드입니다. createRouter
和createWebHistory
是由Vue3提供的工厂方法,用于创建路由实例和历史记录管理器。
在定义路由时,我们需要指定路径、路由名称和组件。此外,我们还可以通过设置props: true
,将路径参数作为组件属性传递,方便组件接收参数。
路由跳转
下面是一个基本的路由跳转示例代码:
import router from '@/router'; router.push({ name: 'Page', params: { id: '1' } });
在上述代码中,我们使用router.push
方法进行路由跳转。其中,name
为跳转的路由名称,params
为传递的参数对象,其内部键与路由路径中的参数名相对应。
接收参数
最后,我们需要在被跳转的页面组件中接收参数,并进行类型检查。
这里有两种方法可以传递参数。一种是通过props
,另一种是通过$route
。我们分别来看一下这两种传参方法的具体实现:
通过 props 传参
在路由定义时,我们可以通过props
选项将路由参数作为组件的属性传递。下面是一个示例代码:
// 路由定义 { path: '/page/:id', name: 'Page', component: Page, props: true }
在组件中,我们可以直接声明这些属性,并通过TypeScript来进行类型检查。下面是一个示例代码:
<script lang="ts"> interface Props { id: string; } export default { props: { id: { type: String, required: true } }, setup(props: Props) { /* ... */ } }; </script>
这里我们使用了Vue3新引入的setup
函数,用于替代Vue2中的data
、computed
、methods
等钩子函数。通过props
对象,我们可以获取到传递过来的参数,并进行类型检查。
通过 $route 传参
另一种传递参数的方式是通过$route
。这种方式下,我们可以通过$route.params
对象获取到路由参数。下面是一个示例代码:
<script lang="ts"> import { defineComponent } from 'vue'; export default defineComponent({ setup() { const id = $route.params.id; /* ... */ } }); </script>
需要注意的是,在使用$route
时,我们需要通过静态类型导入RouteLocationNormalized
和RouteParams
等路由相关类型,并对参数进行类型检查。
import { defineComponent } from 'vue'; import { RouteLocationNormalized, RouteParams } from 'vue-router'; export default defineComponent({ setup() { const route = $route as RouteLocationNormalized & { params: RouteParams }; const id = route.params.id; /* ... */ } });
总结
在Vue3下使用vue-router传递路由参数并进行类型检查,是一种更加安全可靠的方式。通过TypeScript的类型检查,我们可以避免因错误传参导致的运行时异常,提高代码的稳定性。同时,Vue3引入的setup
props: true
를 설정하여 구성 요소가 매개 변수를 수신하도록 함으로써 경로 매개 변수를 구성 요소 속성으로 전달할 수도 있습니다. 🎜🎜루트 점프🎜🎜다음은 기본 루트 점프 샘플 코드입니다. 🎜rrreee🎜위 코드에서는 router.push
메소드를 사용하여 루트 점프를 수행합니다. 그 중 name
은 점프 경로 이름이고, params
는 전달된 매개변수 객체이며, 내부 키는 라우팅 경로의 매개변수 이름에 해당합니다. 🎜🎜매개변수 수신🎜🎜마지막으로 점프된 페이지 구성요소에서 매개변수를 수신하고 유형 검사를 수행해야 합니다. 🎜🎜매개변수를 전달하는 방법에는 두 가지가 있습니다. 하나는 props
를 통하고, 다른 하나는 $route
를 통합니다. 이 두 가지 매개변수 전달 방법의 구체적인 구현을 각각 살펴보겠습니다. 🎜props를 통한 매개변수 전달
🎜경로를 정의할 때props
옵션을 사용하여 라우팅 매개변수를 사용할 수 있습니다. 구성 요소 속성이 전달되기 때문입니다. 다음은 샘플 코드입니다. 🎜rrreee🎜구성 요소에서 이러한 속성을 직접 선언하고 TypeScript를 통해 유형 검사를 수행할 수 있습니다. 다음은 샘플 코드입니다. 🎜rrreee🎜여기에서는 Vue3에 새로 도입된 setup
함수를 사용하여 Vue2의 data
및 computed
를 대체합니다. 메서드
및 기타 후크 기능. props
객체를 통해 전달된 매개변수를 얻고 유형 검사를 수행할 수 있습니다. 🎜$route를 통해 매개변수 전달
🎜매개변수를 전달하는 또 다른 방법은$route
를 사용하는 것입니다. 이런 방식으로 $route.params
객체를 통해 라우팅 매개변수를 얻을 수 있습니다. 다음은 샘플 코드입니다. 🎜rrreee🎜 $route
를 사용할 때 정적을 통해 RouteLocationNormalized
및 RouteParams
를 가져와야 한다는 점에 유의해야 합니다. 유형 라우팅 관련 유형을 기다리고 매개변수에 대한 유형 검사를 수행합니다. 🎜rrreee🎜요약🎜🎜vue-router를 사용하여 라우팅 매개변수를 전달하고 Vue3에서 유형 검사를 수행하는 것이 더 안전하고 신뢰할 수 있는 방법입니다. TypeScript의 유형 검사를 통해 잘못된 매개변수 전달로 인한 런타임 예외를 방지하고 코드 안정성을 향상시킬 수 있습니다. 동시에 Vue3에서 도입된 setup
기능 및 팩토리 메소드와 같은 새로운 기능을 사용하면 개발 프로세스 중에 라우팅을 더 쉽게 관리하고 처리할 수 있습니다. 🎜위 내용은 vue3 라우팅에서 매개변수 ts를 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 기사에서는 Data Fetching 및 기능 구성 요소의 DOM 조작과 같은 부작용을 관리하기위한 후크 인 React의 useEffect에 대해 설명합니다. 메모리 누출과 같은 문제를 방지하기 위해 사용법, 일반적인 부작용 및 정리를 설명합니다.

이 기사는 다중 연계 기능을 단일 연계 함수 시퀀스로 변환하는 기술 인 JavaScript의 카레에 대해 논의합니다. Currying의 구현, 부분 응용 프로그램 및 실제 용도와 같은 혜택, 코드 읽기 향상을 탐색합니다.

JavaScript의 고차 기능은 추상화, 공통 패턴 및 최적화 기술을 통해 코드 간접성, 재사용 성, 모듈성 및 성능을 향상시킵니다.

이 기사는 가상 Dom 트리를 비교하여 DOM을 효율적으로 업데이트하는 React의 조정 알고리즘을 설명합니다. 성능 이점, 최적화 기술 및 사용자 경험에 미치는 영향에 대해 설명합니다. 문자 수 : 159

기사는 Connect ()를 사용하여 React 구성 요소를 Redux Store에 연결하고 MapStateToprops, MapDispatchtoprops 및 성능 영향을 설명합니다.

이 기사는 REACT의 USECONTEXT를 설명하며, 이는 PROP 시추를 피함으로써 상태 관리를 단순화합니다. 중앙 집중식 상태 및 성능 개선과 같은 렌더링을 통해 성능 향상과 같은 이점에 대해 논의합니다.

기사에서는 extentdefault () 메서드를 사용하여 이벤트 처리기의 기본 동작 방지, 향상된 사용자 경험과 같은 이점 및 접근성 문제와 같은 잠재적 문제에 대해 논의합니다.

이 기사는 예측 가능성, 성능 및 사용 사례와 같은 측면에 중점을 둔 React의 제어 및 통제되지 않은 구성 요소의 장단점에 대해 설명합니다. 그것은 그들 사이에서 선택할 때 고려해야 할 요소에 대해 조언합니다.
