React 代码演示
小于 1 分钟
格式
::: react-demo 可选的标题文字
```js
// 放置脚本,并通过 `export default` 导出你的 react 组件
```
```css
/* 你的 css 内容 */
```
```json
// 配置 (可选)
```
:::
注意事项
- 使用 React 的时候,为了解析 JSX 必须引入 Babel,此过程由插件自动完成。
- 必须将组件通过
export default
默认导出 - 我们使用 "ShadowDOM" 进行样式隔离,并已经将
document
替换为了shadowRoot
对象。如果需要访问页面的 document,请访问window.document
。
演示
一个函数式 React Demo
React 演示 1
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>
);
};
.box #powerful {
color: blue;
}
::: react-demo React 演示 1
```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;
}
```
:::
一个类式 React Demo
React 演示 2
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>
);
}
}
.box #powerful {
color: blue;
}
::: react-demo React 演示 2
```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;
}
```
:::