【原创】JSX 基础

什么是 JSX

JSX 是 JavaScript XML(HTML)的缩写,表示在 JS 代码中书写 HTML 结构。
作用:在 React 中创建 HTML 结构(页面 UI)。

JSX 不是标准的 JS 语法,是 JS 的语法扩展,浏览器默认是不识别的,脚手架中内置 babel/plugin-transform-react-jsx 包,用来解析该语法。

JSX 中使用 JS 表达式

语法:{JS 表达式}

表达式可以写在大括号中,但语句(if/swish/case/变量声明等)不可以

列表渲染 map

// 列表渲染,map
const songs = [
  {id:1, name:'zs'},
  {id:2, name:'ls'},
  {id:3, name:'ww'},
];
function App() {
  return (
    <div className="App">
        <ul>
          {songs.map(song => <li key={song.id}>{ song.name }</li>)}
        </ul>
    </div>
  );
}

为提升性能,遍历列表时需要一个 number/string 类型的不可重复的 key

模板精简原则

const getTag = (flag) => {
  if (flag == 1) {
    return <h1> this is h1 tag.</h1>
  }

  return <h3> this is h3 tag.</h3>
}

function App() {
  return (
    <div className="App">
        { getTag (2) }
    </div>
  );
}

JSX 样式处理

import './app.css';
const style = {
  color:'red',
  fontSize:'26px'
}

const activeFlag = true;

// jsx 样式控制
// 行内样式和类名样式

function App() {
  return (
    <div className="App">
        <span style={ style }>this is a span</span>
        <span className={activeFlag ? 'active' : ''}>this is another span</span>
    </div>
  );
}

export default App;

常用为类名样式。

JSX 注意事项

  • JSX 必须只有一个根节点,如果没有根节点,可以用<></> (幽灵节点)代替,幽灵节点不是真实节点,不会显示在 DOM 元素中。

    function App() {
    return (
    <>
      <div className="App">
          {/* { getTag (2) } */}
          <span style={ style }>this is a span</span>
          <span className={activeFlag ? 'active' : ''}>this is another span</span>
      </div>
      <div>111</div>
    </>
    );
  • 所有标签必须都闭合,成对闭合或自闭合均可。

  • JSX 语法更贴近 JS 语法,属性名采用驼峰命名法 class -> className for -> htmlFor

  • JSX 支持多行(换行),如果需要换行,需使用()包裹,防止出现 bug。

点赞
  1. RoyalFlusher说道:
    Google Chrome Windows 10
    https://t.me/s/iGaming_live/4866
  2. RoyalFlusher说道:
    Google Chrome Windows 10
    https://t.me/s/iGaming_live/4880
  3. LuckyBandit说道:
    Google Chrome Windows 10
    В джунглях ставок, где любой ресурс норовит привлечь гарантиями легких призов, рейтинг русских онлайн казино является как раз той картой, что направляет через дебри подвохов. Для профи и новичков, кто устал с ложных заверений, он средство, чтобы увидеть настоящую rtp, как ощущение ценной ставки на ладони. Без ненужной ерунды, только реальные клубы, в которых выигрыш не только число, но ощутимая удача.Собрано на основе поисковых трендов, словно паутина, что ловит топовые актуальные тенденции на сети. Тут нет места для стандартных приёмов, всякий пункт словно ставка на столе, в котором блеф выявляется мгновенно. Игроки понимают: на рунете манера письма на сарказмом, там юмор скрывается как намёк, позволяет обойти обмана.На https://www.wattpad.com/user/Gamer_iGaming этот список находится как готовая колода, приготовленный для игре. Загляни, если хочешь увидеть пульс настоящей игры, обходя мифов да неудач. Тем тех любит ощущение выигрыша, это будто держать фишки на пальцах, а не глядеть по экран.

发表回复

电子邮件地址不会被公开。必填项已用 * 标注