React-JSX写法
通过createElement创建元素存在的问题,如果结构比较简单还好,但是如果结构比较复杂,就比较难以下手,所以大牛们就发明了JSX
,专门用来编写React中的页面结构体的。
什么是 JSX
JSX === JavaScript + X === (XML) === (eXtension)
,JSX是一个看起来很像 XML 的 JavaScript 语法扩展。
为什么要使用 JSX
使用JSX使得我们在React中编写页面结构更为简单、灵活,JSX 是类型安全的,在编译过程中就能发现错误,JSX 执行更快,因为它在编译为 JavaScript 代码后进行了优化,可以防止XSS注入攻击。
JSX 的本质
浏览器只认识JS不认识JSX, 所以我们编写的JSX代码是无法在浏览器中执行的,为了解决这个问题, 我们需要借助babel
将JSX转换成JS, 也就是转换成React.createElement()。
https://zh-hans.reactjs.org/docs/react-without-jsx.html
在项目中将 JSX 转换成 JS
导入babel.js
在script标签上添加type="text/babel"
改造之前写的案例的代码,改成JSX写法如下所示:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="React/react.development.v17.js"></script>
<script src="React/react-dom.development.v17.js"></script>
<script src="React/babel.min.js"></script>
</head>
<body>
<div id="app"></div>
<script type="text/babel">
// 1.创建虚拟DOM
let message = 'BNTang';
function myRender() {
let oRoot = (
<div>
<div>{message}</div>
<button onClick={myFn}>按钮</button>
</div>
)
ReactDOM.render(oRoot, document.getElementById('app'), () => {
console.log('已经将虚拟DOM转换成了真实DOM, 已经渲染到界面上了');
});
}
myRender();
function myFn() {
message = 'www.it6666.top';
myRender();
}
</script>
</body>
</html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具