React 代码演示
Mr.Hope ... 2021-8-26 大约 1 分钟
# 格式
::: react-demo 可选的标题文字
```js
// 放置脚本,并通过 `export default` 导出你的 react 组件
```
```css
/* 你的 css 内容 */
```
```json
// 配置 (可选)
```
:::
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
注意事项
- 使用 React 的时候,为了解析 JSX 必须引入 Babel,此过程由插件自动完成。
- 必须将组件通过
export default
默认导出 - 我们使用 "ShadowDOM" 进行样式隔离,并已经将
document
替换为了shadowRoot
对象。如果需要访问页面的 document,请访问window.document
。
# 演示
一个函数式 React Demo
const { useState } = React;
export default () => {
const [message, setMessage] = useState(" 强大");
const handler = () => {
setMessage(`十分${message}`);
};
return (
<div className="box">
<code>vuepress-theme-hope</code>
<span id="powerful" onClick={handler}>
{message}
</span>
</div>
);
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
.box #powerful {
color: blue;
}
1
2
3
2
3
代码
::: react-demo 一个函数式 React Demo
```js
const { useState } = React;
export default () => {
const [message, setMessage] = useState(" 强大");
const handler = () => {
setMessage(`十分${message}`);
};
return (
<div className="box">
<code>vuepress-theme-hope</code>
<span id="powerful" onClick={handler}>
{message}
</span>
</div>
);
};
```
```css
.box #powerful {
color: blue;
}
```
:::
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
一个类式 React Demo
export default class App extends React.Component {
constructor(props) {
super(props);
this.state = { message: "强大" };
}
handler() {
this.setState((state) => ({
message: `十分${state.message}`,
}));
}
render() {
return (
<div className="box">
<code>vuepress-theme-hope</code>
<span id="powerful" onClick={this.handler.bind(this)}>
{this.state.message}
</span>
</div>
);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.box #powerful {
color: blue;
}
1
2
3
2
3
代码
::: react-demo 一个类式 React Demo
```js
export default class App extends React.Component {
constructor(props) {
super(props);
this.state = { message: "强大" };
}
handler() {
this.setState((state) => ({
message: `十分${state.message}`,
}));
}
render() {
return (
<div className="box">
<code>vuepress-theme-hope</code>
<span id="powerful" onClick={this.handler.bind(this)}>
{this.state.message}
</span>
</div>
);
}
}
```
```css
.box #powerful {
color: blue;
}
```
:::
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33