├── index.html
├── style.scss
├── index.tsx
├── package.json
├── src
└── app.tsx
└── README.md
/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/style.scss:
--------------------------------------------------------------------------------
1 | h1, p {
2 | font-family: Lato;
3 | }
--------------------------------------------------------------------------------
/index.tsx:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import { render } from 'react-dom';
3 | import './style.scss';
4 | import App from './src/app';
5 |
6 | render(, document.getElementById('root'));
7 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-ts",
3 | "version": "0.0.0",
4 | "private": true,
5 | "dependencies": {
6 | "@popperjs/core": "^2.9.2",
7 | "@types/react": "^17.0.14",
8 | "@types/react-dom": "^17.0.9",
9 | "bootstrap": "^5.0.2",
10 | "node-sass": "^6.0.1",
11 | "react": "^17.0.2",
12 | "react-bootstrap": "^1.6.1",
13 | "react-dom": "^17.0.2"
14 | },
15 | "scripts": {
16 | "start": "react-scripts-ts start",
17 | "build": "react-scripts-ts build",
18 | "test": "react-scripts-ts test --env=jsdom",
19 | "eject": "react-scripts-ts eject"
20 | },
21 | "devDependencies": {
22 | "react-scripts-ts": "latest"
23 | }
24 | }
--------------------------------------------------------------------------------
/src/app.tsx:
--------------------------------------------------------------------------------
1 | import React, { useEffect, useState } from 'react';
2 |
3 | function App() {
4 | const [count, setCount] = useState(0);
5 | const [revcount, setRevcount] = useState(0);
6 |
7 | useEffect(() => {
8 | console.log('Everytime called.');
9 | });
10 |
11 | useEffect(() => {
12 | console.log('Onetime called i.e on mount');
13 | }, []);
14 |
15 | useEffect(() => {
16 | console.log('called on mount and when count gets updated');
17 | }, [count]);
18 |
19 | useEffect(() => {
20 | console.log('called on mount and when revcount gets updated');
21 | }, [revcount]);
22 |
23 | useEffect(() => {
24 | console.log('called on mount and when count/revcount gets updated');
25 | }, [count, revcount]);
26 |
27 | function increase() {
28 | setCount(count + 1);
29 | }
30 |
31 | function decrease() {
32 | setRevcount(revcount - 1);
33 | }
34 |
35 | return (
36 |
37 | count: {count}
38 |
39 | reverse count: {revcount}
40 |
41 | );
42 | }
43 |
44 | export default App;
45 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # react-ts-useeffect
2 |
3 | app.tsx
4 |
5 | ```js
6 | import React, { useEffect, useState } from 'react';
7 |
8 | function App() {
9 | const [count, setCount] = useState(0);
10 | const [revcount, setRevcount] = useState(0);
11 |
12 | useEffect(() => {
13 | console.log('Everytime called.');
14 | });
15 |
16 | useEffect(() => {
17 | console.log('Onetime called i.e on mount');
18 | }, []);
19 |
20 | useEffect(() => {
21 | console.log('called on mount and when count gets updated');
22 | }, [count]);
23 |
24 | useEffect(() => {
25 | console.log('called on mount and when revcount gets updated');
26 | }, [revcount]);
27 |
28 | useEffect(() => {
29 | console.log('called on mount and when count/revcount gets updated');
30 | }, [count, revcount]);
31 |
32 | function increase() {
33 | setCount(count + 1);
34 | }
35 |
36 | function decrease() {
37 | setRevcount(revcount - 1);
38 | }
39 |
40 | return (
41 |
42 | count: {count}
43 |
44 | reverse count: {revcount}
45 |
46 | );
47 | }
48 |
49 | export default App;
50 | ```
51 |
--------------------------------------------------------------------------------