看似这个问题是无解的,组件传值,值没变,然后启用了keep-alive,生命周期函数,只有初次有效。这时候该怎么去解决这个问题呢?
思路: 我们让传值的这个字段发生变化,并且只要操作了,就让他与众不同。
怎么与众不同呢,拼接随机数? 随机数也是可以相同的; 我们可以拼接时间。在传值前进行拼接,这时候永远都会执行watch监听,然后在watch监听中进行截取。
父组件中:(引入子组件,并传值)
子组件watch监听中:
这里注意,如果界面进行缓存了,在tab切换,生命周期失效的时候,在父组件的钩子函数中进行一次截取再拼接(tab切换数据是被keep-alive进行缓存了的)
父组件中添加路由钩子函数,对缓存的值进行改变
本文是利用了一个小技巧,传值的唯一性来解决的。 如果您有更好的方法,留言分享下,谢谢!