Home > Web Front-end > Vue.js > body text

How to configure Vue3 routing, perform route jumps and pass parameters?

王林
Release: 2023-05-09 23:28:16
forward
4453 people have browsed it

    1. Install the routing

    npm i vue-router
    Copy after login

    2. Write the routing that needs to be displayed

    Create the pages folder in the src directory and create it inside The two vue files are named student.vue, person.vue

    How to configure Vue3 routing, perform route jumps and pass parameters?

    Write two vue files respectively

    student.vue and person.vue

    <template>
        学生
    </template>
     
    <script setup>
     
    </script>
     
    <style scoped lang="less">
     
    </style>
    Copy after login
    <template>
    人类
    </template>
     
    <script setup>
     
    </script>
     
    <style scoped lang="less">
     
    </style>
    Copy after login

    3. Configure routing

    Configure the router.js file in the src directory

    import { createRouter,createWebHistory } from "vue-router";
    const router=createRouter({
        history:createWebHistory(),
        routes:[
            {
                component:()=>import(&#39;../pages/person.vue&#39;),
                name:&#39;person&#39;,
                path:&#39;/person&#39;
            },
            {
                component:()=>import(&#39;../pages/student.vue&#39;),
                name:&#39;student&#39;,
                path:&#39;/student&#39;
            },
            {
                //实现路由重定向,当进入网页时,路由自动跳转到/student路由
                redirect:&#39;/student&#39;,
                path:&#39;/&#39;
            }
        ]
    })
    export default router
    Copy after login

    3. Use routing

    Use routing in main.js

    import { createApp } from &#39;vue&#39;
    import App from &#39;./App.vue&#39;
    import router from &#39;./router&#39;
     
    createApp(App).use(router).mount(&#39;#app&#39;)
    Copy after login

    Display routes in app.vue, use router-link to jump routes, to represents which route to jump to

    <template>
      <router-view></router-view>
      <hr>
      <div>
        <router-link to="/student">到student路由</router-link>
        <br>
        <router-link to="/person">到person路由</router-link>
      </div>
    </template>
     
    <script setup>
     
    </script>
    <style scoped>
     
    </style>
    Copy after login

    The effect is as shown in the figure below, click (to student route) or ( to person routing) will perform route jump

    How to configure Vue3 routing, perform route jumps and pass parameters?

    4, programmatic routing

    Declarative routing performs route jump through router-link, programmatic routing Implemented through functions

    Modify app.vue, vue3 uses a combined API, you need to introduce

    useRouter, useRoute, and

    const router=useRouter()

    const route=useRoute()

    <template>
      <router-view></router-view>
      <hr>
      <div>
        <button @click="toStudent">到student路由</button>
        <br>
        <button @click="toPerson">到person路由</button>
      </div>
    </template>
     
    <script setup>
    import {useRouter,useRoute} from &#39;vue-router&#39;
    const router=useRouter()
    const route=useRoute()
    const toStudent=()=>{
      router.push(&#39;student&#39;)
    }
    const toPerson=()=>{
      router.push(&#39;person&#39;)
    }
    </script>
    <style scoped>
     
    </style>
    Copy after login

    Route hop through router.push Transfer

    Use router router between routes, and use toute route for the current route

    The result is as shown in the figure below, realizing programmatic route jump

    How to configure Vue3 routing, perform route jumps and pass parameters?

    If no alias is set when configuring routing, you need to jump through the router.push configuration object

    const toStudent=()=>{
      router.push({
        path:&#39;/student&#39;
      })
    }
    const toPerson=()=>{
      router.push({
        path:&#39;/person&#39;
      })
    }
    Copy after login

    5. Routing parameters

    5. 1Query parameter transfer

    Pass the id and name to the student route

    const toStudent=()=>{
      router.push({
        path:&#39;/student&#39;,
        query:{
          id:1,
          name:&#39;张三&#39;
        }
      })
    }
    Copy after login

    The student route receives the query parameter

    <template>
        学生组件
        <div>{{data.query}}</div>
    </template>
     
    <script setup>
    import { reactive } from &#39;vue&#39;;
    import {useRouter,useRoute} from &#39;vue-router&#39;
    const route=useRoute()
    let data=reactive({
        query: route.query
    })
    </script>
    Copy after login

    The effect is as shown in the figure below

    How to configure Vue3 routing, perform route jumps and pass parameters?

    5, 2 Pass params parameters

    Assuming that params parameters are passed to person routing, they need to be modified during routing configuration

    You need to use name to pass params parameters Specify the route

    const toPerson=()=>{
      router.push({
        name:&#39;person&#39;,
        params:{
          keyword:2
        }
      })
    }
    Copy after login

    At the same time, the routing configuration needs to be modified. Assuming that the keyword is passed,

    needs to use placeholders and keywords in the path

    ? Indicates that it can be passed or not

    {
          component:()=>import(&#39;../pages/person.vue&#39;),
          name:&#39;person&#39;,
          path:&#39;/person/:keyword?&#39;
    },
    Copy after login

    Receive params parameter in person.vue

    <template>
        人类组件
        <div>{{data.params.keyword}}</div>
    </template>
     
    <script setup>
    import { reactive } from &#39;vue&#39;;
    import {useRouter,useRoute} from &#39;vue-router&#39;
    const route=useRoute()
    let data=reactive({
        params: route.params
    })
    </script>
    Copy after login

    The effect is as follows

    How to configure Vue3 routing, perform route jumps and pass parameters?

    6 , Sub-routing configuration

    Add sub-components (stu1, stu2 components) to the student route

    How to configure Vue3 routing, perform route jumps and pass parameters?

    The path of the sub-component does not contain /

    {
                component:()=>import(&#39;../pages/student.vue&#39;),
                name:&#39;student&#39;,
                path:&#39;/student&#39;,
                children:[
                    {
                        path:&#39;stu1&#39;,
                        name:&#39;stu1&#39;,
                        component:()=>import(&#39;../pages/stu1.vue&#39;)
                    },
                    {
                        path:&#39;stu2&#39;,
                        name:&#39;stu2&#39;,
                        component:()=>import(&#39;../pages/stu2.vue&#39;)
                    },
                    {
                        path:&#39;&#39;,
                        component:()=>import(&#39;../pages/stu1.vue&#39;)
                    }
                ]
            }
    Copy after login

    Write stu1 component

    <template>
    stu1
    </template>
     
    <script setup>
     
    </script>
     
    <style scoped lang="less">
     
    </style>
    Copy after login

    Write stu2 component

    <template>
    stu2
    </template>
     
    <script setup>
     
    </script>
     
    <style scoped lang="less">
     
    </style>
    Copy after login

    Display subcomponents in the student component

    <template>
        学生组件
        <div>{{data.query}}</div>
        子组件展示
        <router-view></router-view>
        <router-link to="/student/stu1">到stu1</router-link>
        <router-link to="/student/stu2">到stu2</router-link>
    </template>
     
    <script setup>
    import { reactive } from &#39;vue&#39;;
    import {useRouter,useRoute} from &#39;vue-router&#39;
    const route=useRoute()
    let data=reactive({
        query: route.query
    })
    </script>
    Copy after login

    By using router -link for routing jump, you can also jump through programmatic routing

    to="/student/stu1" You need to use the complete path to jump

    Show results

    How to configure Vue3 routing, perform route jumps and pass parameters?

    The above is the detailed content of How to configure Vue3 routing, perform route jumps and pass parameters?. For more information, please follow other related articles on the PHP Chinese website!

    Related labels:
    source:yisu.com
    Statement of this Website
    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
    Popular Tutorials
    More>
    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template
    About us Disclaimer Sitemap
    php.cn:Public welfare online PHP training,Help PHP learners grow quickly!