JSX看着一篇足以入门

这篇具有很好参考价值的文章主要介绍了JSX看着一篇足以入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

JSX 介绍

学习目标: 能够理解什么是 JSX,JSX 的底层是什么
概念: JSX 是 javaScriptXML(HTML) 的缩写,表示在 JS 代码中书写 HTML 结构
作用: 在 React 中创建 HTML 结构(页面 UI 结构)
优势:
 1. 采用类似 HTML 的语法,降低学习成本,会 HTML 就会 JSX
 2. 充分利用 JS 自生的可编程能力创建 HTML 结构
注意: JSX 并不是标准的 JS 语法,是 JS 的语法扩展,浏览器默认是不识别的,脚手架中内置的@babel/plugin-transform-react-jsx 包,用来解析该语法,将声明式的 JSX 解析为命令式的函数调用
JSX看着一篇足以入门,React新人手把手入门,JSX,javascript,开发语言,react.js,JSX,前端,1024程序员节

JSX 中使用 js 表达式

学习目标: 能够在 JSX 中使用表达式
语法:
{JS 表达式}

function App() {
  // 1.识别常规变量
  const name = '跟着老惠学前端'
  // 2.原生js方法调用
  const age = () => {
    return 25
  }
  //3.三元运算符
  const flag = true

  return (
    <div className="App">
      {name}
      {age()}
      {flag ? '真棒' : '真菜'}
    </div>
  )
}

export default App

可以使用的表达式
 1.字符串、布尔值、数值、null、undefined、object([]/{})
 2.算数运算(1+2)、字符串方法(“abcde”.split(’’))、数组方法([‘a’,‘b’].join(’-’))
 3. fn()
特别注意
if 语句/switch-case 语句/变量声明语句,这些叫做语句,不是表达式,不能书写在{}中!!!

// 1.识别常规变量
const name = '跟着老惠学前端'
// 2.原生js方法调用
const age = () => {
  return 25
}
//3.三元运算符
const flag = true
// 其他的自行尝试...
return (
  <div className="App">
    {name}
    <br />
    {age()}
    <br />
    {flag ? '真棒' : '真菜'}
    <br />
  </div>
)

JSX看着一篇足以入门,React新人手把手入门,JSX,javascript,开发语言,react.js,JSX,前端,1024程序员节

JSX 列表渲染

学习目标: 能够在 JSX 中实现列表渲染

页面的构建离不开重复的列表结构,比如歌曲列表,商品列表等等,Vue 中用的式 v-for 做到这一点,react 中又该如何实现呢?

实现: 使用数组的 map 方法
案例:

// 技术方案:map 重复渲染的是哪个模板 就return那个
// 注意事项:遍历列表时同样需要一个类似number/string不可重复的key 提高diff性能
// key仅仅在内部使用,不会出现在真实的dom结构
const stu = [
  { id: 1, name: '小明', age: 18 },
  { id: 2, name: '李华', age: 19 },
  { id: 3, name: '小红', age: 17 },
  { id: 4, name: '小芳', age: 17 },
]

return (
  <div className="App">
    <ul>
      {stu.map((item) => (
        <li key={item.id}>
          姓名:{item.name},年龄:{item.age}
        </li>
      ))}
    </ul>
  </div>
)

运行结果:
JSX看着一篇足以入门,React新人手把手入门,JSX,javascript,开发语言,react.js,JSX,前端,1024程序员节

JSX 条件渲染

学习目标: 能够在 JSX 中实现条件渲染
作用: 根据是否满足条件生成 HTML 结构,比如 Loading 效果
实现: 可以使用三元运算符或者逻辑&&(与)运算符
实例:

function App() {
  // 条件渲染
  // 技术方案:1.三元表达式(常用) 2.逻辑&&(与)运算

  const flag = true
  return (
    <div className="App">
      1.三元表达式<br/>
      (1).简单版:
        {flag ? <span>this is span</span>:null}<br/>
      (2).复杂版(可用小括号包裹起来):
      {
        flag ? (<div>
          <span>this is span2</span>
        </div>) : null
        }
      2.&& (前面为true则显示,false则不显示))<br/>
        {true && <span>this is span</span>}
    </div>
  );
}

export default App;

运行结果:
JSX看着一篇足以入门,React新人手把手入门,JSX,javascript,开发语言,react.js,JSX,前端,1024程序员节

JSX 模板精简原则

学习目标: 使模板中的逻辑跟简洁
实现: 复杂的多分枝的逻辑收敛为一个函数,通过一个专门的函数来写分支逻辑,模板中只负责调用
实例:

// 有一个状态type有1,2,3三种
// 1 展示 h1
// 2 展示 h2
// 3 展示 h3

const title = (type) =>{
    if(type === 1){
        return <h1>this is h1</h1>
    }
    else if(type === 2){
        return <h2>this is h2</h2>
    }
    else if(type === 3){
        return <h3>this is h3</h3>
    }
}
  return (
    <div className="App">
      {title(1)}
      {title(3)}
      {title(2)}
    </div>
  );
}

export default App;

运行结果:
JSX看着一篇足以入门,React新人手把手入门,JSX,javascript,开发语言,react.js,JSX,前端,1024程序员节

JSX 样式处理

学习目标: 能够在 JSX 中实现 CSS 样式处理
 1. 行内样式
实现: 在元素身上绑定一个 style 样式
  - 行内样式 · style

function APP(){
    return (
        <div className="App">
            <div style={{color:'red',fontSize:'10px'}}>this is div</div>
        </div>
    )
}
export default App

  - 行内样式·style·优化写法

function App() {
  const divStyle1 = {
    color:'blue',
    fontSize:'20px'
  }
  return (
        <div className="App">
            <div style={divStyle1}>this is div</div>
        </div>
    )
}

export default App;

 2. 类名样式
实现: 在元素身上绑定一个 className 属性即可
  1. 创建一个 css 样式表文件 app.css

.colors {
  color: peru;
  font-size: 40px;
}

  2. JSX 中引入 css 文件

// 使用import引入样式表文件
import './app.css'

  3. 在元素上用 className 属性绑定 class 样式

    <div className='colors'>类名样式</div>

运行结果:
JSX看着一篇足以入门,React新人手把手入门,JSX,javascript,开发语言,react.js,JSX,前端,1024程序员节

JSX 动态类名控制

学习目标: 根据需求判断是否显示某个类名的样式
实现: 使用三元表达式或逻辑&&运算

import './app.css';
function App() {
  const color1 = true
  const color2 = true
    return (
        <div className="App">
            1. 三元:
            <div className={color1?'colors':''}>类名样式</div>
            2. &&(与)
            <div className={color2 && 'colors'}>类名样式</div>
        </div>
    )
}

export default App;

运行结果:
JSX看着一篇足以入门,React新人手把手入门,JSX,javascript,开发语言,react.js,JSX,前端,1024程序员节

JSX 注意事项

学习目标: 掌握 JSX 实际开发过程中的一些注意事项
  1. JSX 必须具有一个根节点,如果没有根节点可以使用<></>(幽灵节点)代替根节点将所有元素包裹起来

function App() {
    return (
      <>
        <div className="App">1</div>
        <div className={htmlFor(i in 10)}>2</div>
      </>
    )
}

export default App;

  2. 所有标签必须形成闭合(文章来源地址https://www.toymoban.com/news/detail-721704.html

),成对闭合或者自闭( )和都可以
  3. JSX 中的语法更加贴近 JS 语法,属性名采用驼峰命名法 class -> className; for -> htmlFor
  4. JSX 支持多行(换行),如果需要换行,需使用 ()包裹,防止出现 Bug

到了这里,关于JSX看着一篇足以入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手把手教你区块链java开发智能合约nft-第一篇

    刚接触区块链开发,使用java开发,真的是太难了,自己一步步摸索,从新手小白一路碰壁,动不动就报错,去网上搜索对应错误,还真什么都搜索不到,摸索了三四个月,今天终于有了一些进展,今天开始分享出来,希望能帮助到需要的朋友 我作为一个java后端的程序员,不

    2024年01月23日
    浏览(42)
  • 本地项目托管到 Gitee 详细步骤,手把手教学,就这一篇博客足够

    gitee官网: https://gitee.com/ 首先创建自己的账户密码, 记住账户密码 ,后面上传的时候可能会用到 【 + 】 = 【 新建仓库 】 = 【 按下图填信息 】 = 【 点击创建 】 4.1 首先 配置用户名和邮箱 ,用户名可任意,邮箱必须为可用邮箱 下面两条命令可以检查邮箱是否配置成功 注:

    2023年04月08日
    浏览(30)
  • 【AI助力科研】不看一篇文献,手把手教你用chatGPT写文献综述!

    如这里我使用知网检索,实际上很多网址和国内外的出版社网址都支持一键导出文章信息 搜索后勾选,点击导出与分析 点击导出后选择自定义,默认是不导出摘要的,需要勾选! 勾选摘要后导出或者直接预览在这里Copy一手! 这里必须进行压缩,不然太长了,很难控制,最

    2024年04月14日
    浏览(34)
  • 前端react入门day01-了解react和JSX基础

     (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 React介绍  React是什么 React的优势  React的市场情况  开发环境搭建  使用create-react-app快速搭建开发环境 尝试运行程序  react基本框架  index.js App.js JSX基础-概念和本质

    2024年02月08日
    浏览(67)
  • 手把手教你搭建 Webpack 5 + React 项目

    在平时工作中,为减少开发成本,一般都会使用脚手架来进行开发,比如 create-react-app 。脚手架都会帮我们配置好了 webpack,但如果想自己搭建 webpack 项目要怎么做呢?这边文章将介绍如何使用 webpack 5 来搭建 react 项目,项目地址在文末。 1.1 Webpack 的好处 试想在不使用任何打

    2024年02月08日
    浏览(31)
  • React入门 - 07(说一说 JSX 中的语法细节)

    本章内容 上一节内容我们完成了一个简单的 TodoList 案例。到现在为止我们已经知道怎么在 JSX 中使用 “js 表达式”和”列表渲染“了,本节我们继续使用之前的工程项目来编写代码,补充在 React 使用 JSX 语法的一些细节。 JSX 中使用表达式: { JS 表达式 } 可使用的 js 表达式

    2024年01月17日
    浏览(29)
  • Git入门指南(手把手教学)

    Git是一种分布式版本控制系统,它是由Linus Torvalds为了管理Linux内核开发而开发的。与中心化的版本控制系统(如SVN)不同,Git是一种分布式系统,它将代码库(repository)复制到多个开发者的本地计算机上,每个开发者都有自己的代码库,可以在本地提交代码、管理分支、合

    2023年04月14日
    浏览(38)
  • PHP反序列化入门手把手详解

    前言:文章内容大致可分为原理详解-漏洞练习- 防御方法。文章内容偏向于刚接触PHP反序列化的师傅,是一篇对PHP反序列化入门的手把手教学文章。文章特色在于对PHP反序列化原理的详细分析以及一系列由简入深的PHP反序列化习题练习和分析讲解。文章写作初衷是想借助REEBUF平

    2024年02月08日
    浏览(38)
  • Kaggle 新手入门必看,手把手教学

    Add Data 的路径:/kaggle/input git clone 的路径:/kaggle/working 1.进入官网 Kaggle 点击 Register 进行账号注册 2.随便点一个方式注册,本人用的邮箱 3.点进去填写对应信息进行注册,点击 next 即可 1.如果你看到是这个界面 2.如果你看到的是这个界面 Kaggle 新建 kernel 有两种方式,这个主要

    2024年01月25日
    浏览(32)
  • 手把手教你Midjourney|入门·订阅管理套餐

    大家好,这里是Dennis的AI说,上一期是教大家如何注册一个账号,那么今天的教程教是教会大家如何在Midjourney上购买套餐以及后续的退订步骤。 Midjourney里购买套餐主要是针对于后续的做图时间速度,不同套餐生成图片的速度是不一样的。 如何在Midjourney里正确的订阅管理套餐

    2024年02月08日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包