Skip to content

Commit 5788938

Browse files
committed
update
1 parent a4439dd commit 5788938

File tree

7 files changed

+139
-154
lines changed

7 files changed

+139
-154
lines changed

src/index.js

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,61 @@
11
import React from 'react';
22
import ReactDOM from 'react-dom';
33
import './index.css';
4-
import AppRouter from './router/index.js';
5-
// import thunkMiddleware from 'redux-thunk'
6-
import * as serviceWorker from './serviceWorker';
4+
75
import { createStore, applyMiddleware } from 'redux';
8-
import { createLogger } from 'redux-logger'
6+
// import { createLogger } from 'redux-logger';
7+
import { Provider } from 'react-redux';
98

109
import reducer from './page/reducer/index';
11-
import { Provider } from 'react-redux';
12-
import req from './req/index.js'
10+
import req from './req/index';
11+
import AppRouter from './router/index';
12+
// import thunkMiddleware from 'redux-thunk'
13+
import * as serviceWorker from './serviceWorker';
1314

14-
const loggerMiddleware = createLogger();
15+
/**
16+
* 官方自带的操作显示工具
17+
*/
18+
// const loggerMiddleware = createLogger();
1519

16-
const logger = store => next => action => {
17-
console.log('dispatching', action)
18-
let result = next(action)
19-
console.log('next state', store.getState())
20-
return result
21-
}
20+
const logger = (store) => (next) => (action) => {
21+
console.log('dispatching', action);
22+
const result = next(action);
23+
console.log('next state', store.getState());
24+
return result;
25+
};
2226

23-
const thunkMiddleware = store => next => action => {
27+
const thunkMiddleware = (store) => (next) => (action) => {
2428
console.log('拦截了');
2529
if (action.type === 'changeMessageCount') {
2630
console.log('符合条件');
2731
setTimeout(() => {
2832
req.user.getMyInfo()
29-
.then((res) => {
30-
if (res.code !== 0) {
31-
req.err.show(res);
32-
return;
33-
}
34-
console.log('timerMiddleware', res.data);
35-
store.dispatch({ type: 'receiveCount', phone: res.data.mobile });
36-
})
37-
.catch(req.err.show)
33+
.then((res) => {
34+
if (res.code !== 0) {
35+
req.err.show(res);
36+
return;
37+
}
38+
console.log('timerMiddleware', res.data);
39+
store.dispatch({ type: 'receiveCount', phone: res.data.mobile });
40+
})
41+
.catch(req.err.show);
3842
}, 2000);
3943
}
4044
next(action);
4145
};
4246

4347
const store = createStore(
4448
reducer,
45-
applyMiddleware(thunkMiddleware, logger)
49+
applyMiddleware(thunkMiddleware, logger),
4650
);
4751

4852
ReactDOM.render(
4953
<Provider store={store}>
50-
< AppRouter / >
51-
</Provider> , document.getElementById('root'));
54+
<AppRouter />
55+
</Provider>, document.getElementById('root'),
56+
);
5257

5358
// If you want your app to work offline and load faster, you can change
5459
// unregister() to register() below. Note this comes with some pitfalls.
5560
// Learn more about service workers: https://bit.ly/CRA-PWA
56-
serviceWorker.unregister();
61+
serviceWorker.unregister();

src/page/About/index.js

Lines changed: 0 additions & 19 deletions
This file was deleted.

src/page/Counter/index.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import React from 'react';
44

55
const mapStateToProps = (state) => ({
66
value: state.count,
7-
phone: state.phone,
87
});
98

