Day5 认识JSX,简化你的程序码

一般写程序的时候,我会将HTML和Javascript分开来写,但react提供了JSX的语法,将html标签和Javascript放在同一个档案,并让你的程序更简洁。

JSX几大特色

  1. 提供语意化标签,增加程序易读性
    JSX除了可以使用HTML外,还可以搭配XML、Javascript宣告变数。
// HTML
const element = <h1>你好,世界!</h1>;
// XML
const element = <hellowWorld/>;
// HTML+Javascript,{greeting(someone)}会取代成greeting function的回传值
const element =(<h1>你好,{greeting(someone)}</h1>) ;

( )虽非必要,但可以避免程序用多行呈现时出错。
React搭配JSX使用的话,可以用声明式而非命令式的方式撰写程序,下面用IG按赞的事件作举例。

// 命令式
if(userLikes()) {
    if(!hasRedLike()) {
      removeHollowLike();
      addRedLike();
    }
  } else {
    if(hasRedLike()) {
      removeRedLike();
      addHollowLike();
    }
  }
  
//   声明式
if(this.state.liked) {
    return (<RedLike />);
  } else {
    return (<HollowLike />);
  }
  1. 简化程序
    下面拿昨天的范例作举例,可以很清楚的理解到JSX帮助你简化你的程序。
// 未使用JSX未使用JSX
  const li=React.createElement('li',{},'第一点');

//   使用JSX
const li = <li>第一点</li>;

3.结合Javascript语法,可以清楚了解每个元件所负责的功能,让你更好管理程序
下面用官网提供的范例作举例。

const e = React.createElement;

class LikeButton extends React.Component {


  render() {
    if (this.state.liked) {
      return 'You liked this.';
    }

    return e(
      'button',
      { onClick: () => this.setState({ liked: true }) },
      'Like'
    );
  }
}
/

<<:  RISC-V: 妈,我把脏脏的扣变成 CPU 的形状了!

>>:  【程序】论读书 转生成恶役菜鸟工程师避免 Bad End 的 30 件事 - 7

[3D地图-CesiumJS系列] 二、建立飞航轨迹及动画

本篇文章请搭配 [3D地图-CesiumJS系列] 一、快速上手 不知道大家在飞机上时会不会好奇飞机...

03 | 认识 WordPress「区块编辑器」的发展和简介

关於 Block Editor(区块编辑器)的各类延伸有很多,我们这篇文章尽量保持简单,但您可以从...

Day 13 - .NET Core奇遇记

主导的第一个计画就是帮厂商开发一个平台并且包含3D模型模拟的功能,然後需要有一个後台给厂商能够上传图...

第15天 - PHP 简易登入(2)_PHP的部分

接续昨天的部分,今天PHP的原理大致上就是 你填入的 帐号 && 密码 是否有(同时...

JavaScript 之旅 (26):String.prototype.replaceAll()

本篇介绍 ES2021 (ES12) 提供的 String.prototype.replaceAl...