在 React 项目中启用 JSX 语法|学习笔记

简介: 快速学习在 React 项目中启用 JSX 语法

开发者学堂课程【React 入门与实战在 React 项目中启用 JSX 语法】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/585/detail/8083


在 React 项目中启用 JSX 语法


目录:

一、React 项目示例

二、JSX 语法概念

三、JSX 本质

四、启动 JSX


一、React 项目示例

1.创建 index.js

//第一步:导入包

import React from 'react'

import ReactDoM from 'react-dom'

//第二步:创建虚拟 DOM ,构建好属性也可不在此构建

const mydiv = React.createElement( 'div', ( id: 'mydiv', title: 'div aaa' ),"这是一个div元素’)

//第三步:调用 render 函数渲染

//调用 ReactDOM ,给一个 DOM 元素容器

ReactDoM . render(mydiv,document.getElementByid ( ' app ' ))

2.创建 Index.html

<!DOCTYPE html><html lang "en">

<head>

<meta charset="UPE-8">

<title>Index首页</title>

<!-- <script src=" . ./ dist/main.js"></ script> -->

<!-- <script src=" / main .js"></script> -->

</ head>

<body>

<!--创建一个容器,将来渲染的虚拟DoM,会放到容器内显示--><div id="app ></div>

</ body>

</ html>

3. 运行项目

(1) 打开终端输入:

//使用 npm

PS C:\Users\liulongbin\DesktopIreact-day1

代码\e1.webpack-base> npm run dev

(2) 弹出浏览器

0cb27c8ae989a1a1cfeb063c30e4456.jpg

回顾:什么时虚拟 DOM ?

JS 对象的形式来表示 DOM DOM 之间的嵌套关系

HTML是最优秀的标记语言;

想要创建虚拟 DOM ,在页面上即使普通标签

官网封装代码:

Const mydiv=<div id=mydiv title=div aaa>

这是一个 div 元素</div>

//类似于 html 标签语言,但不符合 js 代码规范

////注意:Js 文件中,默认不能写这种类似于 HTM 的标记;否则打包会失败;

const mydiv = React.createElement( 'div', ( id: 'mydiv', title: 'div aaa' ),"这是一个div元素’)

效果一样

运行代码:

1139a9d0c890fbd5eae7d9f33b712f5.jpg

报错解决:

可以使用 babel 来转换这些 Js 中的标签;

Const 是一个简单的js对象,要么是一个复杂的 js 对象,在 js 中混合写入类似于HTTML 的语法叫做 JSX 语法

二、JSX语法

1.概念

Js 中,混合写入类似于 HTM 的语法,叫做 Jsx 语法;

符合 XML 规范的 JS 语法

Jsx 默认情况下浏览器不识别,可以把 jsx 语法转一下,通过 babel 工具转化为 react,createElement 语法来执行

2.本质

Jsx 语法的本质,还是在运行的时候,被转换成了 React.createElement 形犹来执行的

转化后通过 API 调用转换好之后运行在页面

3.启动jsx

1)安装 babel 插件

//安装两套包

运行

Cnpm i    babel-core   babel-loader     babel-plugin-transform-runtime -D

安装执行结果:

e842c924c8a0dd2b4e4cee6c71f98f9.jpg

//两个语法:第一个预防 env,第二个语法 stage-0

运行cnpm i babel-preset-errv babel-preset-stage-e -D

安装执行结果:

1111d37a3d5941a39b82b69f3ca61e2.jpg

打开webpack.config.js

添加:

//向外暴露一个打包的配置对象;因为 webpack 是基于 Node 构建的;所以 webpack 支持所有Node API 和语法

//webpack 默认只能打包处理.js后缀名类型的文件,像 .png,vue 无法主动处理,所以要配置第三方 loader

module.exports = {

mode: 'development', ll developmentproduction

// webpack 4.x 中,有一个很大的特性,就是约定大于配置﹑约定,默认的打包入口路径是

src -> index.js

plugins: [

htm1P1ugin

] ,

//只要 webpack 遇见不能处理的东西,都会第一时间需要第三方模块

module: {//所有第三方模块的配置规则

Rules:{//第三方匹配规则,js 或者 jsx 文件结尾的

//一个loader可以写为字符串,多个需要写为数组

//一定要添加exclude,否则整个项目是运行不起来的,会报错

{test:/\.js|jsx$/,use:babel-loader’,exclude/node_modules/}

//千万别忘记添加排除项

]

}

}

2)安装能够识别转换 jsx 语法的包

