不吹不黑聊聊前端框架
本文为听 尤雨溪
的知乎 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 的一些问题:
- 作用域
- Critical CSS
- Atomic CSS
- 分发复用
- 跨平台复用