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
ReactJS: From upside down to right side up!
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Pedro Nauck
November 26, 2016
Technology
18
2.9k
ReactJS: From upside down to right side up!
My talk about how to build a right side up environment in the frontend using the React ecosystem.
Pedro Nauck
November 26, 2016
Tweet
Share
More Decks by Pedro Nauck
See All by Pedro Nauck
ReactConf 2018: Presenting Docz
pedronauck
3
920
Docz Partnership Program
pedronauck
1
300
Docz - It has never been so easy to document your things!
pedronauck
2
490
Flux: A simple architecture model to build Client-side apps!
pedronauck
55
4.9k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
ES6: Using the new Javascript Today
pedronauck
119
29k
Other Decks in Technology
See All in Technology
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
470
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
240
プロポーザルに込める段取り八分
shoheimitani
1
470
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
620
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
250
【Ubie】AIを活用した広告アセット「爆速」生成事例 | AI_Ops_Community_Vol.2
yoshiki_0316
1
110
量子クラウドサービスの裏側 〜Deep Dive into OQTOPUS〜
oqtopus
0
130
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
650
usermode linux without MMU - fosdem2026 kernel devroom
thehajime
0
240
AIエージェントに必要なのはデータではなく文脈だった/ai-agent-context-graph-mybest
jonnojun
0
100
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
360
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
600
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
650
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
350
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
70
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
150
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
410
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
140
Producing Creativity
orderedlist
PRO
348
40k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
67
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Transcript
None
@pedronauck FRONTEND DEVELOPER
None
None
None
we technology new technologies
modularity performance adaptability maintainability consistency work fluid }We want
but startups...
pray to work
products upside down monsters
how build to right side up enva
backend inspiration
None
our environment front-end
checkout admin landing page react projects @reusable-modules monorepo
MODULAR STRUCTURE shazam basecss components frontend project domain reicons
monorepo Unified source code repository used by an organisation to
host as much of its code as possible.
who’s using
✓ single lint, build, test and release process ✓ easy
to coordinate changes across modules ✓ single place to report issues ✓ code review are easier ✓ less management, everything is centralized ✓ dependency management ✓ cheaper pros
✓ codebase looks more intimidating ✓ repo is bigger in
size ✓ . . . cons
None
None
None
None
None
None
None
packages/project/package.json Symbolic Link
None
components Our awesome and reusable React components
None
None
✓ focus on your components ✓ based on stories ✓
internal hot reload ✓ less configurations ✓ easy to maintain advantages
None
None
None
None
Gold tip #1 use to update data inside stories recompose
A React utility belt for function components and higher-order components.
recompose
None
None
None
None
None
None
domain data layer of our projects
AP I user partner appointments …
None
Predictable state container based on Flux One store. Single Source
of Truth! State is Read-only (modified by action) Changes are made with Pure Functions
None
#1 use a duck-based architecture
☹
None
None
None
#2 use redux-actions to handle your ducks
None
None
None
None
None
None
None
None
None
None
#3 normalize your entities
Normalizr takes JSON and a schema and replaces nested entities
with their IDs, gathering all entities in dictionaries.
turn this...
None
into
None
None
None
None
✓ work with objects, less array iterations ✓ most expressive
structure advantages
#4 use one single reducer for your entities
None
None
None
#5 use redux-ui to manage ui state
None
<App> <Topbar>
None
<App> <Topbar> <Sidebar>
None
None
None
None
None
None
None
None
None
<App> ui('App') <Sidebar> ui() <Topbar> ui() {context} {context} updateUI() ui.isSidebarOpened
{context}
modular structure module based architecture for scalable apps
None
None
App.js
None
modules/User/index.js
None
None
None
Application Setup react-router, redux, etc
shazam Node module to create and manage react apps
alternatives facebookincubator/create-react-app insin/nwb
and tricks webpack tips
#1 split your config by environment using webpack-config
None
webpack.config.js
webpack/${environment}.js
shazam.config.js
webpack/common.js
#2 use alias to relative paths
webpack/common.js
None
None
#3 use [chunkhash:8] in production bundles
webpack/development.js webpack/production.js
webpack/development.js webpack/production.js
reicons CLI tool to generate React icon components based on
svg files
manage is boring icons
None
✓ different icons of different sets ✓ components to manage
svg ✓ bundle just our icons ✓ easy to update the set ✓ build differente sets we needed
we DON' T needed
None
None
None
http://github.com/drvem/reicons
$ npm i -g reicons
$ reicons -p [<package:prefix>] -s images/ -b components/Icons Set directory
and a custom prefix The source of your icons sets Folder to bundle your icons components
. └── images ├── font-awesome │ ├── book.svg │ ├──
credit-card.svg │ └── github-logo.svg └── icons ├── home.svg ├── location.svg └── search.svg
$ reicons -p font-awesome:fa icons:ic -s images/ -b components/Icons
None
. ├── components │ └── Icons │ ├── Fa │
└── Ic └── images ├── font-awesome └── icons
. └── components └── Icons ├── Fa │ ├── Book.js
│ ├── CreditCard.js │ └── GithubLogo.js ├── Ic │ ├── Home.js │ ├── Location.js │ └── Search.js └── index.js
Fa/Book.js
index.js
None
✓ something simple to implement ✓ using across projects ✓
easy to onboarding we needed
checkout admin landing page react projects @reusable-modules monorepo
modularity performance adaptability maintainability consistency work fluid }We want
None
None