JSX的基本使用

1.1createElement()的问题

  • 繁琐不简洁
  • 不直观,无法一眼看出所描述的结构
  • 不优雅,用户体验不好

1.2JSX简介
JSX是JavaScript XML地简写,表示在JavaScript代码中写XML(HTML)格式的代码。
优势:声明式语法更加直观、与HTML结构相同,降低了学习成本、提升开发效率

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

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

1.4注意点

  • React元素的属性名使用驼峰命名法
  • 特殊属性名:class–》className、for----》htmlFor、tabindex–》tabIndex
  • 推荐:使用小括号包裹JSX,从而避免JS中的自动插入分号陷阱

1.5JSX使用步骤

//1.使用JSX语法,创建React元素
 const dv = (
          <h1>Hello JSX</h1>
        )
//2.渲染创建好的React元素
        ReactDOM.render(dv,document.getElementById('root'))

2.JSX中使用JavaScript表达式
嵌入JS表达式

  • 数据存储在JS中
  • 语法{JavaScript表达式}
const name = "lili"
const dv = (
	<div>my name is:{name}</div>
)

使用JavaScript注意点

//函数表达式
 const saiHi=()=> 'Hi'

        const dv = (
          <h1>Hello JSX
            <p>{1}</p>
            <p>{'a'}</p>
            <p>{1+7}</p>
            <p>{3>5? 'big':'small or equal'}</p>
            <p>{saiHi()}</p>
          </h1>
        )
        ReactDOM.render(dv,document.getElementById('root'))

注意点

  • 单大括号中可以使用任意的JavaScript表达式
  • JSX本身也是JS表达式
  • 注意:JS中的对象是一个例外,一般只会出现在style属性中
  • 注意:不能在{}中出现语句(比如:it/for等)
 const h = <h1>come on</h1>
  ReactDOM.render(dv,document.getElementById('root'))

3.JSX的条件渲染

  • 场景:loading效果
  • 条件渲染:根据条件渲染特定的JSX结构
  • 可以使用if / else 、三元运算符 、逻辑运算符来实现
 var isloading = false
        var loadDate=()=>{
          if(isloading) return 'loading'
          else return 'finish loading'
        }

        var dv = (
          <div>{loadDate(isloading)}</div>
        )

        ReactDOM.render(dv,document.getElementById('root'))

4.列表渲染

  • 如果要渲染一组数据,应该使用map()方法
  • 注意渲染列表时应该添加key属性,key属性的值要保证唯一
var songs = [
        
        {id:1,name:'believer'},
        {id:2,name:'what if'},
        {id:3,name:'laugh'}
       ]

       var list = (
        <ul>
          {songs.map(item => <li key={item.id}>{item.name}</li>)}
        </ul>
       )

       ReactDOM.render(list,document.getElementById('root'))

5.使用className的方式给JSX添加样式
推荐使用className

import React from 'react'
import ReactDOM from 'react-dom'
import '../src/index.css'
       var list = (
        <h1 className='title'>jsx的样式处理</h1>
       )

       ReactDOM.render(list,document.getElementById('root'))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值