Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2fast2furios
Search
Denis
June 01, 2019
Programming
0
98
2fast2furios
fast web for people
Denis
June 01, 2019
Tweet
Share
More Decks by Denis
See All by Denis
Refactoring
denredsky
0
210
npm
denredsky
0
93
Other Decks in Programming
See All in Programming
Kotlin Multiplatform at Stable and Beyond (Android Makers 2024)
zsmb
0
470
Snowflakeで眠ったデータを起こそう!
estie
0
140
PHPの次期バージョンはこの時期どうなっているのか - Internalsの開発体制について - PHPカンファレンス小田原
youkidearitai
PRO
1
220
SwiftUIで使いやすいToastの作り方 / How to build a Toast system which is easy to use in SwiftUI
lovee
3
170
AppRouter Panel Talk
yosuke_furukawa
PRO
1
460
PHPはいつから死んでいるかの調査
chiroruxx
2
420
Polars入門
daikikatsuragawa
1
170
GraphQLサーバの構成要素を整理する #ハッカー鮨 #tsukijigraphql / graphql server technology selection
izumin5210
4
900
SIMD Parallel Programming with the Vector API
josepaumard
0
230
Documentation for users with AsciiDoc and Antora
ahus1
0
370
スクラムガイドのスプリントレトロスペクティブを改めて読みかえしてみた / Re-reading the Sprint Retrospective Section in the Scrum Guide
mackey0225
3
480
冗長なエラーログを削減し、スタックトレースを手に入れる / Reducing Verbose Error Logs and Obtaining Stack Traces
upamune
0
1k
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
689
190k
We Have a Design System, Now What?
morganepeng
43
6.8k
Documentation Writing (for coders)
carmenintech
60
4k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
79
43k
Creatively Recalculating Your Daily Design Routine
revolveconf
211
11k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
Navigating Team Friction
lara
179
13k
No one is an island. Learnings from fostering a developers community.
thoeni
16
2.1k
Music & Morning Musume
bryan
41
5.6k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Designing for humans not robots
tammielis
247
25k
Transcript
React Russia 2019 Быстрее, стройнее, умнее Красновский Денис telegram: @jquery_dlya_slabih
React Russia 2019 2
React Russia 2019 3 Hello, WEB Slowking, Slowpoke, Slowbro и
Slow web
React Russia 2019 4 SEO
React Russia 2019 5 User experience
React Russia 2019 6
React Russia 2019 7 Check it! • Sonarlint • Lighthouse
• PageSpeed Insights
React Russia 2019 8 Bad news…
React Russia 2019 9
React Russia 2019 10
React Russia 2019 11 Phase 2 1. Оптимизация ресурсов (js,
css, html, images, …) 2. Code splitting 3. Правильная поддержка старых браузеров 4. Compress it
React Russia 2019 12 Browserslist Share target browsers across projects
and front-end tools, like @Autoprefixer, @Stylelint and @babeljs
React Russia 2019 13 Define browsers environment
React Russia 2019 14 Webpack Static module bundler for modern
JavaScript applications
React Russia 2019 15 JS optimization Since version 4 webpack
runs optimizations for you depending on the chosen mode, still all optimizations are available for manual configuration and overrides
React Russia 2019 16 optimization.minimizer
React Russia 2019 17 CSS optimization • css-loader • postcss-loader
• optimize-css-assets-webpack-plugin
React Russia 2019 18 CSS optimization
React Russia 2019 19 CSS optimization
React Russia 2019 20 CSS optimization
React Russia 2019 21 HTML optimization html-webpack-plugin remove render blocking
scripts
React Russia 2019 22 Images optimization image-webpack-loader or https://jakearchibald.github.io/svgomg/
React Russia 2019 23 Babel The compiler for next generation
JavaScript
React Russia 2019 24 babel-preset-env • modules • loose •
targets
React Russia 2019 25 babel-plugin-transform-react-remove-prop-types
React Russia 2019 26 vendors ~ 294 KB app ~
149 KB max weight page ~ 197 KB … min weight page ~ 8 KB Code splitting [theory]
React Russia 2019 27 WEBSITE PAGE 3 PAGE 2 LOGIN
… PAGE 10 VENDORS APP.JS LOGIN.JS PAGE_1.JS … PAGE_10.JS w/o code splitting [theory] APP.CSS LOGIN.CSS PAGE_1.CSS … PAGE_10.CSS
React Russia 2019 28 WEBSITE PAGE 3 PAGE 2 LOGIN
… PAGE 10 VENDORS APP.JS With сode splitting [theory] APP.CSS LOGIN.JS LOGIN.CSS PAGE_3.JS PAGE_3.CSS
React Russia 2019 29 Code splitting [practice]
React Russia 2019 30 Old browsers support • В идеале
необходим сплит между старыми и новыми браузерами • Правильно работать с @babel/polyfill
React Russia 2019 31 @babel/polyfill • modules • loose •
targets • useBuiltIns
React Russia 2019 32 useBuiltIns • entry • usage
React Russia 2019 33 Compress it • nginx • compression-webpack-plugin
React Russia 2019 34 Expected result
React Russia 2019 35 Result
React Russia 2019 36 P.S.
React Russia 2019 37 Pitfalls 1. оверхед 2. dev инструменты
в production коде 3. npm driven development
React Russia 2019 38 npm driven development
React Russia 2019 39 Tools 1. Import-cost 2. bundlephobia.com 3.
duplicate-package-checker-webpack-plugin
React Russia 2019 40 Спасибо за внимание, вопросы? Telegram: @jquery_dlya_slabih
http://bit.ly/reactDomClick