如何解决对vue3的反应式实现感到困惑
在vue3的反应式implementation中,有一个effectStack。 我不明白,如果在push()之后立即弹出pop()的结果,为什么它必须是堆栈? effectStack的长度是否可能大于1?
try {
enableTracking()
effectStack.push(effect)
activeEffect = effect
return fn()
} finally {
effectStack.pop()
resetTracking()
activeEffect = effectStack[effectStack.length - 1]
}
解决方法
我相信这是因为效果会触发其他效果。
例如,一个path('flightdetails/',views.FlightDetailsListAPIView.as_view(),name='flightdetails'),
属性可以调出另一个computed
属性,在这种情况下,两个效果将同时运行。在那种情况下,“内部”效应要在“外部”效应完成之前运行,并且需要针对正确的效应注册依赖项。在运行“内部”效果时,暂时隐藏“外部”效果,然后在完成时恢复该效果。
因此,如果对computed
的调用导致递归返回到同一段代码,则长度可以大于1。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。