不吹不黑聊聊前端框架

本文为听 尤雨溪 的知乎 Live 不吹不黑聊聊前端框架 后的部分记录。


组件的分类

  • 接入型 container
  • 展示型
  • 交互型 比如各类加强版的表单组件,通常强调复用
  • 功能型 比如 <router-view><transition>,作为一种扩展、抽象机制存在

JSX 与模板区别

JSX 更自由,适合功能型组件;模板适合展示型组件。


路由

将 url 映射到组件树


web 应用、原生应用路由区别:

web 应用从一个 url 调到另一个 url,上一个 url 的状态被清空;原生应用一层一层的叠加。


主流的 CSS 方案

  • 跟 JS 完全解耦,靠预处理器和比如 BEM 这样的规范来保持可维护性,偏传统
  • CSS Modules,依然是 CSS,但是通过编译来避免 CSS 类名的全局冲突
  • 各类 CSS-in-JS 方案,React 社区为代表,比较激进
  • Vue 的单文件组件 CSS,或是 Angular 的组件 CSS(写在装饰器里面),一种比较折中的方案

传统 css 的一些问题:

  1. 作用域
  2. Critical CSS
  3. Atomic CSS
  4. 分发复用
  5. 跨平台复用