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
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,7 +43,7 @@ Exercise completion time statistics can be found via the [submission system](htt
43
43
44
44
You can discuss the course and related topics in our dedicated group on Discord <atarget='_blank'href='https://study.cs.helsinki.fi/discord/join/fullstack'>https://study.cs.helsinki.fi/discord/join/fullstack</a> and on Telegram: <atarget='_blank'href='https://t.me/fullstackcourse'>https://t.me/fullstackcourse</a>. Discord has fullstack_general and part-specific (channel names with fullstack prefix) channels for course-related discussion. Note that Discord's <i>chat channel is not suitable for course-related discussions</i>. Please join the conversation!
45
45
46
-
### How to ask help in Discord/Telegam
46
+
### How to get help in Discord/Telegram
47
47
48
48
When you ask for help for a problem in the Discord/Telegram group your question should be as informative and precise as possible. If your question look like this
Copy file name to clipboardExpand all lines: src/content/1/en/part1a.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -149,7 +149,7 @@ The first rule of frontend web development:
149
149
150
150
> <i>keep the console open all the time</i>
151
151
152
-
Let us repeat this together: <i>I promise to keep the console open all the time</i> during this course, and the for the rest of my life when I'm doing web development.
152
+
Let us repeat this together: <i>I promise to keep the console open all the time</i> during this course, and for the rest of my life when I'm doing web development.
153
153
154
154
It is also possible to render dynamic content inside of a component.
155
155
@@ -343,7 +343,7 @@ I really hope your console was open. If it was not, remember what you promised:
343
343
344
344
> <i>I promise to keep the console open all the time during this course, and for the rest of my life when I'm doing web development</i>
345
345
346
-
Software development is hard. It gets even harder if one is not using all the possible available tools such as the web-console and debug printing with _console.log_. Professionals use both <i>all the time</i> and there is no single reason why a beginner should not adopt the use of these wonderful helper methods that will make the life so much easier.
346
+
Software development is hard. It gets even harder if one is not using all the possible available tools such as the web-console and debug printing with _console.log_. Professionals use both <i>all the time</i> and there is no single reason why a beginner should not adopt the use of these wonderful helper methods that will make life so much easier.
347
347
348
348
### Some notes
349
349
@@ -353,7 +353,7 @@ React has been configured to generate quite clear error messages. Despite this,
353
353
354
354

355
355
356
-
As we already mentioned, that when programming with React it is possible and worthwhile to write <em>console.log()</em> commands (which print to the console) within your code.
356
+
As we already mentioned, when programming with React, it is possible and worthwhile to write <em>console.log()</em> commands (which print to the console) within your code.
357
357
358
358
Also, keep in mind that **React component names must be capitalized**. If you try defining a component as follows:
Copy file name to clipboardExpand all lines: src/content/1/en/part1d.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1031,7 +1031,7 @@ Programming is hard, that is why I will use all the possible means to make it ea
1031
1031
- I progress with small steps
1032
1032
- I will write lots of _console.log_ statements to make sure I understand how the code behaves and to help pinpointing problems
1033
1033
- If my code does not work, I will not write more code. Instead I start deleting the code until it works or just return to a state when everything was still working
1034
-
- When I ask for help in the course Discord or Telegram channel or elsewhere I formulate my questions properly, see [here](/en/part0/general_info#how-to-ask-help-in-discord-telegam) how to ask help
1034
+
- When I ask for help in the course Discord or Telegram channel or elsewhere I formulate my questions properly, see [here](http://fullstackopen.com/en/part0/general_info#how-to-ask-help-in-discord-telegam) how to ask for help
Copy file name to clipboardExpand all lines: src/content/1/fi/osa1a.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -635,7 +635,7 @@ const App = () => {
635
635
}
636
636
```
637
637
638
-
**VAROITUS** älä yritä tehdä ohjelmassasi kaikkia komponentteja yhtä, sillä se johtaa lähes varmasti siihen että ohjelma ei toimi. Etene pieni askel kerrallaan, tee aluksi esim. komponentti <i>Header</i> ja vasta kun se toimii 100% varmasti, kannattaa edetä seuraavaan komponenttiin.
638
+
**VAROITUS** älä yritä tehdä ohjelmassasi kaikkia komponentteja yhtä aikaa, sillä se johtaa lähes varmasti siihen että ohjelma ei toimi. Etene pieni askel kerrallaan, tee aluksi esim. komponentti <i>Header</i> ja vasta kun se toimii 100% varmasti, kannattaa edetä seuraavaan komponenttiin.
639
639
640
640
Huolellinen, pienin askelin eteneminen saattaa tuntua hitaalta, mutta se on itseasiassa <i> ylivoimaisesti nopein</i> tapa edetä. Kuuluisa ohjelmistokehittäjä Robert "Uncle Bob" Martin on todennut
Copy file name to clipboardExpand all lines: src/content/1/fi/osa1b.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ lang: fi
9
9
10
10
Kurssin aikana on web-sovelluskehityksen rinnalla tavoite ja tarve oppia riittävässä määrin JavaScriptia.
11
11
12
-
JavaScript on kehittynyt viime vuosina nopeaan tahtiin, ja käytämme kurssilla kielen uusimpien versioiden piirteitä. JavaScript-standardin virallinen nimi on [ECMAScript](https://en.wikipedia.org/wiki/ECMAScript). Tämän hetken tuorein versio on kesäkuussa 2023 julkaistu [ES13](https://www.ecma-international.org/ecma-262/), toiselta nimeltään ECMAScript 2023.
12
+
JavaScript on kehittynyt viime vuosina nopeaan tahtiin, ja käytämme kurssilla kielen uusimpien versioiden piirteitä. JavaScript-standardin virallinen nimi on [ECMAScript](https://en.wikipedia.org/wiki/ECMAScript). Tämän hetken tuorein versio on kesäkuussa 2022 julkaistu [ES13](https://www.ecma-international.org/ecma-262/), toiselta nimeltään ECMAScript 2022.
13
13
14
14
Selaimet eivät vielä osaa kaikkia JavaScriptin uusimpien versioiden ominaisuuksia. Tämän takia selaimessa suoritetaan useimmiten koodia, joka on käännetty (englanniksi <i>transpiled</i>) uudemmasta JavaScriptin versiosta johonkin vanhempaan, laajemmin tuettuun versioon.
Copy file name to clipboardExpand all lines: src/content/3/en/part3c.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -644,7 +644,7 @@ In the following exercises, write all Mongoose-specific code into its own module
644
644
645
645
Change the backend so that new numbers are <i>saved to the database</i>. Verify that your frontend still works after the changes.
646
646
647
-
At this point, you can choose to simply allow users to create all phonebook entries. At this stage, the phonebook can have multiple entries for a person with the same name.
647
+
At this stage, you can ignore whether there is already a person in the database with the same name as the person you are adding.
@@ -153,9 +153,9 @@ The current code for the application is in [GitHub](https://github.com/fullstack
153
153
154
154
### Synchronizing data to the server using React Query
155
155
156
-
Data is already successfully retrieved from the server. Next, I'll make sure that the added and modified data is stored on the server. Let's start by adding new notes.
156
+
Data is already successfully retrieved from the server. Next, we will make sure that the added and modified data is stored on the server. Let's start by adding new notes.
157
157
158
-
Let's make a function <i>addANote</i> to the file <i>requests.js</i> for saving new notes:
158
+
Let's make a function <i>createNote</i> to the file <i>requests.js</i> for saving new notes:
159
159
160
160
```js
161
161
importaxiosfrom'axios'
@@ -332,7 +332,7 @@ const App = () => {
332
332
}
333
333
```
334
334
335
-
If you put a console.log statement to the code, you can see form browser console how often React Query causes the application to be re-rendered. The rule of thumb is that rerendering happens at least whenever there is a need for it, i.e. when the state of the query changes. You can read more about it e.g. [here](https://tkdodo.eu/blog/react-query-render-optimizations).
335
+
If you put a console.log statement to the code, you can see from browser console how often React Query causes the application to be re-rendered. The rule of thumb is that rerendering happens at least whenever there is a need for it, i.e. when the state of the query changes. You can read more about it e.g. [here](https://tkdodo.eu/blog/react-query-render-optimizations).
336
336
337
337
The code for the application is in [GitHub](https://github.com/fullstack-hy2020/query-notes/tree/part6-3) in the branch <i>part6-3</i>.
338
338
@@ -351,7 +351,7 @@ Most React applications need not only a way to temporarily store the served data
351
351
352
352
### Exercises 6.19.-6.21.
353
353
354
-
Now let's make a new version of the anecdote application that uses the React Query library. Take [this project]((https://github.com/fullstack-hy2020/query-anecdotes)) as your starting point. The project has a ready-installed JSON Server, the operation of which has been slightly modified. Start the server with <i>npm run server</i>.
354
+
Now let's make a new version of the anecdote application that uses the React Query library. Take [this project](https://github.com/fullstack-hy2020/query-anecdotes) as your starting point. The project has a ready-installed JSON Server, the operation of which has been slightly modified. Start the server with <i>npm run server</i>.
355
355
356
356
#### Exercise 6.19
357
357
@@ -363,7 +363,7 @@ The application should work in such a way that if there are problems communicati
363
363
364
364
You can find [here](https://react-query-v3.tanstack.com/guides/queries) info how to detect the possible errors.
365
365
366
-
You can simulate a problem with the server by e.g. turning off the JSON Server. Please note that in a problem situation, the query is first in the state <i>isLoading</i> for a while, because if a requesst fails, React Query tries the request a few times before it states that the request is not successful. You can optionally specify that no retries are made:
366
+
You can simulate a problem with the server by e.g. turning off the JSON Server. Please note that in a problem situation, the query is first in the state <i>isLoading</i> for a while, because if a request fails, React Query tries the request a few times before it states that the request is not successful. You can optionally specify that no retries are made:
367
367
368
368
369
369
```js
@@ -442,13 +442,13 @@ const App = () => {
442
442
exportdefaultApp
443
443
```
444
444
445
-
The hook [useReducer](https://beta.reactjs.org/reference/react/useReducer) provides a mechanism to create a state for an application. The parameter for creating a state is the reduser function that handles state changes, and the initial value of the state:
445
+
The hook [useReducer](https://beta.reactjs.org/reference/react/useReducer) provides a mechanism to create a state for an application. The parameter for creating a state is the reducer function that handles state changes, and the initial value of the state:
The reduser function that handles state changes is similar to Redux's reducers, i.e. the function gets as parameters the current state and the action that changes the state. The function returns the new state updated based on the type and possible contents of the action:
451
+
The reducer function that handles state changes is similar to Redux's reducers, i.e. the function gets as parameters the current state and the action that changes the state. The function returns the new state updated based on the type and possible contents of the action:
0 commit comments