The
Progressive Framework
Evan You
Twitter @youyuxi
GitHub @yyx990803
Oh Front End JavaScript...











Every other day on Quora/Stackoverflow/Reddit:
"Which JavaScript Framework Should I learn?"
Every other month on Medium:
But seriously,
which framework should I learn?
"It depends"

To answer that question, we need to ask more questions:
- How experienced are you?
- How big is your team?
- What type of project are you building?
- What timeframe do you have for the project?
- What are you trying to achieve with this project? Are you building the next Facebook?
Two Schools of Thought
Full-featured Frameworks
Composing Micro-libs
VS.
Two Schools of Thought
Buy into opinionated decisions
Make every decision yourself
VS.
It's more like a spectrum though
Micro libs
Full
Framework











Composing Micro Libs
-
Utmost flexibility
-
A lot of research, decisions and plumbing required
-
May not always end up maintainable
-
Only suitable for experts & tinkerers with strong experience and opinions
Full Frameworks
- Out of the box productivity
- Strong conventions, great for teams that do not want to argue over design decisions
But Full Frameworks are not for everyone...
- High barrier of entry / learning curve
- Inflexible when you disagree with the framework's decisions
- Overkill in many scenarios
The Middleground:
View-layer Centric Libs
- Ready to use when only declarative rendering is needed
- Retains flexibility for higher-level architecture
- Relies on accompanying ecosystem of tooling / support libs to get feature parity with full frameworks
The Middleground:
View-layer Centric Libs
- Ready to use when only declarative rendering is needed
- Retains flexibility for higher-level architecture
- Relies on accompanying ecosystem of tooling / support libs to get feature parity with full frameworks
Innovation is great, but
high churn rate in ecosystem
leads to decision fatigue
Progressive Framework
Framework complexity
vs.
project's inherent complexity.
A progressive framework
adapts to a project's inherent complexity.
Instead of...
"A framework that you can opt-out parts of it"
How about...
"A framework that you can progressively opt-in to"
Progressive Framework
- Lean core that works well alone
- Declarative view rendering
- Official support libraries that solve common needs
- SPA routing
- Data fetching
- State management
- Opinionated but optional build toolchain
- Scaffolding, bundling, linting, testing, hot-reloading, devtools...

Comparison
Vue vs React
"The dirty little secret is that most “modern JavaScript development” is nothing to do with actually building websites — it’s building packages that can be used by people who build libraries that can be used by people who build frameworks that people who write tutorials and teach courses can teach.
I’m not sure anyone is actually building anything..."
- The Internet
Dependencies: 13
Code Size: 113KB
Effort: 80 Hours
React



Dependencies: 22
Code Size: 135KB
Effort: 72 Hours
Angular
Dependencies: 9
Code Size: 49KB
Effort: 48 Hours
Vue
Hello World
<body>
<div id="app">
{{ message }}
</div>
<script>
new Vue({
el: '#app',
data: {
message: 'Hello from Vue'
}
});
</script>
</body><body>
<div id="greeting"></div>
<script type="text/babel">
var Greeting = React.createClass({
render: function() {
return (
<p>Hello from React</p>
)
}
});
ReactDOM.render(
<Greeting/>,
document.getElementById('greeting')
);
</script>
</body>Vue
React
Free Course
https://www.udemy.com/react-vs-angular-vs-vuejs-by-example/
Vue Overview (Adaptation from Evan)
By genuchelu
Vue Overview (Adaptation from Evan)
- 345