anchor.diff:    and provide the `preserveQueryParams` and `preserveFragment` to pass along the current query parameters
     and fragment to the next route.
   
  +  还可以再导航之间**保留**查询参数和片段，而无需再次再导航中提供。在`LoginComponent`中的`router.navigate`方法中，添加第二个参数，该**对象**提供了`preserveQueryParams`和 `preserveFragment`，用于传递到当前的查询参数中并为下一个路由提供片段。
  +
   +makeExcerpt('app/login.component.ts', 'preserve')
   
   :marked
  
positive.code: :marked
    In our `Hero Detail` and `Crisis Detail`, we waited until the route was activated to fetch our respective hero or crisis.
  
    
  
    This worked well for us, but we can always do better.
    If we were using a real world api, there may be some delay in when the data we want to display gets returned.
    We don't want to display a blank component until the data loads in this situation.
  
    We'd like to pre-fetch data from the server so it's ready the moment our route is activated.
    We'd also like to handle the situation where our data fails to load or some other error condition occurs.
  
negative.code:   Optional parameters are the ideal vehicle for conveying arbitrarily complex information during navigation.
    Optional parameters aren't involved in pattern matching and affords enormous flexibility of expression.
  
    在导航时，可选参数提供复杂信息的理想工具。
    可选参数不会接触模式匹配，它还可以是非常灵活的表达式。
  
    The Component Router supports navigation with optional parameters as well as required route parameters.
    We define _optional_ parameters in an *object* after we define our required route parameters.
  
    组件路由器支持导航到可选参数，也支持导航到必需路由参数。
    在**对象**中，我们先定义必需的路由参数，再定义可选参数。
  
    ### Route Parameters: Required or Optional?
  
  