Vue跳转同一界面多次,使用不同数据进行渲染

本文介绍了在Vue中如何处理多次跳转同一个商品详情页时,确保每次都能正确渲染对应商品的数据。通过分析在data、created、activated以及watch中处理数据的不同效果,提出了使用路由监听结合activated的方法来解决这个问题。强调了activated在新打开页面时执行的特点,以及watch在页面重复打开时的作用。
摘要由CSDN通过智能技术生成

这是经常遇到的一个问题,之前没有注意,有一天进行code Review提了出来。

举个栗子:网上商城想要看商品的详情,就需要通过列表页点击,进入详情页。详情页的数据处理是通过传过来的商品Id获取信息进行绑定渲染。

如果不进行处理,多次打开详情页就会出现问题。

1、如果是在详情页的data中直接进行Id获取,

 

  然后在create中进行数据获取,那么在不关详情页并多次打开详情页的时候,之后打开的详情页数据都是和第一页相同的,这是因为data是在$vm实例创建之前就会进行赋值,

  而在第一次打开页面时,就已经创建了实例并对data进行赋值了,之后每次打开都不会再创建;

2、在create中获取传过来的Id,然后调用方法获取数据,这种情况其实和1、原理是差不多的;

3、使用activated(这是和keep-alive协同使用的一个属性,如果没有设置keep-alive ,activated是不存在的),并在activated中进行Id获取和数据方法调用。

  activated和created什么区别呢?created是创建vm实例时执行,而activated更像是每次新打开

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值