zoukankan      html  css  js  c++  java
  • Angular 学习笔记 ( CDK

    简单说就是 js 的 media query. 

    1. BreakpointObserver 

    const layoutChanges = this.breakpointObserver.observe([
      '(orientation: portrait)',
      '(orientation: landscape)',
    ]);
    
    layoutChanges.subscribe(result => {
      updateMyLayoutForOrientationChange();
    });

    ng 还包装了一个 observe 方便我们监听 view port 的变化. 

    此外 ng 也依据 material 的标准提供了一个 enum 方便我们写匹配. 

    export const Breakpoints = {
      Handset: '(max- 599px) and (orientation: portrait), ' +
               '(max- 959px) and (orientation: landscape)',
      Tablet: '(min- 600px) and (max- 839px) and (orientation: portrait), ' +
              '(min- 960px) and (max- 1279px) and (orientation: landscape)',
      Web: '(min- 840px) and (orientation: portrait), ' +
           '(min- 1280px) and (orientation: landscape)',
    
      HandsetPortrait: '(max- 599px) and (orientation: portrait)',
      TabletPortrait: '(min- 600px) and (max- 839px) and (orientation: portrait)',
      WebPortrait: '(min- 840px) and (orientation: portrait)',
    
      HandsetLandscape: '(max- 959px) and (orientation: landscape)',
      TabletLandscape: '(min- 960px) and (max- 1279px) and (orientation: landscape)',
      WebLandscape: '(min- 1280px) and (orientation: landscape)',
    };

    2. MediaMatcher

    这个是底层服务,breakpoint 就是建立在这个之上的. 

    它没有 observe 只能单纯匹配 media query, 而它的实现原理就是调用了 dom api Window.matchMedia.

    所以到这里可以体会到, cdk 帮我们解决了调用 dom api 的烦恼. 写 ui 组件操作 dom 是必然的. 而兼容跨平台问题也是必然的. 

    cdk 的目的就是要减轻我们这方面的麻烦. 

  • 相关阅读:
    channels的使用
    paramiko模块(远程操作服务器)
    GIT版本管理工具教程
    Python中的魔术方法详解(双下方法)
    Django中Q查询及Q()对象
    Python3操作Excel
    漏洞复现环境集锦-Vulhub
    CVE-2019-0193 远程命令执行-漏洞复现
    Weblogic-SSRF 漏洞复现
    CVE-2020-0796 永恒之蓝?
  • 原文地址:https://www.cnblogs.com/keatkeat/p/7821180.html
Copyright © 2011-2022 走看看