>  기사  >  웹 프론트엔드  >  uniapp 컴포넌트의 점프 경로가 다른 경우 어떻게 해야 합니까?

uniapp 컴포넌트의 점프 경로가 다른 경우 어떻게 해야 합니까?

PHPz
PHPz원래의
2023-04-06 09:08:40841검색

모바일 인터넷의 급속한 발전과 함께 모바일 애플리케이션 개발은 점차 개발자의 우선순위 영역 중 하나가 되었습니다. 상대적으로 말하면, 오늘날의 애플리케이션은 아름답고 매끄러울 뿐만 아니라 더 나은 사용자 경험을 제공해야 합니다. 따라서 개발자는 색상, 애니메이션, 인터페이스 스타일과 같은 세부 사항에 더 많은 시간을 할애하고 관리 및 호출을 위해 중첩된 라우팅을 사용하는 것을 선호합니다.

최근 uniapp을 사용하여 모바일 애플리케이션을 개발할 때 구성 요소의 다른 점프 경로에 문제가 발생했습니다. 여기에서 해결 방법을 공유하고 싶습니다.

문제 설명

유니앱에서 uni-list 컴포넌트를 사용하여 목록에 여러 콘텐츠를 표시하는데, 특정 콘텐츠를 클릭하면 특정 세부정보 페이지로 들어가야 합니다. navigateTo를 통해 이동할 수 있습니다. 점프 논리는 다음과 같습니다. uni-list 组件,在列表中展示了多个内容,在点击某个内容时需要进入到具体的详情页面。可以通过 navigateTo 进行跳转,跳转逻辑如下:

uni.navigateTo({
  url: '/pages/detail/detail?id=' + id
});

其中 detail 页面是在 pages 文件夹下已经创建了的。

但是当我通过这种方式跳转时,发现无论在哪个列表页面,跳转后的 detail 页面所在的 url 路径都是 /pages/detail/detail?id=。这样的话,在使用 uni.showModal 返回上一页时,无法正确返回到之前的列表页面。

原因分析

经过分析,这是由于我在 App.vue 文件夹中使用了 uni-simple-router 进行路由管理,需要对它进行设置。具体是在 config 文件夹下的 router.js 中进行设置。在这里,同样需要使用 navigateTo 进行跳转,但需要注意的是,它的路径设置方法和普通的路径设置是不同的。

解决方法

可通过以下两种方法来解决这个问题:

1. 直接使用 uni.navigateTo

这种方式相比较而言较为简单,只需要在 list 组件中添加 bindtap@click 事件:

<uni-list-item
  title="跳转详情页"
  arrow
  @click="redirectToDetail(item.id)">
</uni-list-item>

然后在 methods 中添加跳转逻辑:

methods: {
  redirectToDetail(id) {
    uni.navigateTo({
      url: '/pages/detail/detail?id=' + id
    });
  }
}

这样,在每个页面中都会调用 redirectToDetail 方法,跳转到具体的页面。

2. 使用 uni-simple-router

使用这种方式的前提是我们已经在 App.vue 中使用了 uni-simple-router 进行路由管理,并已经在 config 中配置好了 routes

list 组件的 methods 中,需要添加如下方法:

methods: {
  redirectToDetail(id) {
    uni.$router.push({
      path: '/pages/detail/detail?id=' + id
    });
  }
}

这里调用了 $router.push 方法,path 属性中需要填写完整的路径,包括文件夹名称、文件名和参数。通过这种方式跳转后,每个页面的路径都会不同,可以正确返回上一页。


总之,无论是直接使用 uni.navigateTo 还是使用 uni-simple-routerrrreee

세부 정보 페이지가 pages 폴더에 생성되었습니다. 🎜🎜그런데 이렇게 점프하면 내가 어느 목록 페이지에 있든 점프 후 detail 페이지의 URL 경로가 /pages/detail/detail? 아이디 =. 이 경우 uni.showModal을 이용하여 이전 페이지로 돌아갈 경우, 이전 목록 페이지가 올바르게 반환되지 않습니다. 🎜🎜원인 분석🎜🎜분석 후 라우팅 관리를 위해 App.vue 폴더의 uni-simple-router를 사용하고 설정을 해야 하기 때문입니다. 구체적으로 설정은 config 폴더 아래 router.js에서 이루어집니다. 여기서도 점프하려면 navigateTo를 사용해야 하는데, 경로 설정 방법이 일반적인 경로 설정과 다르다는 점에 유의해야 합니다. 🎜🎜해결 방법🎜🎜이 문제는 다음 두 가지 방법으로 해결할 수 있습니다. 🎜

1. uni.navigateTo

를 직접 사용하세요.🎜이 방법은 비교적 간단합니다. list 구성 요소의 >bindtap 또는 @click 이벤트: 🎜rrreee🎜 그런 다음 methods에 점프를 추가합니다. 전송 논리: 🎜 rrreee🎜이렇게 하면 각 페이지에서 redirectToDetail 메소드가 호출되어 특정 페이지로 이동하게 됩니다. 🎜

2. uni-simple-router

사용🎜 이 방법을 사용하기 위한 전제 조건은 App.vue에서 이미 를 사용했다는 것입니다. uni-simple-router는 라우팅 관리를 수행하고 config에서 routes를 구성했습니다. 🎜🎜list 구성 요소의 methods에 다음 메서드를 추가해야 합니다. 🎜rrreee🎜 $router.push 메서드가 호출됩니다. 여기, 경로 속성에 폴더 이름, 파일 이름, 매개변수를 포함하여 전체 경로를 입력해야 합니다. 이렇게 점프하면 각 페이지의 경로가 달라지며 이전 페이지로 올바르게 돌아갈 수 있습니다. 🎜
🎜즉, uni.navigateTo를 직접 사용하든, uni-simple-router를 사용하든, 작업할 때 경로가 어떻게 설정되는지 주의 깊게 살펴봐야 합니다. 점프하여 표시해야 하는 페이지로 올바르게 점프하고 이전 페이지로 돌아갑니다. 문제 분석 및 해결은 개발자가 라우팅 사용 및 구성을 더 잘 이해하는 데 도움이 될 수도 있습니다. 🎜

위 내용은 uniapp 컴포넌트의 점프 경로가 다른 경우 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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