前言: 从列表页跳转详情页的时候,如果不将session保存下来,则在详情页刷新时,会导致无数据,因为在跳转的时候将商品id传入到了详情页,但刷新之后id就不在了,所以要将id进行持久化的存储
// 在列表页点击跳转时,需要路由携带参数进行跳转,将商品id传给详情页,这个时候就要给sessionStorage把这个id值传过去
godetail(id){
this.$router.push({'name':'detail',params:{'id':id}})
sessionStorage.setItem('ydid',id)
},
// 在详情页加载的时候
mounted(){
let id = this.$route.params.id // 拿到当前商品的id
if(id==undefined && sessionStorage.ydid==undefined){
this.$router.push('list')
return
}
// path("goods/<int:id>",views.GoodsView.as_view(),name="goods")
let url = "/api/goods/goods/"+(id?id: sessionStorage.ydid )
this.$axios.get(url).then((res)=>{
console.log(res.data)
this.detailForm.title = res.data.name
this.detailForm.title_en = res.data.en_name
this.detailForm.price = res.data.price
this.detailForm.desc = res.data.desc
this.span_object = res.data.color
// this.ImgUrl = res.data.color
// 设置图片 因为图片有好多张
let imgurl = []
for(let item of res.data.img){
let obj = []
obj.url = item.img
imgurl.push(obj)
}
this.imgUrl = imgurl
this.ImgUrl = imgurl[0]['url']
})
},
ok,到这里既可以几无忌惮的在详情页进行数据刷新