Skip to content

Commit f762246

Browse files
preload allways on the server
1 parent 6981602 commit f762246

File tree

8 files changed

+429
-395
lines changed

8 files changed

+429
-395
lines changed

.env

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ PROD_PORT=5000
55
PROD_HOST=localhost
66
PUBLIC_API_HOST=localhost:9000
77
CRYPTO_KEY=ad$cr3efW89ypg
8-
SSR=true
9-
UI=material
8+
SSR=false
9+
UI=chakra
1010
MIDDLEWARE=false
1111
ANIMATE_ROUTER=false
1212
SERVER_ENTRY=./src/server/entry.ts

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@
99
"start": "cross-env NODE_ENV=production node ./dist/server/app"
1010
},
1111
"dependencies": {
12-
"@chakra-ui/react": "^1.7.3",
12+
"@chakra-ui/react": "^1.7.4",
1313
"@emotion/react": "^11.7.1",
1414
"@emotion/server": "^11.4.0",
1515
"@emotion/styled": "^11.6.0",
1616
"@loadable/component": "^5.15.2",
1717
"@loadable/server": "^5.15.2",
18-
"@mui/material": "^5.2.6",
18+
"@mui/material": "^5.2.7",
1919
"antd": "^4.18.2",
2020
"axios": "^0.24.0",
2121
"chalk": "4",
@@ -34,7 +34,7 @@
3434
"react": "^17.0.2",
3535
"react-dom": "^17.0.2",
3636
"react-helmet-async": "^1.2.2",
37-
"react-intl": "^5.24.0",
37+
"react-intl": "^5.24.1",
3838
"react-redux": "^7.2.6",
3939
"react-router": "6.2.1",
4040
"react-router-dom": "6.2.1",
@@ -72,7 +72,7 @@
7272
"@types/loadable__server": "^5.12.3",
7373
"@types/lodash": "^4.14.178",
7474
"@types/multer": "^1.4.7",
75-
"@types/node": "^17.0.5",
75+
"@types/node": "^17.0.8",
7676
"@types/react": "^17.0.38",
7777
"@types/react-dom": "^17.0.11",
7878
"@types/react-redux": "^7.1.21",
@@ -81,7 +81,7 @@
8181
"@types/webpack-env": "^1.16.3",
8282
"@types/webpack-hot-middleware": "^2.25.4",
8383
"@typescript-eslint/eslint-plugin": "^5.8.1",
84-
"@typescript-eslint/parser": "^5.8.1",
84+
"@typescript-eslint/parser": "^5.9.0",
8585
"autoprefixer": "^10.4.1",
8686
"babel-loader": "^8.2.2",
8787
"babel-plugin-import": "^1.13.3",

src/client/entry.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ import { createUniversalStore } from "store";
77
import { log } from "utils/log";
88
import { safeData } from "utils/safeData";
99
import { StoreState } from "types/store";
10-
import { preLoad } from "utils/preLoad";
11-
import { allRoutes } from "router/routes";
1210

1311
const place = document.querySelector("#__content__");
1412

@@ -49,8 +47,7 @@ if (__UI__ === "material") {
4947
}
5048

5149
if (!window.__ENV__.SSR) {
52-
// for client side render, we need load component props first
53-
preLoad(allRoutes, location.pathname, store).then(() => loadableReady(() => render(<Root store={store} />, place)));
50+
loadableReady(() => render(<Root store={store} />, place));
5451
} else {
5552
if (__DEVELOPMENT__ && __MIDDLEWARE__) {
5653
log("not hydrate render on client", "warn");

src/server/middleware/renderPage/renderCSR.tsx

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ import { HTML } from "template/Html";
66
import { manifestLoadable } from "utils/manifest";
77

88
import { AnyAction, composeRender } from "./compose";
9-
import { globalEnv, initLang, initStore, loadLang } from "./middleware";
9+
import { globalEnv, initLang, initStore, loadLang, loadStore } from "./middleware";
1010
import { ServerError } from "server/utils/error";
1111

1212
// 客户端渲染
13-
const targetRender: AnyAction = async ({ res, store, lang, env }) => {
13+
const targetRender: AnyAction = async ({ res, store, lang, env, serverSideProps = {} }) => {
1414
if (!store || !lang || !env) {
1515
throw new ServerError("server 初始化失败", 500);
1616
}
@@ -19,20 +19,19 @@ const targetRender: AnyAction = async ({ res, store, lang, env }) => {
1919
const styleElements = webExtractor.getStyleElements();
2020
const scriptElements = webExtractor.getScriptElements();
2121

22-
env["LANG"] = lang;
23-
2422
res.send(
2523
"<!doctype html>" +
2624
renderToString(
2725
<HTML
28-
env={JSON.stringify(env)}
29-
lang={JSON.stringify(lang)}
30-
script={scriptElements}
31-
link={linkElements.concat(styleElements)}
26+
env={JSON.stringify(env)}
27+
lang={JSON.stringify(lang)}
28+
script={scriptElements}
29+
link={linkElements.concat(styleElements)}
30+
serverSideProps={JSON.stringify(serverSideProps)}
3231
reduxInitialState={JSON.stringify(store.getState())}
3332
/>
3433
)
3534
);
3635
};
3736

38-
export const renderCSR = composeRender(globalEnv, initLang, initStore, loadLang)(targetRender);
37+
export const renderCSR = composeRender(globalEnv, initLang, initStore, loadStore, loadLang)(targetRender);

src/server/middleware/renderPage/renderSSR/renderAntDesign.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ export const targetRender: SafeAction = async ({ req, res, store, lang, env, ser
3838
"<!doctype html>" +
3939
renderToString(
4040
<HTML
41-
lang={JSON.stringify(lang)}
4241
env={JSON.stringify(env)}
42+
lang={JSON.stringify(lang)}
4343
script={scriptElements}
4444
helmetContext={helmetContext}
4545
link={linkElements.concat(styleElements)}

src/server/middleware/renderPage/renderSSR/renderChakra.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ export const targetRender: SafeAction = async ({ req, res, store, lang, env, ser
5252
"<!doctype html>" +
5353
renderToString(
5454
<HTML
55-
lang={JSON.stringify(lang)}
5655
env={JSON.stringify(env)}
56+
lang={JSON.stringify(lang)}
5757
script={scriptElements}
5858
helmetContext={helmetContext}
5959
emotionChunks={emotionChunks}

src/server/middleware/renderPage/renderSSR/renderMaterial.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ export const targetRender: SafeAction = async ({ req, res, store, lang, env, ser
5454
"<!doctype html>" +
5555
renderToString(
5656
<HTML
57-
lang={JSON.stringify(lang)}
5857
env={JSON.stringify(env)}
58+
lang={JSON.stringify(lang)}
5959
script={scriptElements}
6060
helmetContext={helmetContext}
6161
emotionChunks={emotionChunks}

0 commit comments

Comments
 (0)