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
100
2fast2furios
fast web for people
Denis
June 01, 2019
Tweet
Share
More Decks by Denis
See All by Denis
Refactoring
denredsky
0
220
npm
denredsky
0
100
Other Decks in Programming
See All in Programming
5つのアンチパターンから学ぶLT設計
narihara
1
140
ruby.wasmで多人数リアルタイム通信ゲームを作ろう
lnit
2
330
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた
highu
0
110
PipeCDのプラグイン化で目指すところ
warashi
1
230
Select API from Kotlin Coroutine
jmatsu
1
210
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
1
720
AWS CDKの推しポイント 〜CloudFormationと比較してみた〜
akihisaikeda
3
320
C++20 射影変換
faithandbrave
0
560
datadog dash 2025 LLM observability for reliability and stability
ivry_presentationmaterials
0
380
XP, Testing and ninja testing
m_seki
3
220
Deep Dive into ~/.claude/projects
hiragram
10
2.2k
AIプログラマーDevinは PHPerの夢を見るか?
shinyasaita
1
180
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
524
40k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Raft: Consensus for Rubyists
vanstee
140
7k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
RailsConf 2023
tenderlove
30
1.1k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
24k
Practical Orchestrator
shlominoach
188
11k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
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