Skip to content

Commit 33f361b

Browse files
committed
docs: add ssr support documentation
1 parent 2535cd0 commit 33f361b

File tree

5 files changed

+183
-12
lines changed

5 files changed

+183
-12
lines changed

examples/core-react/001-intro.md

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,6 @@ toc: false
2222
目前项目是基于 React 技术栈实现的,所以后缀都加了 `-react` 字眼,后续可能会将 Core 抽离成不依赖于技术栈的纯 JavaScript 项目,以便支持任何技术框架。
2323
:::
2424

25-
FormRender、Search 没有很好的支持 SSR,如果是 Next.js 项目,可以动态导入并配置 ssr 为不启用,如下示例。
26-
27-
```jsx | pure
28-
import dynamic from 'next/dynamic'
29-
30-
const FormRender = dynamic(() => import('@schema-render/form-render-react'), {
31-
ssr: false,
32-
})
33-
```
34-
3525
## Core
3626

3727
渲染内核必须组装 `itemLayout`(表单项布局)、`Renderers`(渲染器集合)来实现一个渲染库,然后通过 JSON Schema 驱动渲染出所需的表单。
@@ -40,5 +30,5 @@ const FormRender = dynamic(() => import('@schema-render/form-render-react'), {
4030

4131
- `协议驱动`:通过编写一份简易的 JSON Schema 来实现内容的渲染,参考[快速上手](./002-quick-start.md)
4232
- `简洁易用`:仁者见仁智者见智,笔者以为是比较言简意赅、易用的,如同内部源码一样,化繁为简,无必要不增实体。
43-
- `高可定制`通过配置与组装 layout、itemLayout、renderers 等可以按需实现一个贴合业务自身的渲染库,如 FormRender。
33+
- `高可定制`通过组装 layout、itemLayout、renderers 等可以按需实现一个贴合自身业务的渲染库,如 FormRender。
4434
- `轻量级`:资源包大小仅 17.6k, gzip 6.5k

examples/core-react/002-quick-start.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ npm install @schema-render/core-react --save
3232

3333
### 示例一
3434

35-
步骤一加步骤二
35+
步骤一和步骤二
3636

3737
```jsx
3838
/**
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
order: 1
3+
toc: content
4+
---
5+
6+
# SSR
7+
8+
## 默认不支持
9+
10+
由于样式原因,FormRender 没有很好的支持 SSR,如果是 Next.js 项目,可以动态导入并配置 ssr 为不启用,如下示例。
11+
12+
```jsx | pure
13+
import dynamic from 'next/dynamic'
14+
15+
const FormRender = dynamic(() => import('@schema-render/form-render-react'), {
16+
ssr: false,
17+
})
18+
```
19+
20+
## 支持 SSR 版本
21+
22+
为了支持 SSR,FormRender 提供了 `npm tag``ssr` 的版本,内部样式由 [CSS Modules](https://github.com/css-modules/css-modules) 完成,故需要配置项目编译软件包。
23+
24+
以 Next.js 为例,Next.js 默认支持 CSS Modules。
25+
26+
### 安装或配置
27+
28+
安装
29+
30+
```bash
31+
npm install @schema-render/core-react@ssr @schema-render/form-render-react@ssr --save
32+
```
33+
34+
或者配置 `package.json`
35+
36+
```json
37+
"dependencies": {
38+
"@schema-render/core-react": "ssr",
39+
"@schema-render/form-render-react": "ssr"
40+
}
41+
```
42+
43+
### 配置 next.config.js
44+
45+
配置 `next.config.js` 编译软件包。
46+
47+
```
48+
transpilePackages: [
49+
'@schema-render/core-react',
50+
'@schema-render/form-render-react',
51+
]
52+
```
53+
54+
### 配置 Antd
55+
56+
同时,需要配置 Antd 支持服务端渲染,可参考 https://ant-design.antgroup.com/docs/react/use-with-next-cn

examples/search-react/002-ssr.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
---
2+
order: 1
3+
toc: content
4+
---
5+
6+
# SSR
7+
8+
## 默认不支持
9+
10+
由于样式原因,Search 没有很好的支持 SSR,如果是 Next.js 项目,可以动态导入并配置 ssr 为不启用,如下示例。
11+
12+
```jsx | pure
13+
import dynamic from 'next/dynamic'
14+
15+
const Search = dynamic(() => import('@schema-render/search-react'), {
16+
ssr: false,
17+
})
18+
```
19+
20+
## 支持 SSR 版本
21+
22+
为了支持 SSR,Search 提供了 `npm tag``ssr` 的版本,内部样式由 [CSS Modules](https://github.com/css-modules/css-modules) 完成,故需要配置项目编译软件包。
23+
24+
以 Next.js 为例,Next.js 默认支持 CSS Modules。
25+
26+
### 安装或配置
27+
28+
安装
29+
30+
```bash
31+
npm install \
32+
@schema-render/core-react@ssr \
33+
@schema-render/form-render-react@ssr \
34+
@schema-render/search-react@ssr --save
35+
```
36+
37+
或者配置 `package.json`
38+
39+
```json
40+
"dependencies": {
41+
"@schema-render/core-react": "ssr",
42+
"@schema-render/form-render-react": "ssr",
43+
"@schema-render/search-react": "ssr",
44+
}
45+
```
46+
47+
### 配置 next.config.js
48+
49+
配置 `next.config.js` 编译软件包。
50+
51+
```js
52+
transpilePackages: [
53+
'@schema-render/core-react',
54+
'@schema-render/form-render-react',
55+
'@schema-render/search-react',
56+
]
57+
```
58+
59+
### 配置 Antd
60+
61+
同时,需要配置 Antd 支持服务端渲染,可参考 https://ant-design.antgroup.com/docs/react/use-with-next-cn
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
---
2+
order: 1
3+
toc: content
4+
---
5+
6+
# SSR
7+
8+
## 默认不支持
9+
10+
由于样式原因,SearchTable 没有很好的支持 SSR,如果是 Next.js 项目,可以动态导入并配置 ssr 为不启用,如下示例。
11+
12+
```jsx | pure
13+
import dynamic from 'next/dynamic'
14+
15+
const SearchTable = dynamic(() => import('@schema-render/search-table-react'), {
16+
ssr: false,
17+
})
18+
```
19+
20+
## 支持 SSR 版本
21+
22+
为了支持 SSR,SearchTable 提供了 `npm tag``ssr` 的版本,内部样式由 [CSS Modules](https://github.com/css-modules/css-modules) 完成,故需要配置项目编译软件包。
23+
24+
以 Next.js 为例,Next.js 默认支持 CSS Modules。
25+
26+
### 安装或配置
27+
28+
安装
29+
30+
```bash
31+
npm install \
32+
@schema-render/core-react@ssr \
33+
@schema-render/form-render-react@ssr \
34+
@schema-render/search-react@ssr \
35+
@schema-render/search-table-react@ssr --save
36+
```
37+
38+
或者配置 `package.json`
39+
40+
```json
41+
"dependencies": {
42+
"@schema-render/core-react": "ssr",
43+
"@schema-render/form-render-react": "ssr",
44+
"@schema-render/search-react": "ssr",
45+
"@schema-render/search-table-react": "ssr",
46+
}
47+
```
48+
49+
### 配置 next.config.js
50+
51+
配置 `next.config.js` 编译软件包。
52+
53+
```js
54+
transpilePackages: [
55+
'@schema-render/core-react',
56+
'@schema-render/form-render-react',
57+
'@schema-render/search-react',
58+
'@schema-render/search-table-react',
59+
]
60+
```
61+
62+
### 配置 Antd
63+
64+
同时,需要配置 Antd 支持服务端渲染,可参考 https://ant-design.antgroup.com/docs/react/use-with-next-cn

0 commit comments

Comments
 (0)