vue3路由跳转及传参

1.创建项目及路由

1.1 创建文件时记得勾选上vue-router,没有勾选也没有关系

// vue3安装命令
npm create vue@latest
// 以下选项可根据自己所需,进行选择,不懂就翻译
✔ Project name: … <your-project-name>
✔ Add TypeScript? … No / Yes
✔ Add JSX Support? … No / Yes
// 这里选Yes,自动配置路由
✔ Add Vue Router for Single Page Application development? … No / Yes
✔ Add Pinia for state management? … No / Yes
✔ Add Vitest for Unit testing? … No / Yes
✔ Add an End-to-End Testing Solution? … No / Cypress / Playwright
✔ Add ESLint for code quality? … No / Yes
✔ Add Prettier for code formatting? … No / Yes

Scaffolding project in ./<your-project-name>...
Done.
// 进入项目目录
> cd <your-project-name>
// 初始化配置
> npm i
// 项目运行命令
> npm run dev

1.2 如果以上选择的都是No的话,可以自己手动安装vue-router

npm install vue-router

2.配置路由 

2.1 安装完成过后,配置路由

如果使用了1.1中的方法,直接进入router文件夹配置路由即可

如果之前没有配置路由,在src下创建router文件夹,例如:src/router/index.js

import { createRouter, createWebHistory } from 'vue-router'

const routes = [
    // Home是父级
    {
        path: '/',
        name: 'Home',
        component: () => import('../views/home.vue'),
        // about是子级
        children: [
            {

                path: 'about',
                name: 'about',
                component: () => import('../views/about.vue'),
            }
        ]
    },
    {
        path: '/login',
        name: 'Login',
        component: () => import('../views/login.vue')
    }
]

const router = createRouter({
    history: createWebHistory(),
    routes
})

export default router

2.2 在main.js里面需要的配置

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import router from './router/index'

createApp(App).use(router).mount('#app')

 2.3 在App.vue文件中配置占位符

<template>
  // 路由视图
  <router-view></router-view>
</template>

 3.路由跳转

路由跳转页面的方式

3.1 router-link跳转

<template>
    <router-link to="./login">login</router-link>
</template>

3.2.1 useRouter跳转

<script setup>
import { useRouter } from "vue-router";
const router = useRouter()
const goto = () => {
    router.push('/login')
    // 或者这样写也可以
    // router.push({ path: '/login' })
}
</script>
<template>
    <button @click="goto">跳转</button>
</template>

3.2.2 或者根据name名称跳转

<script setup>
import { useRouter } from "vue-router";
const router = useRouter()
const goto = () => {
    router.push({name:'Login'})
}
</script>
<template>
    <button @click="goto">跳转</button>
</template>

4.路由传参

传参方式分别是:query和params

4.1 query传参

<script setup>
import { useRouter } from "vue-router";
const router = useRouter()
const goto = () => {
    router.push( {path: '/login',query:{val:'Hello World!'}})
</script>
<template>
    <button @click="goto">跳转</button>
</template>

在另一个vue文件中接收

<template>
    <h1>query参数--{
  {route.query.val}}</h1>
</template>
<script setup>
import { useRoute } from "vue-router";
const route=useRoute()
console.log(route.query.val);
</script>

4.2 params传参

在路由中配置动态路由

import { createRouter, createWebHistory } from 'vue-router'

const routes = [
    ......
    ......
    {
        path: '/login/:id',
        name: 'Login',
        component: () => import('../views/login.vue')
    }
]

const router = createRouter({
    history: createWebHistory(),
    routes
})

export default router

传入params参数 

<script setup>
import { useRouter } from "vue-router";
const router = useRouter()
const goto = () => {
    router.push( {path:'/login',params:{id:1}})
</script>
<template>
    <button @click="goto">跳转</button>
</template>

接收params参数

<template>
    <h1>params参数--{
  {route.params.id}}</h1>
</template>
<script setup>
import { useRoute } from "vue-router";
const route=useRoute()
console.log(route.params.id);
</script>

相关推荐

  1. vue3

    2023-12-16 11:30:02       37 阅读
  2. vue3传递参数: params接收不到?

    2023-12-16 11:30:02       16 阅读
  3. 【React】react-router-dom导航的

    2023-12-16 11:30:02       45 阅读
  4. vue3

    2023-12-16 11:30:02       8 阅读
  5. vue3

    2023-12-16 11:30:02       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-16 11:30:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-16 11:30:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-16 11:30:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-16 11:30:02       20 阅读

热门阅读

  1. 数据结构-数据结构导论

    2023-12-16 11:30:02       42 阅读
  2. Pydantic 中 validator 和 validators 的区别

    2023-12-16 11:30:02       39 阅读
  3. 短地址漏洞

    2023-12-16 11:30:02       33 阅读
  4. 2024 年科技领域的重大创新思想

    2023-12-16 11:30:02       51 阅读
  5. 在 docker 中安装 sam

    2023-12-16 11:30:02       37 阅读
  6. flutter Pageview组件

    2023-12-16 11:30:02       36 阅读
  7. 4-Docker命令之docker images

    2023-12-16 11:30:02       41 阅读
  8. ZooKeeper中bin目录4个脚本执行文件详解

    2023-12-16 11:30:02       32 阅读
  9. 在 C++ 中局部变量和全局变量

    2023-12-16 11:30:02       43 阅读