Repository: linbudu599/FE-Basics Branch: master Commit: 26f05418eace Files: 18 Total size: 19.0 KB Directory structure: gitextract_b6yp3m6v/ ├── Advanced/ │ ├── CS-Basic.md │ ├── Mini-Program.md │ ├── React.md │ ├── Reality.md │ ├── Tool.md │ ├── Ts.md │ ├── Webapck.md │ └── Wonder.md ├── Basic/ │ ├── Browser-WebSafety.md │ ├── Database.md │ ├── ES6.md │ ├── HTML-CSS.md │ ├── HandWritting.md │ ├── JS-Basic.md │ ├── Network.md │ └── Node.md ├── LICENSE └── README.md ================================================ FILE CONTENTS ================================================ ================================================ FILE: Advanced/CS-Basic.md ================================================ # 计算机基础 - 并行 并发 - IPC - 管道 - FIFO - 消息队列 - 共享存储 - 信号量Semaphore - 套接字Socket - 信号Signal - 操作系统调度算法 - 进程 线程 协程 纤程 - 计算机网络,见网络章节 ================================================ FILE: Advanced/Mini-Program.md ================================================ # 小程序 - 基础架构 - properties / data - behavior(封装性) - DOM BOM 是如何禁止访问的? - 生命周期 - 页面级 - 应用级 - 性能优化 - vs PWA / Hybrid / RN / Flutter ... - setState为何表现为数据更新同步UI更新异步? - 小程序中的鉴权 ================================================ FILE: Advanced/React.md ================================================ # React - 性能优化 - pureComponent shallowEuqal - React.memo - 分析问题: React Devtools 的`Highlight Update`与`Profiler`, Chrome 的`Performance`工具 - 阻止无意义的重渲染, 通常通过缓存/更新控制(`useMemo`/`shouldComponentUpdate`) - 懒加载(`React-Loadable` & `Suspense` + `React.lazy()`) - 细粒度更新 - 谨慎使用 Context 或基于 Context 的数据流方案 - 不可变数据 - ImmutableJS - ImmerJS(安利下IceStore) - 减少不必要的重新计算, 如`useCallback`与`Reselect` - 虚拟列表 - 生命周期, 按照顺序, 废弃原因参见 [React16.4 生命周期初探](https://linbudu.top/posts/2020/06/29/react-life-cycle.html) - 挂载 - **constructor** - **static getDerivedStateFromProps** - **componentWillMount** **已废弃** - **render** - **componentDidMount** 为什么数据获取要在这里? 而不是 WillMount? - 更新 - **componentWillReceiveProps** **已废弃** - **static getDerivedStateFromProps** - **shouldComponentUpdate** - **componentWillUpdate** **已废弃** - **render** - **static getSnapshotBeforeUpdate** - **componentDidUpdate** - 错误 - **static getDerivedStateFromError**, 在页面崩溃时, 与`componentDidCatch`如何搭配降级? - 为什么要废弃掉这几个生命周期? - 为什么新增的生命周期是静态方法? - Hooks - useState - useEffect - deps array - 与useLayoutEffect差异 - forwardRef & useRef & useImperativeHandle - useCallback - useMemo - React Hooks倒计时(闭包陷阱) - RenderWithHooks &`Render Fewer Hooks Then Expected...`错误 - Fiber - reconciliation - commit - Concurrent Mode - Suspense - Suspense 编排 资源竞态控制 见[聊聊 Concurrent 模式中的 Suspense](https://linbudu.top/posts/2020/07/06/concurrent-suspense.html) - useTransition - Redux 与 Mobx 起码熟练一个 - 源码 看看吧 真不多不难 - Redux中间件原理 - 其他数据流方案, 如**Dva/Icestore/Hox/Reconciler...** - setState - 批处理 - 延迟更新 - 同步? 异步? - React 的合成事件机制(为什么 Class 组件要 bind 方法的原因) - V-Dom 与 Diff 算法 - 与 Vue 的比较 - 约束 / 迎合开发者 - 思想 - React-Router(Reach-Router)等路由方案 #### Vue > 实际不止这些 但我不是主要写 Vue 的 - MVVM 原理 - Observer - Compile - Watcher - Vue 3.0 为什么使用 Proxy? 相比 defineProperty 有什么优势? ================================================ FILE: Advanced/Reality.md ================================================ # 业务场景 - 页面优化 - 重绘重排 - 首屏优化 - 缓存 - 构建体积 - SSR - OPR(离线预渲染) - 白屏问题排查 - IP 地址 - 日志 - 路由 - 请求返回 - 骨架屏 - 超长列表 - requesAnimationFrame - 虚拟列表 - 埋点 - 部分埋点 - 可视化埋点 - 全埋点 - 设计埋点 SDK - 扫码登陆 - 长连接 - 文件上传 -