109
const mapDispatchToProps = {
@@ -23,25 +22,21 @@ const mapDispatchToProps = {
2322

2423

2524
function Page({
26-
value, phone, onIncreaseClick, onDecreaseClick, changeMessageCount,
25+
value, onIncreaseClick, onDecreaseClick,
2726
}) {
2827
return (
2928
<div style={{ marginLeft: 50 }}>
3029
<h1>{value}</h1>
3130
<button type="button" onClick={onIncreaseClick}>+</button>
3231
<button type="button" style={{ marginLeft: 50 }} onClick={onDecreaseClick}>-</button>
33-
<button type="button" style={{ marginLeft: 50 }} onClick={changeMessageCount}>redux异步</button>
34-
<h2 style={{ marginTop: 20 }}>{phone}</h2>
3532
</div>
3633
);
3734
}
3835

3936
Page.propTypes = {
4037
value: PropTypes.number.isRequired,
41-
phone: PropTypes.number.isRequired,
4238
onIncreaseClick: PropTypes.func.isRequired,
4339
onDecreaseClick: PropTypes.func.isRequired,
44-
changeMessageCount: PropTypes.func.isRequired,
4540
};
4641

4742
export default connect(mapStateToProps, mapDispatchToProps)(Page);

src/page/Optimize/index.js

Lines changed: 39 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import React, { useState } from 'react';
22
import styled from 'styled-components';
3-
import { CSSTransition } from 'react-transition-group'
3+
import PropTypes from 'prop-types';
4+
import {
5+
Radio, Button,
6+
} from 'antd';
7+
import { CSSTransition } from 'react-transition-group';
48

59

610
const StyledDiv = styled.div`
@@ -41,58 +45,57 @@ const StyledDiv = styled.div`
4145
function Page() {
4246
const [color, setColor] = useState('blue');
4347
const [show, setShow] = useState(true);
44-
function changeTab(index) {
45-
if (color === index) {
48+
function changeTab(e) {
49+
if (color === e.target.value) {
4650
return;
4751
}
48-
console.log('改变颜色', index);
49-
setColor(index);
50-
};
52+
// console.log('改变颜色', e.target.value);
53+
setColor(e.target.value);
54+
}
55+
5156
return (
5257
<StyledDiv>
5358
<h4>若父组件选择了blue按钮,子组件则不重复render</h4>
54-
<div className={`line ${color === 'blue' && 'line-height'}`}>
55-
<button onClick={() => changeTab('blue')}>blue</button>
56-
</div>
57-
<div className={`line ${color === 'red' && 'line-height'}`}>
58-
<button onClick={() => changeTab('red')}>red</button>
59-
</div>
60-
<div className={`line ${color === 'black' && 'line-height'}`}>
61-
<button onClick={() => changeTab('black')}>black</button>
62-
</div>
63-
<div className="line">
64-
<button onClick={() => setShow(!show)}>toggleShow</button>
65-
</div>
66-
<CSSTransition
67-
in={show} //用于判断是否出现的状态
68-
timeout={800} //动画持续时间
69-
classNames="fade" //className值,防止重复
70-
unmountOnExit
59+
<Radio.Group value={color} onChange={changeTab}>
60+
<Radio.Button value="blue">blue</Radio.Button>
61+
<Radio.Button value="red">red</Radio.Button>
62+
<Radio.Button value="yellow">yellow</Radio.Button>
63+
</Radio.Group>
64+
<Button style={{ marginLeft: 40 }} type="primary" onClick={() => setShow(!show)}>toggleShow</Button>
65+
<CSSTransition
66+
in={show} // 用于判断是否出现的状态
67+
timeout={800} // 动画持续时间
68+
classNames="fade" // className值,防止重复
69+
unmountOnExit
7170
>
72-
<Son color={color} />
71+
<Son color={color} />
7372
</CSSTransition>
7473
</StyledDiv>
75-
)
74+
);
7675
}
7776

7877
class Son extends React.Component {
7978
constructor(props) {
8079
super(props);
8180
this.state = {
82-
}
83-
};
84-
shouldComponentUpdate(nextProps,nextState){
85-
if(nextProps.color !== 'blue'){
86-
return true
87-
}else{
88-
return false
89-
}
81+
};
9082
}
83+
84+
shouldComponentUpdate(nextProps) {
85+
return nextProps.color !== 'yellow';
86+
}
87+
9188
render() {
92-
console.log('来咯来咯');
89+
console.log('son render');
90+
const { color } = this.props;
9391
return (
94-
<div style={{ color: this.props.color }}>1111</div>
95-
)
92+
<div style={{ color, marginTop: 20 }}>1111</div>
93+
);
9694
}
9795
}
96+
Son.propTypes = {
97+
color: PropTypes.string.isRequired,
98+
};
99+
100+
98101
export default Page;

src/page/Single/index.js

Lines changed: 0 additions & 18 deletions
This file was deleted.

src/page/useMemo/index.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,14 @@ function Page() {
2121
-
2222
{expensive}
2323
</h4>
24-
{val}
24+
{val ? <h4>val</h4> : <h4>请输入内容</h4>}
2525
<div>
26-
<button type="button" onClick={() => setCount(count + 1)}>+c1</button>
27-
</div>
28-
<div>
29-
<input value={val} onChange={(event) => setValue(event.target.value)} />
26+
<button type="button" onClick={() => setCount(count + 1)}>add</button>
27+
<input
28+
style={{ marginLeft: 40 }}
29+
value={val}
30+
onChange={(event) => setValue(event.target.value)}
31+
/>
3032
</div>
3133
</div>
3234
);

0 commit comments

Comments
 (0)