babel-preset-react

//把不认识的jsx语法转换为识别的语法

运行cnpm i babel-preset-react -D

(3)添加.babelrc] 配置文件

Bebel 项目文件一般放入项目的根目录下,命名为.babelrc ,千万不要忘记添加.,要符合 js 语法规则,双引号且不能写注释

{

//数组:放置所有语法

"presets" : [ "env", "stage-0" , "react"],

//数组:放置所有插件

"plugins": ["transform-runtime""]

//顺序没有差别

}

配置好 bebal 后运行代码:

3cd13b86b45e6637847c3db49a8ad7a.jpg

实现嵌套:在 index.js 中添加代码:

Const mydiv=<div id=mydiv title=div aaa>

这是一个 div 元素</div>

<h1>这是一个大大的H1</h1>

运行代码:

df7e9dcefb683e23dfcc33d7055b0a9.jpg

这样很方便,当时它不是直接把标签丢在页面,内部是转换的过程。

相关文章
|
9天前
|
XML 前端开发 JavaScript
react之了解jsx
react之了解jsx
|
2月前
|
前端开发 JavaScript
React项目路由懒加载lazy、Suspense,使第一次打开项目页面变快
本文介绍了在React项目中实现路由懒加载的方法,使用React提供的`lazy`和`Suspense`来优化项目首次加载的速度。通过将路由组件改为懒加载的方式,可以显著减少初始包的大小,从而加快首次加载速度。文章还展示了如何使用`Suspense`组件包裹`Switch`来实现懒加载过程中的fallback效果,并提供了使用前后的加载时间对比,说明了懒加载对性能的提升作用。
173 2
React项目路由懒加载lazy、Suspense,使第一次打开项目页面变快
|
2月前
|
前端开发 JavaScript Java
SpringBoot项目部署打包好的React、Vue项目刷新报错404
本文讨论了在SpringBoot项目中部署React或Vue打包好的前端项目时,刷新页面导致404错误的问题,并提供了两种解决方案:一是在SpringBoot启动类中配置错误页面重定向到index.html,二是将前端路由改为hash模式以避免刷新问题。
230 1
|
9天前
|
JavaScript 前端开发 容器
React零基础入门02--JSX语法基础
React零基础入门02--JSX语法基础
React零基础入门02--JSX语法基础
|
1月前
|
XML 前端开发 JavaScript
react学习笔记一:入门级小白到脚手架(create-react-app)开发项目
这篇文章是React的学习笔记,覆盖了从React的基础用法到高级特性,包括组件化、状态管理、生命周期、虚拟DOM等主题,适合React初学者参考。
92 0
react学习笔记一:入门级小白到脚手架(create-react-app)开发项目
|
21天前
|
前端开发 JavaScript
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
|
25天前
|
XML 前端开发 JavaScript
React JSX
React 使用 JSX(一种类似 XML 的 JavaScript 语法扩展)来替代传统 JavaScript 编写 UI。JSX 使代码更简洁、执行更快且类型安全。例如,`&lt;h1&gt;Hello, world!&lt;/h1&gt;` 实际上是创建一个 React 元素,通过 `ReactDOM.render()` 渲染到 DOM。注意,JSX 中使用 `className` 替代 HTML 的 `class` 属性。
|
9天前
|
存储 前端开发 JavaScript
react之jsx编译原理
react之jsx编译原理
|
1月前
|
XML 前端开发 JavaScript
React JSX
10月更文挑战第7天
15 2
|
2月前
|
移动开发 前端开发
react项目配合diff实现文件对比差异功能
在React项目中,可以使用`diff`库实现文件内容对比差异功能。首先安装`diff`库,然后在组件中引入并使用`Diff.diffChars`或`Diff.diffLines`方法比较文本差异。通过循环遍历`diff`结果,可以生成不同样式的HTML元素来高亮显示文本差异。
115 1
react项目配合diff实现文件对比差异功能