看似这个问题是无解的,组件传值,值没变,然后启用了keep-alive,生命周期函数,只有初次有效。这时候该怎么去解决这个问题呢?
思路: 我们让传值的这个字段发生变化,并且只要操作了,就让他与众不同。
怎么与众不同呢,拼接随机数? 随机数也是可以相同的; 我们可以拼接时间。在传值前进行拼接,这时候永远都会执行watch监听,然后在watch监听中进行截取。
父组件中:(引入子组件,并传值)


子组件watch监听中:

这里注意,如果界面进行缓存了,在tab切换,生命周期失效的时候,在父组件的钩子函数中进行一次截取再拼接(tab切换数据是被keep-alive进行缓存了的)
父组件中添加路由钩子函数,对缓存的值进行改变

本文是利用了一个小技巧,传值的唯一性来解决的。 如果您有更好的方法,留言分享下,谢谢!
本文介绍了一种解决Vue组件使用Keep-Alive缓存导致生命周期函数失效的问题。通过在父组件传值时拼接时间戳,确保每次传值的唯一性,从而触发子组件Watch监听,实现数据更新的有效响应。
1121

被折叠的 条评论
为什么被折叠?



