美文网首页
【Vue22】动态路由

【Vue22】动态路由

作者: 八宝君 | 来源:发表于2018-05-29 13:11 被阅读0次

当我们在做产品列表跳转到产品详情的时候,按照以往的思想,是以router-link来进行跳转,但是这样会多加一个a标签,而我们又不想多加一个标签,直接将router-link代替之前的div么?

样式又要重新写啊,,因为渲染出来,还是以a标签的形式,只是没有多增加一个标签了,这个时候我们可以用这个属性:

加一个tag:div
这样渲染出来的就是div,但是点击同样可以进行跳转,
:to动态绑定跳转路径为/detail/ + item.id,根据产品的不同id来跳转到不同的详情。
传递了参数
这样就实现了参数的传递,将id=002传入了过去,然后还要增加路由配置。
router/index.js增加配置项
路由配置
因为detail后面还会跟一个参数路径过来,所以这里选择用动态路由。
Vue里,通过/detail/后面加一个:id的形式,就是一个动态路径。'/detail/:id'
它的意思是,前面的路由必须是detail/,后面可以带一个参数,参数可以放到id变量里。

ajax获取动态路由的id

在页面上是这样来写的axios.get('/api/detail.json?id=' + this.$route.params.id)
到浏览器上看:

已经带了id发起了请求

这样实际上还是有点麻烦,可以换个写法。


这样分开写

效果是一样的。

请求数据

别忘了,本来商品详情应该根据id的不同,来重新渲染页面。但是因为我们使用了keep-alive,这样导致我们回到首页,再一次进入商品详情页的时候,不会再发起新的请求,直接从缓存中拿出内容。
除去我们之前说的在activated这个钩子里再发起一次ajax请求之外,我们还可以用另外一种方法。
App.vue这个组件内。
原本我们是将在router-view外层套了个keep-alive。导致所有的页面都有keep-alive,那可不可以让详情页面不是keep-alive呢?
可以的。

加一个exclude属性
keep-alive加一个exclude属性,然后将详情组件的名字写上去。

滚动行为

什么叫做滚动行为?点我点我
通俗的来说,你在首页如果滚动到最下方面,然后从这里进入一个另外一个页面,但是进入的时候默认在第二个页面的最下方。
怎么解决?
case啦,复制这样一段代码

scrollBehavior (to, from, savedPosition) {
  return { x: 0, y: 0 }
}

将这段代码复制到配置router的那里,也就是

这个目录下的这里
在文件的这里

相关文章

  • 【Vue22】动态路由

    当我们在做产品列表跳转到产品详情的时候,按照以往的思想,是以router-link来进行跳转,但是这样会多加一个a...

  • Vue 动态路由

    动态路由 动态路由传参

  • 动态路由 & 嵌套路由实例

    1.动态路由 注意:动态路由以‘:’开头。$route 参数表见 “ 动态路由 & 嵌套路由 ” 2.嵌套路由 注...

  • vue路由的介绍(二)--vue动态路由和get的传值

    vue动态路由和get的传值---->同属于路由的传参 1,vue动态路由: 动态路由的配置: ①,在配置路由时加...

  • 处理路由和权限映射element-admin

    你现在项目中如何处理路由和权限映射的? 动态路由分析动态路由流程图 动态路由源码分析生成动态路由的源码位于 src...

  • vue全家桶(2.5)

    3.8.动态路由匹配和路由组件传参 #3.8.1.动态路由匹配 动态路由意味着不固定,具有某种模式,我们希望通过某...

  • vue动态路由传值和get传值

    1、动态路由传值2、get传值 不同路由传值:动态路由 1、配置动态路由,main.js 2、在列表页NewsLi...

  • Vue常见面试题

    1.怎么定义vue-router的动态路由?怎么获取传递过来的动态参数? 何为动态路由?能够提供参数的路由即为动态...

  • vue中的路由

    vue中4中路由包含: 1、动态路由2、嵌套路由3、编程式路由4、命名式路由 1、动态路由 2、嵌套路由 3、编程...

  • this.$router.push的问题

    会匹配到‘/login’路由,但是 如果遇到动态路由会加载到动态路由后面。 所以不要忘了加'/'

网友评论

      本文标题:【Vue22】动态路由

      本文链接:https://www.haomeiwen.com/subject/qypnjftx.html