vue 实现详情页面伪静态化,用日期当动态路由

路由设置

下面展示一些 内联代码片

//path用这种写法是这个思路实现伪静态的核心
{
    path: '/news/:detailId',
    name: '文章详情',
    component: () => import('@/views/consultDetails')
}

列表页面跳转

toDetail(id,createdDate) {
   // createdDate是文章生成日期
   // id是文章id
   this.$router.push({name: '文章详情', params: {detailId: createdDate+id + '.html'}})
}

详情页面

//页面路径为 http://localhost:8081/news/2022031116560146.html
//2022031116560146由日期和id组成 我们需要把id提出来
created() {
    let detailId = this.$route.params.detailId.slice(14);
    let id = detailId.split(".");
    //获取文章详情数据
    this.getList(id[0]);
}

以上伪静态需求已经完成,但是这里会有一个坑,当你同一个路由的时候,只是参数变化了,变化后需要手动刷新,数据才出来,显然是达不到需求的

使用vue的watch监测路由变化,刷新页面数据
created() {
  let detailId = this.$route.params.detailId.slice(14);
  let id = detailId.split(".");
  this.getList(id[0]);
},
watch: {
  // 深度监听路由改变事件
  $route: {
    handler(val, oldVal) {
      let detailId = val.params.detailId.slice(14);
      let id = detailId.split(".");
      this.getList(id[0]);
    },
    deep: true,
    immediate: true,
  },
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值