You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/content/0/en/part0a.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -331,7 +331,8 @@ Despite changes *all the submitted exercises remain valid*, and the course can b
331
331
332
332
Recent major changes
333
333
334
-
- Part 6 (th April): Redux replaced with Zustand, useReducer moved to chapter 7
334
+
- Part 7 (5th April): Webpack replaced with esbuild
335
+
- Part 6 (5th April): Redux replaced with Zustand, useReducer moved to chapter 7
335
336
- Part 5 (31st March 2026): React Router and style libraries have been moved from Part 7 to this part
336
337
- Parts 9, 11-13 (March 2026): content updated and material moved to new platform
337
338
- Part 8: (3th January 2026) Apollo Server updated to v5. Apollo Client updated to v4. Refactoring backend code moved to part8c. Lot's of other small improvements.
Copy file name to clipboardExpand all lines: src/content/0/fi/osa0a.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -276,7 +276,8 @@ Kurssilla ei ole vuosittaisia versiota. Kurssi on siis käynnissä koko ajan. Jo
276
276
Muutoksista huolimatta <i>kaikki jo tehdyt palautukset säilyvät voimassa</i>, eli voit jatkaa kurssia päivityksistä huolimatta normaaliin tapaan.
277
277
278
278
Viimeaikaisia isompia muutoksia
279
-
- Osa 6 (5.4.2026): Reduxkorvattu Zustandilla, useReducer siirretty osaan 7
279
+
- Osa 7 (6.4.2026): Webpack korvattu esbuildilla
280
+
- Osa 6 (5.4.2026): Redux korvattu Zustandilla, useReducer siirretty osaan 7
280
281
- Osa 5 (31.3.2026): Cypressiä käsittelevä osuus poistettu. React Router ja tyylikirjastot siirretty osasta 7 tähän osaan
281
282
- Osat 9 ja 11-13 (maaliskuu 2026): sisältö päivitetty ja materiaali siirretty uuteen osoitteeseen
282
283
- Osa 8: (3.1.2026) Apollo Server päivitetty versioon v5. Apollo Client päivitetty versioon v4. Backend-koodin refaktorointi siirretty osaan 8c. Lukuisia muita pieniä parannuksia.
Copy file name to clipboardExpand all lines: src/content/7/en/part7.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,8 @@ lang: en
9
9
The seventh part of the course touches on several different themes. First, we'll get familiar with React Router. React Router helps us divide the application into different views that are shown based on the URL in the browser's address bar. After this, we'll look at a few more ways to add CSS styles to React applications. During the entire course, we've used Vite to build all of our applications.
10
10
It is also possible to configure the whole toolchain yourself, and in this part we will see how this can be done with a tool called Webpack. We shall also have a look at hook functions and how to define a custom hook.
11
11
12
-
<i>Part updated 26th August 2023</i>
13
-
- <i>Create React App replaced with Vite</i>
12
+
<i>Part updated April 6th 2026</i>
13
+
- <i>React router, UI libraries and Styled components moved to part5</i>
When the state of the application changes, a <i>new virtual DOM</i> gets defined by the components. React has the previous version of the virtual DOM in memory and instead of directly rendering the new virtual DOM using the DOM API, React computes the optimal way to update the DOM (remove, add or modify elements in the DOM) such that the DOM reflects the new virtual DOM.
244
244
245
-
### On the role of React in applications
246
245
247
-
In the material, we may not have put enough emphasis on the fact that React is primarily a library for managing the creation of views for an application. If we look at the traditional [Model View Controller](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller) pattern, then the domain of React would be <i>View</i>. React has a more narrow area of application than e.g. [Angular](https://angular.io/), which is an all-encompassing Frontend MVC framework. Therefore, React is not called a <i>framework</i>, but a <i>library</i>.
248
246
249
-
In small applications, data handled by the application is stored in the state of the React components, so in this scenario, the state of the components can be thought of as <i>models</i> of an MVC architecture.
250
247
251
-
However, MVC architecture is not usually mentioned when talking about React applications. Furthermore, if we are using Redux, then the applications follow the [Flux](https://facebookarchive.github.io/flux/docs/in-depth-overview/) architecture and the role of React is even more focused on creating the views. The business logic of the application is handled using the Redux state and action creators. If we're using [Redux Thunk](/en/part6/communicating_with_server_in_a_redux_application#asynchronous-actions-and-redux-thunk) familiar from part 6, then the business logic can be almost completely separated from the React code.
248
+
### On the role of React in applications
252
249
253
-
Because both React and [Flux](https://facebookarchive.github.io/flux/docs/in-depth-overview/) were created at Facebook, one could say that using React only as a UI library is the intended use case. Following the Flux architecture adds some overhead to the application, and if we're talking about a small application or prototype, it might be a good idea to use React "wrong", since [over-engineering](https://en.wikipedia.org/wiki/Overengineering) rarely yields an optimal result.
250
+
In the material, we may not have put enough emphasis on the fact that React is primarily a library for managing the creation of views for an application. If we look at the traditional [Model View Controller](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller) pattern, then the domain of React would be <i>View</i>. React has a more narrow area of application than e.g. [Angular](https://angular.io/), which is an all-encompassing Frontend MVC framework. Therefore, React is not called a <i>framework</i>, but a <i>library</i>.
254
251
255
-
Part 6 [last chapter](/en/part6/react_query_use_reducer_and_the_context) covers the newer trends of state management in React. React's hook functions <i>useReducer</i> and <i>useContext</i> provide a kind of lightweight version of Redux. <i>React Query</i>, on the other hand, is a library that solves many of the problems associated with handling state on the server, eliminating the need for a React application to store data retrieved from the server directly in frontend state.
252
+
In small applications, data handled by the application is stored in the state of the React components, so in this scenario, the state of the components can be thought of as <i>models</i>of an MVC architecture.
Copy file name to clipboardExpand all lines: src/content/7/fi/osa7.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,8 @@ Kurssin seitsemäs osa käsittelee montaa teemaa. Ensin tutustutaan React router
10
10
11
11
Kurssin seitsemännen osan teemoihin liittyvät myös useat yhteistyökumppaniemme asiantuntijoiden vierailuluennoista, jotka löydät <ahref='https://www.youtube.com/playlist?list=PLumQiZ25uijis31zaRL7rhzLalSwLqUtm'><spanstyle='text-decoration: underline;'>täältä</span></span></a>.
12
12
13
-
<i>Osa päivitetty 26.8.2023</i>
14
-
- <i>Create React App korvattu Vitellä</i>
13
+
<i>Osa päivitetty 6.4.2026</i>
14
+
- <i>React router, UI kirjstot ja Styled siirretty osaan 5</i>
0 commit comments