Angular MediaObserver与Observer的区别是什么?
在做了一些搜索之后,我意识到我应该使用这个库来让以材料为主题的UI响应(如回答所示)。根据,该库提供了Angular MediaObserver与Observer的区别是什么?,angular,responsive-design,angular-material,media-queries,angular-cdk,Angular,Responsive Design,Angular Material,Media Queries,Angular Cdk,在做了一些搜索之后,我意识到我应该使用这个库来让以材料为主题的UI响应(如回答所示)。根据,该库提供了MediaObserver类,以编程方式检测媒体查询激活 我使用了material schematics命令- ng g @angular/material:navigation shell/layout 要添加Sidenav组件,请注意以下生成的代码- 导出类布局组件{ isHandset$:Observable=this.breakpointObserver.observe(Breakpo
MediaObserver
类,以编程方式检测媒体查询激活
我使用了material schematics命令-
ng g @angular/material:navigation shell/layout
要添加Sidenav
组件,请注意以下生成的代码-
导出类布局组件{
isHandset$:Observable=this.breakpointObserver.observe(Breakpoints.Handset).pipe(
映射(result=>result.matches),
shareReplay()
);
构造函数(私有断点观察者:断点观察者){}
}
它使用@angular/cdk/layout
包中的断点观察者
类和预定义的断点
,来检测视口更改。而这个人说-
layout包提供了构建响应性UI的实用程序
对屏幕大小的变化做出反应
因此,显然,有两种不同的库可用于使以材料为主题的UI响应,它们使用不同的方法。(如果我错了,请纠正我)
我想知道-
- 从使用角度来看,这两个库/包之间有什么区别,即何时使用哪个库/包
是否在引擎盖下使用MediaObserver
- 如果我使用Flex布局,我应该完全避免使用
实用程序吗?在这方面是否有一些最佳实践可供遵循@angular/cdk/Layout
根据
MediaObserver
的源代码,它没有在引擎盖下使用断点观察者。它使用本机Window.matchMedia()
API