docs.rodeo

MDN Web Docs mirror

JavaScript frameworks and libraries

{{LearnSidebar}} 

{{NextMenu("Learn_web_development/Core/Frameworks_libraries/Introduction", "Learn_web_development/Core")}} 

JavaScript frameworks are an essential part of modern front-end web development, providing developers with tried and tested tools for building scalable, interactive web applications. Many modern companies use frameworks as a standard part of their tooling, so many front-end development jobs now require framework experience. In this set of articles, we are aiming to give you a comfortable starting point to help you begin learning frameworks.

As an aspiring front-end developer, it can be hard to work out where to begin when learning frameworks — there are so many frameworks to choose from, new ones appear all the time, they mostly work in a similar way but do some things differently, and there are some specific things to be careful about when using frameworks.

We are not aiming to exhaustively teach you everything you need to know about React/ReactDOM, or Vue, or some other specific framework; the framework teams’ own docs (and other resources) do that job already. Instead, we want to back up and first answer more fundamental questions such as:

After that, we’ll provide some tutorials covering the essentials React, a popular framework choice, to provide you with enough context and familiarity to start going into greater depth yourself. We want you to go forward and learn about frameworks in a pragmatic way that doesn’t forget about web platform fundamental best practices such as accessibility.

We also provide some tutorials covering the basics of other framework choices, for those who want to make a different choice to React.

Prerequisites

You should really learn the basics of the core web languages first before attempting to move on to learning client-side frameworks — HTML, CSS, and especially JavaScript.

Your code will be richer and more professional as a result, and you’ll be able to troubleshoot problems with more confidence if you understand the fundamental web platform features that the frameworks are building on top of.

Introductory tutorials

React tutorials

[!NOTE] React tutorials last tested in January 2023, with React/ReactDOM 18.2.0 and create-react-app 5.0.1.

If you need to check your code against our version, you can find a finished version of the sample React app code in our todo-react repository. For a running live version, see https://mdn.github.io/todo-react/.

Other framework choices

Ember tutorials

[!NOTE] Ember tutorials last tested in May 2020, with Ember/Ember CLI version 3.18.0.

If you need to check your code against our version, you can find a finished version of the sample Ember app code in the ember-todomvc-tutorial repository. For a running live version, see https://nullvoxpopuli.github.io/ember-todomvc-tutorial/ (this also includes a few additional features not covered in the tutorial).

Vue tutorials

[!NOTE] Vue tutorial last tested in January 2023, with Vue 3.2.45.

If you need to check your code against our version, you can find a finished version of the sample Vue app code in our todo-vue repository. For a running live version, see https://mdn.github.io/todo-vue/.

Svelte tutorials

[!NOTE] Svelte tutorials last tested in August 2020, with Svelte 3.24.1.

If you need to check your code against our version, you can find a finished version of the sample Svelte app code as it should be after each article, in our mdn-svelte-tutorial repo. For a running live version, see our Svelte REPL at https://svelte.dev/repl/378dd79e0dfe4486a8f10823f3813190?version=3.23.2.

Angular tutorials

[!NOTE] Angular tutorials last tested in April 2021, with Angular CLI (NG) 11.2.5.

Which frameworks did we choose?

We cover five frameworks in our tutorials — Angular, Ember, React/ReactDOM, Svelte, and Vue:

We want to say this upfront — we’ve not chosen the frameworks we are focusing on because we think they are the best, or because we endorse them in any way. We just think they score highly on the above criteria.

{{NextMenu("Learn_web_development/Core/Frameworks_libraries/Introduction", "Learn_web_development/Core")}} 

In this article

View on MDN