• JSX基本使用


    JSX基本使用

    JSX: JavaScript XML的简写。就是一种在 JavaScript 中编写 XML(HTML) 格式的代码。

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

    基本使用

    1. //前提:使用react 脚手架进行项目初始化(npx create-react-app my-app)
    2. // 1.导入react
    3. import React from 'react'
    4. import ReactDOM from 'react-dom
    5. //使用JSX 进行 react 元素的创建
    6. const title =
    7. <h1>Hello World!!
    8. //渲染 react 元素
    9. ReactDOM.render(title, document.getElementById('root'))

    JSX注意点:

    • React元素的属性名使用驼峰命名法

    • 特殊的属性名:(HTML --> XML)

      • class --> className 、 for -->htmlFor 、 tabindex --> tabIndex
    • 没有子节点的 react 元素可以使用单标签进行表示 < />

    • 推荐使用 小括号 包含 JSX,从而避免 JS 中的自动插入分号陷阱

    JSX 中使用 javascript

    语法:{ javascript表达式 } ----- (类似于插值语法)

    1. const name = '小宝'
    2. const title = (
    3. <div>我是:{ name }div>
    4. )

    JSX 中使用 javascript 的注意点

    • 单括号中可以使用任意的 javascript 表达式---也可以直接写一些简单(字符串、三元运算符等等)

    • JSX 自身也是 JS 表达式

    • JS 中对象一般只有作为 style 属性出现的时候才是合法的,不然直接在 JSX 中使用对象写法会报错

    • 不能在 {} 中出现语句(例如:if/for等)

    JSX条件渲染

    场景:进行一些过渡加载效果时进行判断

     使用:主要通过 if/else 、三元运算符、逻辑与来实现

    基本使用:

    1. const isLoading = true;
    2. const loading = () => {
    3. return isLoading ? (<h1>加载中...h1>) : (<div>加载完成div>)
    4. }
    5. const title = (
    6. <h1>
    7. 条件渲染:
    8. { loading() }
    9. h1>
    10. )

    JSX列表渲染

    方法:使用数组的 map() 方法进行列表渲染

    注意:列表渲染时,需要添加 key() 属性,key值要唯一,且尽量避免使用索引号为 key

    基本使用:

    1. // 列表渲染
    2. const song = [
    3. {id : 1, name : '幻听'},
    4. {id : 2, name : '山水之间'},
    5. {id : 3, name : '宇宙之大'},
    6. ]
    7. const title = (
    8. <ul>
    9. { song.map(item => <li key = {item.id}>{item.name}li>) }
    10. ul>
    11. )

    JSX样式处理

    • 行内样式---style
    1. // 行内样式
    2. const title = (
    3. <h1 style={{color : 'red', fontSize : '30px'}}>
    4. 样式处理
    5. h1>
    6. )
    • 类名----className
    1. // 类名
    2. // 引入css文件
    3. import './index.css'
    4. // 使用css文件中的元素样式
    5. const title = (
    6. <h1 className='title'>
    7. 样式处理
    8. h1>
    9. )
  • 相关阅读:
    docker-swarm集群搭建
    人工智能知识全面讲解:你真的了解数据吗?
    Go语言实现原理——锁实现原理
    Karatsuba大数乘法的Verilog实现
    网络基础2(上):http协议、tcp/udp协议
    web端动效 PAG
    SpringBoot 框架学习
    SMT贴片制造:发挥的作用和价值]
    什么是缓存雪崩、缓存穿透、缓存击穿?怎么解决?
    编写Servlet代码获取页面body中json数据
  • 原文地址:https://blog.csdn.net/weixin_51642358/article/details/126311862