vue利用router-link 传参 和 获取参数的方式

     本章只谈如何利用router-link传递query参数.暂时不谈编程导航传参.两者差不多.今天把router-link这种传参和获取参数的形式讲解清楚.希望对大家有帮助.

    假如目前我们现在需要做一个项目.路由的设计是这样的:

               主页:www.wangyiyinyue.com;  首页负责展示专辑封面;点击进去专辑详情页面;

               专辑详情页面路由: www.wangyiyinyue.com/zhuanji?zhuanjiName=liudehua&zhuanjiId=12456;

 这个时候大概的流程是这样的:   输入网址 首先进入主页; 用户点击某一张专辑;此时需要携带上参数,也就是上面的zhangjiName和zhuanjiId ;进入到专辑详情页;此时需要获取到对应的参数再发送ajax请求;把专辑详情页面的内容请求回来; 

 

        为什么要携带上参数呢? 因为进入到书籍详情后,发送ajax需要请求你主页点的对应的那张专辑;所以需要参数来确定是哪种专辑;

 

 首先说传递参数; 利用router-link传递;

    书写方式:

<router-link :to="{path: '详情页', query: {zhuanjiName: item.zhuanjiName, zhuanjiId: item.zhuanjiId}}"     去专辑详情页按钮   </router-link>

我这里写的是 item.zhuanjiName    具体怎么获取;需要看你的数据格式; 然后进入专辑详情后  url会变成这样:

www.wangyiyinyue.com/zhuanji?zhuanjiName=liudehua&zhuanjiId=12456;

那我们在专辑详情页怎么获取url上的数据呢?也就是主页传递来的数据;

通过this.$route.query; 来获取; 在console面板输出;query是一个对象; 格式应该是这样的:

{zhuanjiName:name,zhuanjiId:id};  这个时候你就可以打点调用参数了;

另外这个地方有一个特别需要的注意的点,看好了:

this.$route.query    不是   this.$router.query;

就差一个字母   千万不要写错.写错了获取不到参数;他俩不是同一个对象;不过this.$router对象里面也可以获取到我们传递的参数;不过需要在打点调用currentRoute对象才能得到query;为了大家看的清楚点儿;我把图片传上去; 请大家看图

 

第一个对象是this.$route;第二个对象是this.$router;  所以第一个对象我们可以直接再打点获取到query;而第二个对象需要再打点一层currentRoute;  一般我们都是用第一种;  所以这里一定要注意;

 

今天先写到这儿吧; 下次再聊点儿其他的;有问题大家随时留言;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vue中的router-link组件可以用来实现页面跳转,并且可以传递参数。具体步骤如下: 1. 在router/index.js中定义路由: ``` import Vue from 'vue' import Router from 'vue-router' import Home from '@/components/Home' import Detail from '@/components/Detail' Vue.use(Router) export default new Router({ routes: [ { path: '/', name: 'Home', component: Home }, { path: '/detail/:id', name: 'Detail', component: Detail } ] }) ``` 2. 在Home组件中使用router-link传递参数: ``` <template> <div> <ul> <li v-for="item in list" :key="item.id"> <router-link :to="{ name: 'Detail', params: { id: item.id } }">{{ item.title }}</router-link> </li> </ul> </div> </template> <script> export default { data() { return { list: [ { id: 1, title: '文章1' }, { id: 2, title: '文章2' }, { id: 3, title: '文章3' } ] } } } </script> ``` 3. 在Detail组件中获取参数: ``` <template> <div> <h1>{{ title }}</h1> <p>{{ content }}</p> </div> </template> <script> export default { data() { return { title: '', content: '' } }, mounted() { const id = this.$route.params.id // 根据id获取文章详情 // ... this.title = '文章标题' this.content = '文章内容' } } </script> ``` 这样就可以实现通过router-link传递参数并在目标组件中获取参数的功能了。 ### 回答2: Vue.js是一种前端JavaScript框架,能够帮助我们构建交互式的单页应用程序。 在Vue.js中,vue-router是一个提供路由系统的官方库,它允许我们在应用程序中轻松导航和管理状态。而router-linkvue-router中提供的一个组件,它可以在应用程序的路由之间进行自然的导航。我们可以使用vue-router-link来传递参数并在目标组件中使用它们。 在使用Vue Router进行组件之间导航时,我们可以通过router-link组件来创建导航链接,如下所示: ``` <router-link :to="{ path: '/blog', query: { id: 1 }}">Blog</router-link> ``` 在上面的代码中,我们传递了一个path属性,它是目标路径。我们还通过query属性传递了一个参数id,该参数的值为1。这个参数可以在目标路径的组件中使用。 当我们点击上面的链接时,Vue Router会自动导航到应用程序的目标路径。当路由器在目标路径中查找链接时,它将公开路由上的参数,以便目标组件可以使用它们。我们可以在目标组件中通过this.$route.query来访问这些参数。 我们可以在目标组件的created钩子中使用下面的代码来访问query参数: ``` created() { console.log(this.$route.query.id) } ``` 在上面的代码中,我们使用console.log()函数将传递的id参数打印到控制台中。我们还可以在组件中使用computed属性来访问query参数。 这是如何使用Vue Router通过router-link组件将参数传递到目标组件并在目标组件中使用它们的示例。这些功能可以让我们轻松地在Vue.js应用程序之间进行导航和交互。 ### 回答3: Vue中使用router-link进行路由跳转时,常常需要传递参数,以便在目标组件中进行数据渲染等操作。下面介绍如何使用Vue router-link传参并使用。 1. 传递参数 Vue router-link传递参数方式有两种:query和params。 (1)query方式 query方式传递参数时,参数不会在URL中显示,可以是任意类型的数据。 在template中使用: ``` <router-link :to="{name: 'target', query: {id: 1}}">跳转</router-link> ``` 在js中使用: ``` this.$router.push({name: 'target', query: {id: 1}}) ``` (2)params方式 params方式传递参数时,参数会在URL中显示,只能是字符串类型的数据。 在template中使用: ``` <router-link :to="{name: 'target', params: {id: 1}}">跳转</router-link> ``` 在js中使用: ``` this.$router.push({name: 'target', params: {id: 1}}) ``` 2. 在目标组件中使用参数 目标组件中需要获取传递过来的参数,可以使用$route对象获取。 (1)query方式 在目标组件中获取query方式传递的参数: ``` this.$route.query.id ``` (2)params方式 在目标组件中获取params方式传递的参数: ``` this.$route.params.id ``` 以上就是Vue router-link传参并使用的方法介绍,使用起来非常简单,只需要注意传参方式以及目标组件中参数获取方式即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值