1
- import { h , render , useReducer , useCallback } from "fre"
1
+ import { h , render , useReducer , useCallback , memo } from "../node_modules/ fre/dist/fre.esm.js "
2
2
3
3
function random ( max ) {
4
4
return Math . round ( Math . random ( ) * 1000 ) % max
@@ -78,7 +78,7 @@ function listReducer(state, action) {
78
78
const { data, selected } = state
79
79
switch ( action . type ) {
80
80
case "RUN" :
81
- return { data : buildData ( 1000 ) , selected : 0 }
81
+ return { data : buildData ( 10 ) , selected : 0 }
82
82
case "RUN_LOTS" :
83
83
return { data : buildData ( 10000 ) , selected : 0 }
84
84
case "ADD" :
@@ -93,14 +93,14 @@ function listReducer(state, action) {
93
93
case "CLEAR" :
94
94
return { data : [ ] , selected : 0 }
95
95
case "SWAP_ROWS" :
96
- return data . length > 998
96
+ return data . length > 8
97
97
? {
98
98
data : [
99
99
data [ 0 ] ,
100
- data [ 998 ] ,
101
- ...data . slice ( 2 , 998 ) ,
100
+ data [ 8 ] ,
101
+ ...data . slice ( 2 , 8 ) ,
102
102
data [ 1 ] ,
103
- data [ 999 ] ,
103
+ data [ 9 ] ,
104
104
] ,
105
105
}
106
106
: state
@@ -113,7 +113,7 @@ function listReducer(state, action) {
113
113
return state
114
114
}
115
115
116
- const Row = ( { selected, item, dispatch } ) => {
116
+ const Row = memo ( ( { selected, item, dispatch, id } ) => {
117
117
return (
118
118
< tr className = { selected ? "danger" : "" } >
119
119
< td className = "col-md-1" > { item . id } </ td >
@@ -129,7 +129,7 @@ const Row = ({ selected, item, dispatch }) => {
129
129
< td className = "col-md-6" />
130
130
</ tr >
131
131
)
132
- }
132
+ } )
133
133
134
134
const Button = ( { id, cb, title } ) => (
135
135
< div className = "col-sm-6 smallpad" >
@@ -145,7 +145,7 @@ const Button = ({ id, cb, title }) => (
145
145
)
146
146
147
147
148
- const Jumbotron = ( { dispatch } ) => (
148
+ const Jumbotron = memo ( ( { dispatch } ) => (
149
149
< div className = "jumbotron" >
150
150
< div className = "row" >
151
151
< div className = "col-md-6" >
@@ -187,7 +187,7 @@ const Jumbotron = ({ dispatch }) => (
187
187
</ div >
188
188
</ div >
189
189
</ div >
190
- )
190
+ ) )
191
191
192
192
const Main = ( ) => {
193
193
const [ state , setState ] = useReducer ( listReducer , { data : [ ] , selected : 0 } )
@@ -215,4 +215,4 @@ const Main = () => {
215
215
)
216
216
}
217
217
218
- render ( < Main /> , document . getElementById ( "main" ) , { sync : true } )
218
+ render ( < Main /> , document . getElementById ( "main" ) )
0 commit comments