import App from './App';
import {createStore} from 'redux';
import rootReducer from './modules';
import {Provider} from 'react-redux'
import { composeWithDevTools } from 'redux-devtools-extension';
const store = createStore(rootReducer,composeWithDevTools());
ReactDOM.render(
<Provider store= {store}>
<React.StrictMode>
<App />
</React.StrictMode>
</Provider>,
document.getElementById('root')
);
import React from "react";
import CounterContainer from "./components/CounterContainer";
import Todos from "./components/Todos";
function App() {
return (
<div className="App">
<CounterContainer />
<hr />
<Todos />
</div>
);
}
export default App;
const INCREASE = 'counter/INCREASE';
const DECREASE = "conter/DECREASE";
export const increase = () =>({type:INCREASE})
export const decrease = () =>({type:DECREASE})
const initialState = {
number : 0
};
function counter(state = initialState, action){
switch(action.type){
case INCREASE:
return {
number:state.number +1
};
case DECREASE:
return{
number:state.number -1
};
default:
return state;
}
}
export default counter;
import {combineReducers} from 'redux';
import counter from './counter';
import todos from './todos';
const rootReducer = combineReducers({
counter,
todos
})
export default rootReducer;
import React from 'react'
const Counter = ({number,onIncrease,onDecrease}) => {
return (
<div>
<h1>{number}</h1>
<button onClick = {onIncrease}> + </button>
<button onClick = {onDecrease}> - </button>
</div>
)
}
export default Counter
import React from 'react'
const Counter = ({number,onIncrease,onDecrease}) => {
return (
<div>
<h1>{number}</h1>
<button onClick = {onIncrease}> + </button>
<button onClick = {onDecrease}> - </button>
</div>
)
}
export default Counter
import React from 'react';
const TodoItem = ({todo,onRemove,onToggle})=>{
return(
<div>
<input type="checbox"></input>
<span>예제텍스트</span>
<button>삭제</button>
</div>
)
};
const Todos = ({input,todos,onChangeInput,onInsert,onToggle,onRemove}) => {
const onSubmit = e =>{e.preventDefault()};
return (
<div >
<form onSubmit = {onSubmit}>
<input />
<button type="submit">등록</button>
</form>
<div>
<TodoItem />
<TodoItem />
<TodoItem />
<TodoItem />
</div>
</div>
)
}
export default Todos