路由传参

安装VueRouter4

npm install vue-router@4 -S

src/router.js

//引入路由对象
import { createRouter, createWebHashHistory} from "vue-router"

//引入组件
import home from './components/home.vue'
import about from './components/about.vue'
import solt from './components/solt.vue'
// 创建路由
export default createRouter({
    history: createWebHashHistory(), //hash路由模式
    linkExactActiveClass: 'active',  //点击路由跳转的底部样式标量
    //路由列表
    routes: [
        {
            path: '/',
            name: 'home',
            component: home
        },
        {
            path: '/about/:id',
            name: 'about',
            component: about
        },
        {
            path: '/solt',
            name: 'solt',
            component: solt
        },
    ]
})

入口文件引入

main.js

import router from './routers/index.js'
createApp(App)
.use(router) // 路由挂载
.mount('#app')

路由跳转

组件home

<template>
  <div>
    <button @click="toAbout">跳转到About</button>
    <button @click="toAbout2">跳转到solt</button>
  </div>
</template>
<script>
import { useRouter } from 'vue-router'

export default {
  name: 'Home',
  setup() {
    const router = useRouter()
    const toAbout = () => {
      router.push({
        name: 'about',
        params: {
          id: 100,
        },
      })
    }

    const toAbout2 = () => {
        router.push({
          path:'/solt',
          query: {
            id: 100,
          },
        })
      }

    return {
      toAbout,
    }
  },
}
</script>

组件about

<template>
  <div class="about">
    <h1>about</h1>
  </div>
</template>
<script>
import { useRoute } from 'vue-router'

export default {
  name: 'about',
  setup() {
    const route = useRoute()
    console.log('99999999', route.params)
  },
}
</script>

组件solt

<template>
  <div class="solt">
    <h1>about</h1>
  </div>
</template>
<script>
import { useRoute } from 'vue-router'

export default {
  name: 'solt',
  setup() {
    const route = useRoute()
    console.log('99999999', route.query)
  },
}
</script>
powered by GitbookEdit Time: 2024-06-06 18:25:41