Skip to content

Commit 8117fb8

Browse files
committed
feat: add useState base
1 parent ef10aa8 commit 8117fb8

File tree

8 files changed

+7412
-0
lines changed

8 files changed

+7412
-0
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ Learn React with TypeScript
1717
- State(withStateHandlers)
1818
- [Base](https://github.com/locol23/learn-react-typescript/tree/master/packages/recompose-state-base)
1919
- React Hooks
20+
- useState
21+
- [Base](./packages/hooks-use-state-base)
2022
- useEffect
2123
- [Base](./packages/hooks-use-effect-base)
2224
- [Goal](./packages/hooks-use-effect-goal)
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# hooks-use-state-base
2+
3+
[Hooks API Reference](https://reactjs.org/docs/hooks-reference.html)
4+
5+
## useEffect
6+
7+
```tsx
8+
const App = () => {
9+
const [title, setTitle] = useState<string>('Initial Title')
10+
const handler = () => setTitle('Change Title')
11+
12+
return (
13+
<>
14+
<h1>{title}</h1>
15+
<button onClick={handler}>click</button>
16+
</>
17+
)
18+
}
19+
```
20+

packages/hooks-use-state-base/package-lock.json

Lines changed: 7313 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"name": "hooks-use-state-base",
3+
"version": "1.0.0",
4+
"main": "index.js",
5+
"repository": "https://github.com/locol23/learn-react-ts.git",
6+
"license": "MIT",
7+
"scripts": {
8+
"clean": "rimraf dist .cache",
9+
"parcel:dev": "parcel src/index.html --open",
10+
"parcel:prod": "parcel build src/index.html",
11+
"dev": "run-s clean parcel:dev",
12+
"build": "run-s clean parcel:prod"
13+
},
14+
"dependencies": {
15+
"react": "^16.13.1",
16+
"react-dom": "^16.13.1"
17+
},
18+
"devDependencies": {
19+
"@types/react": "^16.9.35",
20+
"@types/react-dom": "^16.9.8",
21+
"npm-run-all": "^4.1.5",
22+
"parcel-bundler": "^1.12.4",
23+
"rimraf": "^3.0.0",
24+
"typescript": "^3.9.3"
25+
}
26+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import React, { useState } from 'react'
2+
3+
export const App = () => {
4+
const [title, setTitle] = useState<string>('Initial Title')
5+
const handler = () => setTitle('Change Title')
6+
7+
return (
8+
<>
9+
<h1>{title}</h1>
10+
<button onClick={handler}>click</button>
11+
</>
12+
)
13+
}
14+
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>React Typescript Boilerplate</title>
6+
</head>
7+
<body>
8+
<div id="app">Loading...</div>
9+
<script src="index.tsx"></script>
10+
</body>
11+
</html>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import React from 'react'
2+
import ReactDOM from 'react-dom'
3+
import { App } from './components/App'
4+
5+
ReactDOM.render(<App />, document.getElementById('app'))
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"compilerOptions": {
3+
"target": "es5",
4+
"module": "CommonJS",
5+
"lib": ["ESNext", "DOM"],
6+
"allowJs": false,
7+
"jsx": "react",
8+
"removeComments": true,
9+
"strict": true,
10+
"moduleResolution": "Node",
11+
"noUnusedLocals": true,
12+
"noUnusedParameters": true,
13+
"noImplicitReturns": true,
14+
"noFallthroughCasesInSwitch": true,
15+
"allowSyntheticDefaultImports": true,
16+
"esModuleInterop": true,
17+
"forceConsistentCasingInFileNames": true
18+
},
19+
"include": ["./src/**/*"],
20+
"exclude": ["./node_modules"]
21+
}

0 commit comments

Comments
 (0)