html - 在 html 上反应 JSX
问题描述
我尝试在简单的 HTML 文件上插入反应。https://reactjs.org/docs/add-react-to-a-website.html#add-jsx-to-a-project上有一个官方示例,但我不明白如何呈现 JSX 编码组件以及如何将组件插入另一个组件:
class LikeButton extends React.Component {
constructor(props) {
super(props);
this.state = { liked: false };
}
render() {
if (this.state.liked) {
return "You liked this.";
}
// Display a "Like" <button>
return <button onClick={() => this.setState({ liked: true })}>Like</button>;
}
}
const domContainer = document.querySelector("#like_button_container");
ReactDOM.render(LikeButton, domContainer);
解决方案
因此,您可能已经按照说明将 React 和 ReactDOM 导入 HTML:
<!-- depends where it's hosted -->
<script src="react.min.js"></script>
<script src="reactdom.min.js"></script>
然后将自定义 JS 添加到 HTML 中:
<!-- this goes right before the closing body tag -->
<script src="custom-like-button.js"></script>
最后,您将一个 HTML 元素放在您希望组件呈现的位置,并确保它的 id 与 React 示例末尾的 querySelector 匹配:
<div id="custom-like-button"></div>
至于嵌套组件,您可以将它们嵌套在顶级组件(被注入到 DOM 中的组件)的返回中
class MyComponent extends React.Component {
render() {
return <LikeButton />
}
}
class LikeButton extends React.Component {
render () {
return <button onClick={() => this.setState({ liked: true })}>Like</button>;
}
}
// goes inside <div id="my-component"></div> in html
const domContainer = document.querySelector("#my-component");
ReactDOM.render(MyComponent, domContainer);
推荐阅读
- java - 将服务文件中的 observaleList 项目添加到控制器文件中的另一个,但给出空列表
- oracle - IIS 中 mod_proxy ProxyPreserveHost 的等价物?
- javascript - 本地文件的电子 HTTPS
- css - 图像悬停时的 CSS 过渡不起作用
- javascript - 为什么如果我将resolve()放入fs的回调函数中,promise不会返回
- json - 如何加载json文件?
- reactjs - JHipster React 前端(网关)应用程序属性
- c# - API REST 规则 - 我应该发送整个实体还是只发送要更新的属性
- php - php中只插入一个单选按钮值
- javascript - React:当 props.location.state 未定义时,为什么我的登录页面中的引用变量不默认为“/”?