19 前端性能优化和框架
前端性能优化
书籍推荐
- Web Performance in Action ,CSS、图片、字体、JavaScript 性能调优等。
- Designing for Performance ,网页优化的技术和相关的工具,对整体网页性能优化有所了解。
- High Performance JavaScript ,了解如何提升各方面的性能,包括代码的加载、运行、DOM 交互、页面生存周期等。介绍了页面代码加载的最佳方法和编程技巧,帮助编写更为高效和快速的代码。还可以解到构建和部署文件到生产环境的最佳实践,以及有助于定位线上问题的工具。
- High Performance Web Sites: Essential Knowledge for Front-End Engineers ,给出了 14 条具体的优化原则,每一条原则都配以范例佐证,并提供了在线支持。主要包括减少 HTTP 请求、Edge Computing 技术、Expires Header 技术、gzip 组件、CSS 和 JavaScript 最佳实践、主页内联、Domain 最小化、JavaScript 优化、避免重定向的技巧、删除重复 JavaScript 的技巧、关闭 ETags 的技巧、Ajax 缓存技术和最小化技术等。
- Web Fundamentals 里的 Performance 一章,有很多非常不错的知识和经验。
最佳实践
- Browser Diet ,前端权威 性能指南。
- PageSpeed Insights Rules ,性能指南和最佳实践。
- Best Practices for Speeding Up Your Web Site ,最佳实践文档。
WPO Stats,性能优化的案例学习网站
文章和案例
- A Simple Performance Comparison of HTTPS, SPDY and HTTP/2 ,比较浏览器的 HTTPS、SPDY 和 HTTP/2 等性能。
- 7 Tips for Faster HTTP/2 Performance ,对于 HTTP/2 给出的 7 个增加其性能的小提示。
- Reducing Slack’s memory footprint ,减少内存使用量的实践。
- Pinterest: Driving user growth with performance improvements ,关于性能调优的一些分享。
- 10 JavaScript Performance Boosting Tips ,10 个提高 JavaScript 运行效率的小提示。
- 17 Statistics to Sell Web Performance Optimization ,Web 性能优化的工程分享。
- Getting started with the Picture Element ,讲述了 Responsive 布局所带来的一些负面的问题,主要是图像适配的问题。
- Improve Page Load Times With DNS Prefetching ,如何降低 DNS 解析时间的小技术——DNS prefetching。
- Jank Busting for Better Rendering Performance ,前端动画渲染性能提升。
- JavaScript Memory Profiling ,如何使用 Chrome 的开发工具来分析 JavaScript 内存问题。
性能工具
- PageSpeed ,谷歌有一组 PageSpeed 工具帮助分析和优化网站的性能。
- YSlow ,雅虎的一个网页分析工具。
- GTmetrix ,将 PageSpeed 和 YSlow 合并起来的一个网页分析工具,并且加上一些 Page load 或是其它的一些分析。
- Awesome WPO ,性能优化工具和资源。
- Forget Google and Use These Hosted JavaScript Libraries in China,国内的共享库资源。
前端框架
框架对比
- Angular vs. React vs. Vue: A 2017 comparison
- React or Vue: Which JavaScript UI Library Should You Be Using?
- ReactJS vs Angular5 vs Vue.js - What to choose in 2018?
React.js 框架
入门
- React 官方教程
- React.js 的基本原理
- All the fundamental React.js concepts ,React.js 的基本原理。
- Learn React Fundamentals and Advanced Patterns ,学习 React 的一个很不错的地方。
- Thinking in React,引导完成使用 React 构建可搜索产品数据表的思考过程。
提高
学习其中的思想和方法。
- 状态
- Common React.js mistakes: Unneeded state ,React.js 编程的常见错误——不必要的状态。
- State is an Anti-Pattern ,关于如何做一个不错的组件的思考。
- Why Local Component State is a Trap ,一些关于 “Single state tree” 的想法。
- Thinking Statefully ,几个很不错的例子,对声明式有状态的技术有更好的理解。
- "State Architecture Patterns in React " 系列文章
- Part 1: A Review
- Part 2: The Top-Heavy Architecture, Flux and Performance
- Part 3: Articulation Points, zine and An Overall Strategy
- Part 4: Purity, Flux-duality and Dataflow
- 函数式编程
- 《Professor Frisby’s Mostly Adequate Guide to Functional Programming》,JavaScript 函数式编程的东西
- Master the JavaScript Interview: What is Functional Programming?
- The Rise and Fall and Rise of Functional Programming (Composing Software)
- Functional UI and Components as Higher Order Functions
- Functional JavaScript: Reverse-Engineering the Hype
- Some Thoughts on Function Components in React
- 设计相关
- React Pattern,学习 React 模式
- React Higher Order Components in depth
- Presentational and Container Components
- Controlled and uncontrolled form inputs in React don’t have to be complicated
- Function as Child Components
- Writing Scalable React Apps with the Component Folder Pattern
- Reusable Web Application Strategies
- Characteristics of an Ideal React Architecture
- 实践和经验
- 9 things every React.js beginner should know
- Best practices for building large React applications
- Clean Code vs. Dirty Code: React Best Practices
- How to become a more productive React Developer
- 8 Key React Component Decisions
资源列表
- Awesome React ,React 相关资源的列表。
- React/Redux Links ,React 相关的资源列表,该列表主要收集了大量的文章,其中讲述了很多 React 知识和技术,比上面的列表好很多。
- React Rocks ,React 的组件示例。
Vue.js 框架
- Why 43% of Front-End Developers want to learn Vue.js” ,编程方式和 React 的区别。
- Replacing jQuery With Vue.js: No Build Step Necessary ,从 jQuery 可以平滑过渡到 Vue 。
- “10 things I love about Vue” ,了解 Vue 的一些比较优秀的特性。
- Vue 官方文档。
- Vue.js screencasts,的英文视频教程。
- 新手向:Vue 2.0 的建议学习顺序。
- How not to Vue ,了解 Vue 的短板。
- Vue.js Component Communication Patterns
- 4 AJAX Patterns For Vue.js Apps
- How To (Safely) Use A jQuery Plugin With Vue.js
- 7 Ways To Define A Component Template in Vue.js
- Use Any Javascript Library With Vue.js
- Dynamic and async components made easy with Vue.js
- Awesome Vue ,Vue.js 的资源列表。