Home >Web Front-end >uni-app >How to jump to the page in uniapp component

How to jump to the page in uniapp component

PHPz
PHPzOriginal
2023-04-18 16:00:162058browse

Uniapp is a cross-platform mobile development framework with rich components and APIs, allowing developers to quickly create efficient mobile applications. At the same time, uniapp also supports jumps between various components and pages, which is very convenient and practical. This article will focus on the methods and precautions for jumping to the page using the uniapp component.

1. Methods for uniapp components to jump to pages

In uniapp, there are many ways for components to jump to pages, including routing jumps, event listening, navigation bar buttons, etc. . Below we will introduce these methods in detail.

  1. Route jump

You can jump to the specified page through route jump. In uniapp, you can use vue-router to implement route jump.

First, create a vue-router instance in the project and configure routing.

import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

const router = new VueRouter({
  routes: [
    {
      path: '/home',
      name: 'Home',
      component: Home
    },
    {
      path: '/detail/:id',
      name: 'Detail',
      component: Detail
    }
  ]
})

export default router

In the above route, there are two pages, one is the Home component, which is displayed when the route is "/home"; the other is the Detail component, which is displayed when the route is "/detail/:id". The :id is a dynamic parameter, indicating the data that needs to be passed when jumping to the details page.

Next, use $router in the component to perform routing jumps.

// Home.vue
export default {
  methods: {
    jumpToDetail(id) {
      this.$router.push('/detail/' + id)
    }
  }
}

// Detail.vue
export default {
  mounted() {
    const id = this.$route.params.id
  }
}

In the Home component, jump to the Detail component by calling the jumpToDetail method and pass an id parameter. In the Detail component, the passed parameters can be obtained through this.$route.params.id.

  1. Listening to events

By listening to events, jump events can be processed inside the component.

// Home.vue
export default {
  methods: {
    jumpToDetail(id) {
      this.$emit('jumpToDetail', id)
    }
  }
}

// Detail.vue
export default {
  mounted() {
    this.$on('jumpToDetail', id => {
      // 处理跳转事件
    })
  }
}

In the Home component, trigger the custom "jumpToDetail" event through $this.emit and pass an id parameter. In the Detail component, you can listen to the "jumpToDetail" event through this.$on and get the passed parameters.

  1. Navigation bar button

uniapp also supports page jumps through the navigation bar button.

// uniui组件库中的uni-nav-bar组件
<template>
  <uni-nav-bar @click-left="goBack" @click-right="jumpToDetail" :title="title" :left-text="leftText" :right-text="rightText"></uni-nav-bar>
</template>

In the component, you can use the uni-nav-bar component to implement the navigation bar, and monitor the click event of the left button through @click-left, and monitor the click event of the right button through @click-right. Page jump.

2. Notes

When using the above methods, you need to pay attention to the following points:

  1. Make sure that the target page has been registered in the route.
  2. When routing jumps, you need to ensure that the jump path is correct, and you need to pay attention to the processing of dynamic parameters.
  3. Navigation bar buttons can only be used in pages with navigation bars, and components need to be written from the component library or by yourself.

In short, in uniapp, it is very convenient for components to jump to the page. Developers can choose the most appropriate jump method according to their own needs. I hope this article can be helpful to everyone.

The above is the detailed content of How to jump to the page in uniapp component. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn