码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 从零开始学React--JSX


    JSX 是 JavaScript 语法扩展,可以让你在 JavaScript 文件中书写类似 HTML 的标签。

    所以JSX看起来像HTML,但是语法比HTML严格,比如只允许一个根节点,所有标签必须闭合,class属性要改成className等,参见使用 JSX 书写标签语言 – React 中文文档

    JSX最强大的地方是可以在HTML里面写js代码

    在 JSX 中通过大括号使用 JavaScript 

    在jsx中,大括号包裹的就是js代码,里面可以使用变量,方法,对象,如果要使用注释可以使用 {/*使用js变量*/}这种方式

    1. function JSXTest() {
    2. let message = '这是一条消息'
    3. return (
    4. <div>
    5. {/*使用js变量*/}
    6. {message}<br/>
    7. {/*使用方法*/}
    8. {new Date().getDate()}
    9. <div style={{color: 'red'}}>这是js对象div>
    10. div>
    11. );
    12. }
    13. export default JSXTest;

    列表渲染

    列表渲染是项目中经常用到的技巧,比如我们从后台拿到商品数据,在前台渲染成一张表格等,react的列表渲染没有特别的语法,就是用的js数组里面的方法,比如将数据list变成li的集合,可以使用数组的map方法

      是jsx语法,在里面使用js要写大括号,在map的回调函数里面返回html代码,在js代码里面写html需要些小括号

      1. function JSXTest() {
      2. return (
      3. <ul>
      4. {list.map(item => {
      5. return (<li key={item.id}>{item.name}li>)
      6. })}
      7. ul>
      8. );
      9. }

      完整代码,因为只有一行代码,回调函数里面的大括号,return,小括号都可以省略

      1. let list = [
      2. {id: 1, name: 'Vue'},
      3. {id: 2, name: 'React'},
      4. {id: 3, name: 'Angular'}
      5. ]
      6. function JSXTest() {
      7. return (
      8. <ul>
      9. {list.map(item=><li key={item.id}>{item.name}li>)}
      10. ul>
      11. );
      12. }
      13. export default JSXTest;

      技巧:记住js里面写html需要用小括号包裹,html里面写js需要用大括号包裹(吐槽:看的头疼,还是习惯vue的写法)

      条件渲染

      条件渲染也是很常用的技巧,根据变量来显示隐藏组件,常用的有两种方式,逻辑与和三元运算

      1. let isLogin = true
      2. function JSXTest() {
      3. return (
      4. <div>
      5. {isLogin && <span>login pagespan>}<br/>
      6. {isLogin? <span>has Loginspan> : <span>loading...span>}
      7. div>
      8. );
      9. }
      10. export default JSXTest;

      复杂条件渲染

      上面两种方式只能实现简单的条件渲染,要想实现复杂的效果可以使用方法

      1. function getArticleItem(type) {
      2. if(type == 0) {
      3. return <div>无图模式div>
      4. } else if(type == 1) {
      5. return <div>单图模式div>
      6. } else {
      7. return <div>双图模式div>
      8. }
      9. }
      10. function JSXTest() {
      11. return (
      12. <div>
      13. {getArticleItem(0)}
      14. {getArticleItem(1)}
      15. {getArticleItem(2)}
      16. div>
      17. );
      18. }
      19. export default JSXTest;

    • 相关阅读:
      java 企业工程管理系统软件源码 自主研发 工程行业适用
      Pytest参数详解 — 基于命令行模式
      论文精读:Medical Transformer: Gated Axial-Attention forMedical Image Segmentation
      函数指针数组
      DOM,SAX,JDOM,DOM4J四种方法对比总结
      6年,我从手工测试到测试开发,写给即将进入或者正在做测试的你...
      SpringCloud微服务实战——搭建企业级开发框架(三十六):使用Spring Cloud Stream实现可灵活配置消息中间件的功能
      运算符+分支+循环语句
      C/C++面试题总结
      SpringBoot源码解析(十九)启动内置tomcat
    • 原文地址:https://blog.csdn.net/ting4937/article/details/139289235
    • 最新文章
    • 攻防演习之三天拿下官网站群
      数据安全治理学习——前期安全规划和安全管理体系建设
      企业安全 | 企业内一次钓鱼演练准备过程
      内网渗透测试 | Kerberos协议及其部分攻击手法
      0day的产生 | 不懂代码的"代码审计"
      安装scrcpy-client模块av模块异常,环境问题解决方案
      leetcode hot100【LeetCode 279. 完全平方数】java实现
      OpenWrt下安装Mosquitto
      AnatoMask论文汇总
      【AI日记】24.11.01 LangChain、openai api和github copilot
    • 热门文章
    • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
      奉劝各位学弟学妹们,该打造你的技术影响力了!
      五年了,我在 CSDN 的两个一百万。
      Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
      面试官都震惊,你这网络基础可以啊!
      你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
      心情不好的时候,用 Python 画棵樱花树送给自己吧
      通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
      13 万字 C 语言从入门到精通保姆级教程2021 年版
      10行代码集2000张美女图,Python爬虫120例,再上征途
    Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
    正则表达式工具 cron表达式工具 密码生成工具

    京公网安备 11010502049817号