零基础入门一文带你了解前端React中JSX的使用技巧

本文介绍了React中JSX的基本使用,包括它的优势、创建React元素的步骤以及注意事项。接着详细讲解了如何在JSX中嵌入JavaScript表达式,条件渲染和列表渲染的实现方法。此外,还讨论了JSX的样式处理,推荐使用className进行样式添加。文章总结了JSX作为React核心内容的重要性,强调其在构建UI时的灵活性和效率。
摘要由CSDN通过智能技术生成

通过这篇文章,我们将会通过以下目标系统了解React中JSX的详细内容:

  • 能够知道什么时JSX
  • 能够使用JSx创建React元素
  • 能够在JSX中使用Javascript 表达式
  • 能够使用JSX的条件渲染和列表渲染
  • 能够给JSX添加样式

目录

一、JSX的基本使用

1. createElement() 的问题

 2. JSX简介

3. 使用步骤

4. JSX 注意点

二、JSX中使用 JavaScript 表达式

  1. 嵌入 JS 表达式

2. 嵌入过程中注意点

三、JSX 的条件渲染

 四、JSX的列表渲染

五、JSX的样式处理

 六、JSX总结


一、JSX的基本使用

1. createElement() 的问题

在之前学习中,我们了解到创建React元素中使用到createElement()方法,但是:

              问题:① 繁琐不简洁

                         ② 不直观,无法一眼看出所描述的结构

                         ③ 不优雅,用户体验不佳

JSX

 

 2. JSX简介

JSX JavaScript XML 的简写,表示在 JavaScript 代码中写XML(HTML)格式的代码。

优势:声明式语法更加直观,与HTML结构相同,降低学习成本,提升开发效率。

3. 使用步骤

  • 使用JSX语法创建 react元素
    // 使用JSX语法,创建react元素
    const title = <h1> Heelo JSX </h1>
  • 使用 ReactDOM.render() 方法渲染react元素到页面中
    // 渲染创建号的 React元素
    ReactDOM.render(title,document.getElementById('root'))

为什么脚手架中可以使用 JSX 语法 ?

  1. JSX 不是标准的 ECMAScript 语法,它是 ECMAScipt 的语法扩展。
  2. 需要使用 babel编译处理后,才能在浏览器环境中使用。
  3. create-react-app 脚手架中默认已经有该配置,无需手动配置。
  4. 编译 JSX 语法的包为: @babel/preset-react

4. JSX 注意点

  • React 元素的属性名使用驼峰命名法。
  • 特殊属性名:class -> className , for -> htmlFor , tabindex -> tabIndex。 
  • 没有子节点的React元素可以使用 / > 结束。
    const title = <h1 className="title">Hello JSX <span /></h1>
  • 推荐:使用小括号包裹JSX,从而避免 JS 中的自动插入分号陷阱。 
    // 使用小括号包裹 JSX 
    const title = (
          <h1 className="title">
              Hello JSX 
          <span />
       </h1>
    )

二、JSX中使用 JavaScript 表达式

  1. 嵌入 JS 表达式

  • 数据存储在JS中
  • 语法: { JavaScript 表达式 }
  • 注意:不同于Vue,语法中是单大括号,不是双大括号。
    const name = 'Jack'
    const dv = (
        <div> 你好,我是 {name} </div>
    )

2. 嵌入过程中注意点

  • 单大括号中可以使用任意的 JavaScript 表达式。
    const sayHi = () => 'hi~'
    const title = (
        Hello JSX
        <p> {1} </p>
        <p> {'a'} </p>
        <p> {1 + 7} </p>
        <p> {3 > 5 ? '大于' : '小于等于'} </p>
        <p> {sayHi()} </p>
    )
  • JSX自身也是 JS表达式。
    const h1 = <h1>我是JSX</h1>
    const dv = (
       <div> 嵌入表达式 : {h1} </div>
    )
  • JS 中的对象是一个例外,一般只会出现在style 属性中。
  • 不能在 { } 中出现造句(比如:if / for 等)。

三、JSX 的条件渲染

  1. 条件渲染:根据条件渲染特定的JSX 结构,可以使用 if / else 或者三元运算符或逻辑与运算符来实现。
  2. 场景:loading效果
    const isLoading = true
    const loadData = () => {
       if(isLoading){
           return <div>数据加载中,请稍后 ... </div>
       }
       return {
           <div> 数据加载完毕,此处显示加载后的数据</div>
       }
    }
    constdv = (
        <div> {loadData()} </div>
    )

 四、JSX的列表渲染

  • 如果想要渲染一组数据,应该使用数组的 map() 方法
  • 注意:渲染列表时应该添加 key属性, key 属性的值要保证唯一
  • 原则:map() 遍历谁,就给谁添加 key属性。 
  • 注意:尽量避免使用索引号作为key
const songs = [
   {id:1 , name : '歌曲1'},
   {id:2 , name : '歌曲2'},
   {id:3 , name : '歌曲3'},
]
const list = (
  <ul>
     { songs.map(item => <li key={item.id}>{item.name}</li>)}
  </ul>
)

五、JSX的样式处理

  1. 行内样式 ———— style
    <h1 style = {{ color :'red',backgroundColor : 'skyblue' }}>JSX的样式处理 </h1>
  2. 类名 ———— className(推荐)
    // 引入css 文件
    import './css/index.css'
    
    const list = (
      <h1 className="title"> JSX的样式处理</h1>
    )
    
    // index.css
    .title{
        text-align :center;
    }
    

 六、JSX总结

  1. JSX时React的核心内容。
  2. JSX表示在JS代码中写HTML结构,时React声明式的体现。
  3. 使用JSX配合嵌入的JS表达式、条件渲染、列表渲染,可以描述任意UI结构。
  4. 推荐使用className 的方式给JSX添加样式。
  5. React完全利用JS语言自身的能力来编写UI,而不是造轮子增强HTML功能。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hgngy.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值