目录

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语法学习(一)相关推荐

  1. jsx 调用php,JavaScript_JavaScript的React框架中的JSX语法学习入门教程,什么是JSX? 在用React写组件的 - phpStudy...

    JavaScript的React框架中的JSX语法学习入门教程 什么是JSX? 在用React写组件的时候,通常会用到JSX语法,粗看上去,像是在Javascript代码里直接写起了XML标签,实质上 ...

  2. React jsx语法学习

    目录 1. 需要准备的三个文件 2. jsx 和 js 创建虚拟DOM 的区别 3. jsx语法 (1)创建虚拟DOM不要加引号 (2)使用js定义的变量 (3)使用calss类名 (4)使用styl ...

  3. JSX语法学习(三)

    目录 1. JSX 样式-style 方式 2. JSX 样式-className 方式 3. JSX 样式-动态 className 4. JSX 样式-classnames 库 安装导入 clas ...

  4. React学习(1)——JSX语法与React组件

    为什么80%的码农都做不了架构师?>>>    本文记录了在官网学习如何使用JSX+ES6开发React的过程. 全文共分为3篇内容: JSX语法与React组件 状态.事件与动态渲 ...

  5. React学习笔记一 JSX语法组件

    JSX语法 1.标签不能添加引号,换行用括号包裹,并且只有一个根标签 const H1 = <h1>标题</h1> const Div = (<div><h1 ...

  6. React 学习笔记:JSX 语法

    JSX JSX 是 JavaScript XML 的简写,表示了在 JavaScript 中书写 XML 格式的代码.它可以让我们在 React 中创建元素更加简单,并且保留 HTML 代码的结构更直 ...

  7. jsx怎么往js里传参数_在vue中使用jsx语法的使用方法

    什么是JSX? JSX就是Javascript和XML结合的一种格式.React发明了JSX,利用HTML语法来创建虚拟DOM.当遇到 我为什么要在vue中用JSX? 想折腾一下呗,开玩笑.最开始是因 ...

  8. React基础语法学习

    React主要有如下3个特点: 作为UI(Just the UI) 虚拟DOM(Virtual DOM):这是亮点 是React最重要的一个特性 放进内存 最小更新的视图,差异部分更新 diff算法 ...

  9. react 注释html,React之JSX语法

    React发明了JSX,利用HTML语法来创建虚拟DOM.React的核心机制之一就是可以在内存中创建虚拟的DOM元素.以此来减少对实际DOM的操作从而提升性能. JSX 即Javascript XM ...

最新文章

  1. Hyperledger Fabric 核心模块(6)configtxlator工具
  2. 实锤!沙特新规,出货箱单必须显示条形码,发票必须盖章!
  3. LIST OF CITIES FOR POTENTIAL VISIT IN SOUTHERN UK
  4. PHP的isset()和empty()比较
  5. linux启用ipmi服务,使用 ipmitool 实现 Linux 系统下对服务器的 ipmi 管理
  6. 2015-2020年各类国际会议与期刊基于图像的三维对象重建论文综述(5)——Leveraging other clues
  7. 2019计算机科学与技术考研分数线,2019考研中国科学技术大学复试分数线已公布...
  8. 使用xcopy对文件夹进行复制,del、rd 删除文件、文件夹
  9. Python抖音机器人制作!让你有看不完的小姐姐
  10. c++ 关于指针以及(amp;)使用的一些小问题
  11. 宝藏又小众的Digital Tutors视频教程素材网站分享
  12. 5W1H/SWOT/SMART/PDCA/时间管理
  13. PyTorch 单机多GPU 训练方法与原理整理
  14. 安装计算机一级出现appcrash,问题事件名称: APPCRASH 终于解决了。
  15. 2018-2019-2 网络对抗技术 20165303 Exp3 免杀原理与实践
  16. 9种AR/VR交互方式解读,让你更加了解透彻AR/VR
  17. 基于原子势函数及人工蜂群算法进行形状匹配优化(Matlab代码实现)
  18. Linux tty串口测试程序
  19. 求C语言+MySQL数据库项目
  20. Linux下安装jumbo

热门文章

  1. 计算机本地连接没有有效ip配置,本地连接没有有效的ip配置?教您怎么解决
  2. 《计算机视觉之三维重建》笔记1-数学基础
  3. 三菱GX works2的应用安装
  4. 【SQL必知必会】002-基础篇:了解SQL:一门半衰期很长的语言
  5. 基于图像的三维重建研究
  6. 数据库常用的命令讲解
  7. [乐意黎原创]PHP启用session后抛 session_start(): open(/var/lib/php/session/sess_... 的解决办法
  8. 红米note1s android5,[FIRE]红米Note 1S MIUI6 5.5.29精简、绝对纯净、
  9. 知行合一(科学实践理论)
  10. Python versions prior to 3.5 are not supported for pyFlink