jsx语法二

/**
 * jsx 数据循环
 * 01.直接将数组解构输出
 * 02.循环遍历输出
 *
 */
// const arr=[<p>1</p>,<p>2</p>,<p>3</p>]
const arr=[
  {
    id:1,
    name:'jsx',
    age:100
  },
  {
    id:2,
    name:'jsx2',
    age:200
  }
]

function App() {
  const ret=arr.map(item=>{
    return(
      <li key={item.id}>/*这里添加key可以优化渲染*/
        <span>{JSON.stringify(item)}</span>
      </li>
    )
  })
  return <ul>{ret}</ul>

}

export default App;
//index.js
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import {StyleRoot} from 'radium';

ReactDOM.render(
  <StyleRoot><App/></StyleRoot>,
  document.getElementById('root')
);
import Radium from "radium"
/**
 * jsx 样式处理
 * 01.内联样式
 *    a.设置行内样式时需要将样式键值对放入 {}
 *    b.内联样式默认不支持伪类与媒体查询样式设置,需引入第三方包radium可以使内联样式支持
 *    c.将需要支持伪类的组件用Radium包裹
 *    d.在indexjs中将需要支持媒体查询的组件标签用<StyleRoot></StyleRoot>包裹
 *    e.通过样式数组控制样式
 * 02.外联样式
 */

// const styleObj={
//   width:100,
//   height:200,
//   backgroundColor:'green',
//   ':hover':{backgroundColor:'skyblue'},
//   '@media(max-width:1000px)':{width:300}
// }

const ButtonStyle={
  base:{
    width:150,
    height:40,
    fontSize:20,
    background:'red'
  },
  login:{
    background:'green'
  },
  logOut:{
    background:'orange'
  }
}

const isLogin=false

function App() {
  return (
    <div>
      <button style={[
        ButtonStyle.base,
        isLogin ? ButtonStyle.login : ButtonStyle.logOut
      ]}>按钮</button>
    </div>
  )

  // return <div  style={styleObj}>行内样式</div>
  // return <div style={{width:'200px}}>行内样式</div>
}

export default Radium(App);

### 三级标题:JSX 语法的基本概念与用途 JSXJavaScript XML 的简写,表示在 JavaScript 代码中写 XML(HTML)格式的内容。它是一种 JavaScript语法扩展,允许开发者在 JavaScript 中直接编写类似 HTML 的结构,从而更直观地描述用户界面的组成。JSX 最初是为 React 框架设计的,但也可以在其他项目中使用[^1]。 JSX 的主要作用是简化用户界面的构建过程。通过 JSX,开发者可以直接在 JavaScript 中嵌入类似 HTML 的结构,从而提高代码的可读性和开发效率。与传统的字符串拼接或 DOM 操作相比,JSX 提供了一种声明式的语法,使 UI 的构建更加直观和简洁[^3]。 JSX 并不是必需的,React 在不使用 JSX 的情况下依然可以正常工作。然而,JSX 为 React 提供了良好的语法糖,使组件结构更清晰、更易维护。例如,以下是一个使用 JSX 的简单 React 组件示例: ```jsx function Welcome(props) { return <h1>Hello, {props.name}</h1>; } ``` 上述代码中,`<h1>Hello, {props.name}</h1>` 是 JSX 语法,它会被 Babel 等工具转换为标准的 JavaScript 函数调用,从而在浏览器中运行[^2]。 JSX语法与 HTML 非常相似,但有一些关键区别。例如,JSX 允许使用 JavaScript 表达式,这些表达式可以嵌入在大括号 `{}` 中,从而实现动态内容的渲染。此外,JSX 的标签必须闭合,且只能有一个顶层元素[^4]。 ### 三级标题:JSX 的优势 JSX 的优势在于其声明式的语法和良好的可读性。与传统的 JavaScript DOM 操作相比,JSX 让 UI 的构建更加直观,降低了学习成本,提升了开发效率。它不仅简化了 UI 的构建过程,还使得代码更容易理解和调试,避免了复杂的 JavaScript DOM 结构[^4]。 例如,以下代码展示了如何使用 JSX 渲染一个简单的按钮组件: ```jsx const button = <button onClick={() => alert('Clicked!')}>Click Me</button>; ``` 该代码中的 JSX 结构清晰地表达了按钮的外观和行为,使得开发者可以更专注于 UI 的逻辑实现[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值