在HTML中引入React和JSX

html,引入,react,jsx · 浏览次数 : 113

小编点评

## Vue 结合 Pure HTML 的体验 Vue 可以方便地与 Pure HTML 结合,而 React 需要依赖第三方库才能 achieve这种效果。 **使用 React 和 JSX 在 Pure HTML 中:** 1. **创建容器**: 使用 `document.getElementById` 获取页面元素。 2. **编写 JSX**: 创建页面结构,包括 `div` 用于容器、`div` 用于用户信息、`input` 用于输入框。 3. **使用 `React.createElement` 创建组件**: 将 JSX 代码转换成 `React.createElement` 方法的调用。 4. **将组件渲染**: 将创建的组件渲染到容器中。 **示例代码**: ```jsx const container = document.getElementById('root'); const root = ReactDOM.createRoot(container); root.render(); ``` **依赖**: 在 Pure HTML 中使用 React 和 JSX 需要以下依赖: * **react** * **react-dom** * **babel** **注意**: * 使用 React 和 JSX 在 Pure HTML 中可能降低性能,因为 JSX 代码会转化为 DOM 树,需要浏览器进行解析。 * 推荐使用 CRA 创建 React 应用,并打包成静态文件以提高性能。 **总结**: 使用 React 和 JSX 在 Pure HTML 中可能存在性能瓶颈,但可以通过适当的配置和代码优化来改善性能。

正文

前言

Vue 可以非常方便地与 Pure HTML 结合,代替 jQuery 的功能,有一次遇到类似的场景时,我就想 React 能不能也以这种方式接入 HTML 网页,从而提高开发效率。

结果当然是可以的,只不过在 HTML 里直接 JSX 似乎会降低一些性能… 凑合用吧

引入依赖

要在 Pure HTML 里使用 React 和 JSX,需要以下依赖

  • react
  • react-dom
  • babel

直接用 unpkg 的 CDN 就好。

<script src="https://unpkg.com/react@18/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js" crossorigin></script>
<script src="https://cdn.bootcdn.net/ajax/libs/babel-standalone/7.20.6/babel.min.js"></script>

开始写代码

像 Vue 一样,需要在页面里创建个容器

<div id="root"></div>

然后 JSX 建议新建个文件单独写,这样 IDE 提示会比较好。

这里新建一个 app.jsx 文件

在依赖的后面引入

<script type="text/babel" src="js/app.jsx"></script>

然后直接开写 JSX

function App() {
    const [name, setName] = React.useState("codelab")
    return (
        <div>
            <div>hello, {name}</div>
            <input value={name} onChange={e => setName(e.target.value)} />
        </div>
    )
}

const container = document.getElementById('root')
const root = ReactDOM.createRoot(container)
root.render(<App/>)

搞定

实际使用效果勉强还可以。

当然最好还是用 CRA 来创建 React 应用,然后打包出来部署,不然复杂页面的性能会比较捉急。

与在HTML中引入React和JSX相似的内容:

在HTML中引入React和JSX

## 前言 Vue 可以非常方便地与 Pure HTML 结合,代替 jQuery 的功能,有一次遇到类似的场景时,我就想 React 能不能也以这种方式接入 HTML 网页,从而提高开发效率。 结果当然是可以的,只不过在 HTML 里直接 JSX 似乎会降低一些性能… 凑合用吧 ## 引入依赖 要

Hooks与事件绑定

Hooks与事件绑定 在React中,我们经常需要为组件添加事件处理函数,例如处理表单提交、处理点击事件等。通常情况下,我们需要在类组件中使用this关键字来绑定事件处理函数的上下文,以便在函数中使用组件的实例属性和方法。React Hooks是React 16.8引入的一个新特性,其出现让Reac

初探富文本之React实时预览

初探富文本之React实时预览 在前文中我们探讨了很多关于富文本引擎和协同的能力,在本文中我们更偏向具体的应用组件实现。在一些场景中比如组件库的文档编写时,我们希望能够有实时预览的能力,也就是用户可以在文档中直接编写代码,然后在页面中实时预览,这样可以让用户更加直观的了解组件的使用方式,这也是很多组

JavaScript快速入门(二)

文件中引入JavaScript 嵌入到HTML文件中 在body或者head中添加script标签 引入js文件 创建一个js文件 var age = 20; console.log(age); 在

[WPF]浅析依赖属性(DependencyProperty)

在WPF中,引入了依赖属性这个概念,提到依赖属性时通常都会说依赖属性能节省实例对内存的开销。此外依赖属性还有两大优势。 支持多属性值,依赖属性系统可以储存多个值,配合Expression、Style、Animation等可以给我们带来很强的开发体验。 加入了属性变化通知,限制、验证等功能。方便我们使

Java 21 新特性:虚拟线程(Virtual Threads)

在Java 21中,引入了虚拟线程(Virtual Threads)来简化和增强并发性,这使得在Java中编程并发程序更容易、更高效。 虚拟线程,也称为“用户模式线程(user-mode threads)”或“纤程(fibers)”。该功能旨在简化并发编程并提供更好的可扩展性。虚拟线程是轻量级的,这

还在stream中使用peek?不要被这些陷阱绊住了

简介 自从JDK中引入了stream之后,仿佛一切都变得很简单,根据stream提供的各种方法,如map,peek,flatmap等等,让我们的编程变得更美好。 事实上,我也经常在项目中看到有些小伙伴会经常使用peek来进行一些业务逻辑处理。 那么既然JDK文档中说peek方法主要是在调试的情况下使

Rust如何引入源码作为依赖

问题描述 通常我们在rust项目中引入第三方依赖包时,会直接指定包的版本,这种方式指定后,Cargo在编译时会从crates.io这个源中下载这些依赖包。 [package] name = "foo" version = "0.1.0" edition = "2021" [dependencies]

手把手教你如何在报表中查询数据

每周一个报表小技巧:如何在报表中引入数据筛选功能 >摘要:本文由葡萄城技术团队于博客园原创并首发。转载请注明出处:[葡萄城官网](https://www.grapecity.com.cn/),葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 # 前言篇 在当今信息爆炸的时代,面对海量的

Asp-Net-Core开发笔记:快速在已有项目中引入EFCore

前言 很多项目一开始选型的时候没有选择EFCore,不过EFCore确实好用,也许由于种种原因后面还是需要用到,这时候引入EFCore也很方便。 本文以 StarBlog 为例,StarBlog 目前使用的 ORM 是 FreeSQL ,引入 EFCore 对我来说最大的好处是支持多个数据库,如果是