JSX语法学习(一)
目录
1. JSX 基本概念
概念
注意
演示
总结
2. JSX 基本使用
基本使用
思考问题
总结
补充
3. JSX 的注意事项
使用细节
代码示例
总结
1. JSX 基本概念
知道 JSX 是什么,知道 JSX 的优点
概念
JSX
是JavaScript XML
的简写,表示了在 JavaScript 中书写 XML 格式的代码。它是React
的核心内容,它可以让我们在React
中创建元素更加简单,更加直观,提高开发效率。
注意
JSX
是JavaScript
的语法扩展,它无法在浏览器中直接使用,在create-react-app
脚手架中内置了@babel/plugin-transform-react-jsx
插件来解析它,成为JavaScript
的标准语法。
演示
- 我们可以在 babel 的网站,在线测试 babeljs ,这个网站可以把
JSX
代码转换成JS
代码
总结
- 什么是
JSX
?JS
扩展语法,可以在JS
中书写XML
语法
JSX
的优点?- 可以更加
简洁、直观、高效
的声明 UI 界面
- 可以更加
2. JSX 基本使用
掌握 JSX 在 React 中的基本使用
基本使用
- 导入
react-dom
- 使用
JSX
创建元素 - 使用
react-dom
渲染
思考问题
- 需要导入
react
包吗?
落地代码:
import ReactDom from 'react-dom';const element = (<div id="box"><h1>JSX</h1><ul><li>tom</li><li>jack</li><li>tony</li></ul></div>
);ReactDom.render(element, document.getElementById('root'));
上述代码运行成功,现在 React17x
可以不必导入,因为在 babel
转换的时候自动导入了创建 React 元素的依赖。但是如果你使用 React16x
那么你还需要手动导入 React
,如何验证?安装下低版本的 React 包即可。
总结
- 导入
react-dom
使用JSX
创建元素 使用react-dom
渲染元素 17x
版本的React
不需要导入,如果将来遇见低版本
是需要导入的。
补充
vscode settings.json
加上 在 react 中使用 ement 语法提示创建标签
"emmet.includeLanguages": {"javascript": "javascriptreact"
}
3. JSX 的注意事项
知道 JSX 的使用细节
使用细节
- 特殊属性写法
className
htmlFor
- 没有内容的节点可以使用
单标签
- 必需有根节点,可以使用
<></>
幽灵标签,其实是<React.Fragment></React.Fragment>
简写 - 如果
JSX
有换行,最好使用()
包裹
代码示例
- 特殊属性
// class ---> className for ---> htmlFor 特殊属性
<div className="box"><label htmlFor="ck"></label><input id="ck" type="checkbox" />
</div>
- 可单标签
// <span className="icon-edit"></span> 没内容可以写成单标签形势
<span className="icon-edit" />
- 有根节点
// 1. 使用 React.Fragment 代码片段
import React from 'react';
import ReactDom from 'react-dom';
const element = (<React.Fragment><div>header</div><div>footer</div></React.Fragment>
);
ReactDom.render(element, document.getElementById('root'));
// 2. 使用<></>可以避免没必要的标签产生 简写 React.Fragment
import ReactDom from 'react-dom';
const element = (<><div>header</div><div>footer</div></>
);
ReactDom.render(element, document.getElementById('root'));
- 用小括号
// 有换行的时候最好使用()可以让标签对其,避免没必要的错误
const element = (<><div>header</div><div>footer</div></>
);
总结
- 那些特殊属性?
className
htmlFor
- 什么时候使用单标签?
- 没有内容的标签
- 必需又根标签,如果不想产生无用标签怎么办?
- 使用
<></>
代码片段标签
- 使用
- 建议多行用
()
包裹
JSX语法学习(一)相关推荐
- jsx 调用php,JavaScript_JavaScript的React框架中的JSX语法学习入门教程,什么是JSX?
在用React写组件的 - phpStudy...
JavaScript的React框架中的JSX语法学习入门教程 什么是JSX? 在用React写组件的时候,通常会用到JSX语法,粗看上去,像是在Javascript代码里直接写起了XML标签,实质上 ...
- React jsx语法学习
目录 1. 需要准备的三个文件 2. jsx 和 js 创建虚拟DOM 的区别 3. jsx语法 (1)创建虚拟DOM不要加引号 (2)使用js定义的变量 (3)使用calss类名 (4)使用styl ...
- JSX语法学习(三)
目录 1. JSX 样式-style 方式 2. JSX 样式-className 方式 3. JSX 样式-动态 className 4. JSX 样式-classnames 库 安装导入 clas ...
- React学习(1)——JSX语法与React组件
为什么80%的码农都做不了架构师?>>> 本文记录了在官网学习如何使用JSX+ES6开发React的过程. 全文共分为3篇内容: JSX语法与React组件 状态.事件与动态渲 ...
- React学习笔记一 JSX语法组件
JSX语法 1.标签不能添加引号,换行用括号包裹,并且只有一个根标签 const H1 = <h1>标题</h1> const Div = (<div><h1 ...
- React 学习笔记:JSX 语法
JSX JSX 是 JavaScript XML 的简写,表示了在 JavaScript 中书写 XML 格式的代码.它可以让我们在 React 中创建元素更加简单,并且保留 HTML 代码的结构更直 ...
- jsx怎么往js里传参数_在vue中使用jsx语法的使用方法
什么是JSX? JSX就是Javascript和XML结合的一种格式.React发明了JSX,利用HTML语法来创建虚拟DOM.当遇到 我为什么要在vue中用JSX? 想折腾一下呗,开玩笑.最开始是因 ...
- React基础语法学习
React主要有如下3个特点: 作为UI(Just the UI) 虚拟DOM(Virtual DOM):这是亮点 是React最重要的一个特性 放进内存 最小更新的视图,差异部分更新 diff算法 ...
- react 注释html,React之JSX语法
React发明了JSX,利用HTML语法来创建虚拟DOM.React的核心机制之一就是可以在内存中创建虚拟的DOM元素.以此来减少对实际DOM的操作从而提升性能. JSX 即Javascript XM ...
最新文章
- Hyperledger Fabric 核心模块(6)configtxlator工具
- 实锤!沙特新规,出货箱单必须显示条形码,发票必须盖章!
- LIST OF CITIES FOR POTENTIAL VISIT IN SOUTHERN UK
- PHP的isset()和empty()比较
- linux启用ipmi服务,使用 ipmitool 实现 Linux 系统下对服务器的 ipmi 管理
- 2015-2020年各类国际会议与期刊基于图像的三维对象重建论文综述(5)——Leveraging other clues
- 2019计算机科学与技术考研分数线,2019考研中国科学技术大学复试分数线已公布...
- 使用xcopy对文件夹进行复制,del、rd 删除文件、文件夹
- Python抖音机器人制作!让你有看不完的小姐姐
- c++ 关于指针以及(amp;)使用的一些小问题
- 宝藏又小众的Digital Tutors视频教程素材网站分享
- 5W1H/SWOT/SMART/PDCA/时间管理
- PyTorch 单机多GPU 训练方法与原理整理
- 安装计算机一级出现appcrash,问题事件名称: APPCRASH 终于解决了。
- 2018-2019-2 网络对抗技术 20165303 Exp3 免杀原理与实践
- 9种AR/VR交互方式解读,让你更加了解透彻AR/VR
- 基于原子势函数及人工蜂群算法进行形状匹配优化(Matlab代码实现)
- Linux tty串口测试程序
- 求C语言+MySQL数据库项目
- Linux下安装jumbo
热门文章
- 计算机本地连接没有有效ip配置,本地连接没有有效的ip配置?教您怎么解决
- 《计算机视觉之三维重建》笔记1-数学基础
- 三菱GX works2的应用安装
- 【SQL必知必会】002-基础篇:了解SQL:一门半衰期很长的语言
- 基于图像的三维重建研究
- 数据库常用的命令讲解
- [乐意黎原创]PHP启用session后抛 session_start(): open(/var/lib/php/session/sess_... 的解决办法
- 红米note1s android5,[FIRE]红米Note 1S MIUI6 5.5.29精简、绝对纯净、
- 知行合一(科学实践理论)
- Python versions prior to 3.5 are not supported for pyFlink