[Vue3]编程式路由导航——脱离<RouterLink>实现路由跳转

News.vue

<template>
    <div class="news"> 
        <ul>
            <li v-for="news in newsList" :key="news.id">

                <RouterLink
                    :to="{
                        path:'/news/detail',
                        query:{
                            id:news.id,
                            title:news.title,
                            content:news.content,
                        }
                    }"
                >
                    {{ news.title }}
                </RouterLink>

                <button @click="showDetail(news)">Detail</button>

            </li>
        </ul>

        <RouterView></RouterView>

    </div>
</template>

<script setup lang="ts" name="News">
    import {reactive} from 'vue'
    import {RouterLink, useRouter} from 'vue-router'

    const newsList = reactive(
        [
            {id:'1', title:'title1', content:'content1'},
            {id:'2', title:'title2', content:'content2'},
            {id:'3', title:'title3', content:'content3'}
        ]
    )
    
    // 接口-限制news
    interface NewsInter {
        id:string,
        title:string,
        content:string
    }

    const router = useRouter() // 负责整个应用路由管理的路由器

    function showDetail (news:NewsInter) {
        router.push({ // push类似于routerLink标签的to
            path:'/news/detail',
            query:{
                id:news.id,
                title:news.title,
                content:news.content
            }
        })
    }
</script>

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值