vue跳转到详情页的两种实现方法

 更新时间:2023年06月12日 14:47:46   作者:#小裁  
最近接触了vue项目,下面这篇文章主要给大家介绍了关于vue跳转到详情页的两种实现方法,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

路由跳转过程中的参数传递

业务场景:在电影列表页面中点击某一项的点击名称,跳转到电影详情页,查看选中电影的详细信息。这个过程就需要在跳转的同时传递电影ID作为参数,这样,详情页才可以获取到选中项的ID,从而发送请求,查询详细信息。

1. 准备一个电影列表页:List.vue 一个电影详情页:Detail.vue

2. 配置路由:

a. 当访问地址:http://localhost:8080/list时,看到列表页。

b. 当访问地址:http://localhost:8080/detail时,看到详情页。

3. 注意:需要在App.vue中添加占位符:

路由跳转过程中的参数传递方式1

通过在请求资源路径后用?拼接查询字符串的方式,传递参数:

<router-link to="/detail?id=7&name=zs">xx</router-link>

方法一: 问号版

List.vue列表页: 列表项填入router-link标签

  <template>
  <tbody>
  <tr v-for="(item, i) in data.result" :key="item.id">
  <td>
  <router-link :to="`/detail?id=${item.id}`">//问号版的
  {{item.title}}
</router-link>
  </td>
  </tr>
  </tbody>
  </template>

detail.vue详情页:

 <template>
  <div>
  <h2>电影详情页</h2>
  <p>电影名称:{{movieDate.title}}</p>
  <p>电影类型:{{movieData.type}}</p>
  </div>
  </template>
  <script>
  import  myaxios from './http/MyAxios'
export default{	
  data( ){
    return{
      movieData:{ },//绑定电影对象
    }
  },
  mounted( ){  //当前主键已经挂载到DOM上,(已展示)时被vue自动调用
    console.log('生命周期方发mounted被调用')
    let  id  = this.$router.query.id  //接收请求路径后的   ?key= value  格式的参数id
    console.log('接收到参数id:' + id)
    let url  = "https://web.codeboy.com/bmdapi/movie-info/query"
    myaxios.get(url,{ id }).then(res =>{
      console.log(res)  //res.data.data中存储了电影对象{ }
      this.movieDate = res.data.data
    })
  }
};
</script>

方法二:不带问号版的

<router-link to="/detail/7">xx</router-link>
this.$router.push('/detail/7')

目标页如何接收该参数?

1、配置路由:

{
path:'/detail/:id',
component: ( ) => import 'Detail.vue'
}

该路由的配置,将会匹配:

/detail/7    =>   id:7
/detail/123  =>   id:123
/detail/abc  =>   id:abc

vue将会自动封装路径参数,放入this.$route.params属性中。如下即可获取该参数:

mounted(){
  	let  id = this.$route.params.id
}

List.vue列表页: 列表项填入router-link标签

<template>
   <tbody>
        <tr v-for="(item, i) in data.result" :key="item.id">
          <td>
          <img  :src="item.cover"  width="60px"
			@click="$router.push(`/detail/${item.id}`)">
          </td>
        </tr>
      </tbody>
</template>

router/index.js配置路由页:

{
paht:  '/detail/:id',
name: 'detail',
component: ( ) =>import ('../Detail.vue')
}

detail.vue详情页:

<template>
<div>
<h2>电影详情页</h2>
<p>电影名称:{{movieDate.title}}</p>
<p>电影类型:{{movieData.type}}</p>
</div>
</template>
<script>
import  myaxios from './http/MyAxios'
   export default{	
data( ){
return{
movieData:{ },//绑定电影对象
}
},
mounted( ){  //当前主键已经挂载到DOM上,(已展示)时被vue自动调用
console.log('生命周期方发mounted被调用')
let  id  = this.$router.params.id  //接收路径参数: /detail/id   格式的参数id
console.log('接收到参数id:' + id) 
let url  = "https://web.codeboy.com/bmdapi/movie-info/query"
myaxios.get(url,{ id }).then(res =>{
console.log(res)  //res.data.data中存储了电影对象{ }
this.movieDate = res.data.data
})
}
};
</script>

总结

到此这篇关于vue跳转到详情页的两种实现方法的文章就介绍到这了,更多相关vue跳转到详情页内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue2实现数字滚动翻页效果的示例代码

    Vue2实现数字滚动翻页效果的示例代码

    这篇文章主要为大家详细介绍了Vue2如何实现数字滚动翻页效果,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下
    2024-03-03
  • vue结合element-ui使用示例

    vue结合element-ui使用示例

    这一篇主要是创建一个vue项目并结合饿了么框架element-ui的文章。文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • vue结合el-table实现表格行拖拽排序(基于sortablejs)

    vue结合el-table实现表格行拖拽排序(基于sortablejs)

    这篇文章主要介绍了vue结合el-table实现表格行拖拽排序(基于sortablejs),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-01-01
  • vue组件间通信六种方式(总结篇)

    vue组件间通信六种方式(总结篇)

    组件是 vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用。这篇文章主要介绍了vue组件间通信六种方式,需要的朋友可以参考下
    2019-05-05
  • vue实现对highlight-current-row方式整行选中后修改默认背景颜色

    vue实现对highlight-current-row方式整行选中后修改默认背景颜色

    这篇文章主要介绍了vue实现对highlight-current-row方式整行选中后修改默认背景颜色方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Vue中的Computed实现原理分析

    Vue中的Computed实现原理分析

    这篇文章主要介绍了Vue中的Computed实现原理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • vue组件与复用详解

    vue组件与复用详解

    组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。这篇文章主要介绍了vue组件与复用,需要的朋友可以参考下
    2018-04-04
  • vue中使用mockjs配置和使用方式

    vue中使用mockjs配置和使用方式

    这篇文章主要介绍了vue中使用mockjs配置和使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • 深入理解vue中的scoped属性

    深入理解vue中的scoped属性

    vue中的 scoped 属性,其实就是给每一个dom节点元素都添加了不重复的自定义属性(如:data-v-6810cbe5),本文给大家介绍vue中的scoped属性相关知识,感兴趣的朋友一起看看吧
    2023-12-12
  • vue 实现图片懒加载功能

    vue 实现图片懒加载功能

    这篇文章主要介绍了vue 实现图片懒加载功能的方法,帮助大家更好的理解和使用vue,感兴趣的朋友可以了解下
    2020-12-12

最新评论