Commit 7c9e10e
committed
Make memo tag determination based on memoized component
Calculate the memo component's hash, not the hash of the pre-memoized component.
This allows PASSTHROUGH children to memoize to the same underlying function and avoid a recursive .render() call.
Updating the `_get_component_hash` function to hash the imports, hooks, custom
code, and app wraps ensures that structurally similar component do not collapse
to the same memo component if critical aspects differ. Previously the hash was
only based on the rendered component itself, so hooks, like on_mount would not
be factored in.1 parent a84e29b commit 7c9e10e
5 files changed
Lines changed: 137 additions & 70 deletions
File tree
- packages/reflex-base/src/reflex_base/components
- reflex
- compiler/plugins
- experimental
- tests/units/compiler
Lines changed: 41 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1381 | 1381 | | |
1382 | 1382 | | |
1383 | 1383 | | |
| 1384 | + | |
| 1385 | + | |
| 1386 | + | |
| 1387 | + | |
| 1388 | + | |
| 1389 | + | |
| 1390 | + | |
| 1391 | + | |
| 1392 | + | |
| 1393 | + | |
| 1394 | + | |
| 1395 | + | |
| 1396 | + | |
| 1397 | + | |
| 1398 | + | |
| 1399 | + | |
| 1400 | + | |
| 1401 | + | |
| 1402 | + | |
| 1403 | + | |
| 1404 | + | |
| 1405 | + | |
| 1406 | + | |
| 1407 | + | |
| 1408 | + | |
| 1409 | + | |
| 1410 | + | |
| 1411 | + | |
| 1412 | + | |
| 1413 | + | |
| 1414 | + | |
| 1415 | + | |
| 1416 | + | |
| 1417 | + | |
| 1418 | + | |
| 1419 | + | |
| 1420 | + | |
| 1421 | + | |
| 1422 | + | |
| 1423 | + | |
| 1424 | + | |
1384 | 1425 | | |
1385 | 1426 | | |
1386 | 1427 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
120 | 120 | | |
121 | 121 | | |
122 | 122 | | |
123 | | - | |
| 123 | + | |
124 | 124 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
| 25 | + | |
31 | 26 | | |
32 | 27 | | |
33 | 28 | | |
| |||
37 | 32 | | |
38 | 33 | | |
39 | 34 | | |
40 | | - | |
41 | 35 | | |
42 | 36 | | |
43 | 37 | | |
44 | 38 | | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | 39 | | |
75 | 40 | | |
76 | 41 | | |
| |||
374 | 339 | | |
375 | 340 | | |
376 | 341 | | |
377 | | - | |
378 | | - | |
379 | | - | |
380 | | - | |
381 | 342 | | |
382 | 343 | | |
383 | | - | |
384 | 344 | | |
385 | | - | |
386 | | - | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
387 | 353 | | |
388 | 354 | | |
389 | 355 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1008 | 1008 | | |
1009 | 1009 | | |
1010 | 1010 | | |
1011 | | - | |
1012 | 1011 | | |
1013 | 1012 | | |
1014 | 1013 | | |
| |||
1020 | 1019 | | |
1021 | 1020 | | |
1022 | 1021 | | |
| 1022 | + | |
| 1023 | + | |
| 1024 | + | |
| 1025 | + | |
| 1026 | + | |
| 1027 | + | |
1023 | 1028 | | |
1024 | | - | |
1025 | 1029 | | |
1026 | 1030 | | |
1027 | 1031 | | |
| |||
1044 | 1048 | | |
1045 | 1049 | | |
1046 | 1050 | | |
1047 | | - | |
1048 | | - | |
1049 | | - | |
1050 | | - | |
1051 | | - | |
1052 | | - | |
| 1051 | + | |
| 1052 | + | |
| 1053 | + | |
| 1054 | + | |
| 1055 | + | |
| 1056 | + | |
| 1057 | + | |
| 1058 | + | |
1053 | 1059 | | |
1054 | 1060 | | |
1055 | | - | |
| 1061 | + | |
| 1062 | + | |
| 1063 | + | |
| 1064 | + | |
| 1065 | + | |
| 1066 | + | |
| 1067 | + | |
| 1068 | + | |
| 1069 | + | |
| 1070 | + | |
| 1071 | + | |
| 1072 | + | |
| 1073 | + | |
| 1074 | + | |
| 1075 | + | |
1056 | 1076 | | |
1057 | 1077 | | |
1058 | 1078 | | |
1059 | 1079 | | |
1060 | 1080 | | |
1061 | | - | |
1062 | | - | |
| 1081 | + | |
| 1082 | + | |
1063 | 1083 | | |
1064 | 1084 | | |
1065 | 1085 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
192 | 192 | | |
193 | 193 | | |
194 | 194 | | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
195 | 239 | | |
196 | 240 | | |
197 | 241 | | |
| |||
305 | 349 | | |
306 | 350 | | |
307 | 351 | | |
308 | | - | |
309 | | - | |
310 | | - | |
| 352 | + | |
311 | 353 | | |
312 | 354 | | |
313 | 355 | | |
| |||
338 | 380 | | |
339 | 381 | | |
340 | 382 | | |
341 | | - | |
342 | | - | |
343 | | - | |
| 383 | + | |
344 | 384 | | |
345 | 385 | | |
346 | | - | |
347 | | - | |
348 | | - | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
349 | 393 | | |
350 | 394 | | |
351 | 395 | | |
| |||
359 | 403 | | |
360 | 404 | | |
361 | 405 | | |
362 | | - | |
363 | 406 | | |
364 | 407 | | |
365 | 408 | | |
366 | 409 | | |
367 | 410 | | |
368 | 411 | | |
369 | | - | |
370 | | - | |
371 | | - | |
372 | | - | |
373 | | - | |
| 412 | + | |
| 413 | + | |
374 | 414 | | |
375 | 415 | | |
376 | 416 | | |
| |||
0 commit comments