我在Angular上阅读了一些关于Change Detection
的好文章,并对它是什么以及它是如何工作有了很好的理解。但是到目前为止我读过的每篇文章都只关注Change Detection
当某个事件发生在组件上或某些input
属性发生变化时等等。我还没找到任何关于发生的事情的文章当route
发生变化时? Change Detection
在这种情况下如何运作?此外,Angular会立即将所有HTML / DOM更新推送到浏览器,还是在发现任何DOM更新后立即不断地为浏览器提供服务?
答案 0 :(得分:3)
路由不会触发更改检测。它唯一能够改变检测的是marking for check路由器插座组件被激活:
public IQueryable<Order> GetOrdersAsQuerable()
{
IEnumerable<Order> qry= GetOrders(); //using Query<T>
//use the built-in extension method AsQueryable in System.Linq namespace
return qry.AsQueryable();
}
路由器由一些事件UI或其他(setTimeout,XHR)等导航,这些事件由NgZone截获,并且一旦代码完成执行变更检测过程就会启动。
此外,Angular会立即将所有HTML / DOM更新推送到浏览器 或者它一发现就一直在不断地为浏览器提供食物 DOM更新?
它逐个元素地逐个元素地更新DOM元素。有关变化检测的最全面的解释,请阅读以下提到的所有文章: