(二)JSX

本文章将介绍JSX语法

JSX

jsx是一种很好地描述UI,能够有效提?开发效率的JavaSript拓展语法,其格式比较像后端的模板语言,但实际使用的时候使用 babel-loader 把 JSX 编译成相应的 JS 对象,是在 JavaSrtipt 内部实现的

基本使用

表达式 {} 的使?

const name = ‘Josh Perez‘;
const element = <h1>Hello, {name}</h1>;

函数的使用

function formatName(user{
  return user.firstName + ‘ ‘ + user.lastName;
}

const user = {
  firstName‘Harper‘,
  lastName‘Perez‘
};

const element = (
  <h1>
    Hello, {formatName(user)}!
  </h1>

);

为了便于阅读,我们会将 JSX 拆分为多行。同时,我们建议将内容包裹在括号中,虽然这样做不是强制要求的,但是这可以避免遇到自动插入分号陷阱

jsx也是一个表达式

在编译之后,JSX 表达式会被转为普通 JavaScript 函数调用,并且对其取值后得到 JavaScript 对象。

function getGreeting(user{
  if (user) {
    return <h1>Hello, {formatName(user)}!</h1>;
  }
  return <h1>Hello, Stranger.</h1>;
}

对象

jsx是js对象,也是合法表达式

const greet = <div>good</div>;
const jsx = <div>{greet}</div>;

条件语句

const show = true;//false;
const greet = <div>good</div>;
const jsx = (
 <div>
 {/* 条件语句 */}
 {show ? greet : "登录"}
 {show && greet}
 </div>

);

数组

const a = [012];
const jsx = (
 <div>
   {/* 数组 */}
   <ul>
   {/* diff时候,?先?较type,然后是key,所以同级同类型元素,key值必须得 唯? */}
   {a.map(item => (
     <li key={item}>{item}</li>
   ))}
   </ul>
 </div>

);

属性的使?

import logo from "./logo.svg";
const jsx = (
 <div>
 {/* 属性:静态值?双引号,动态值?花括号;
    class、for等要特殊处理。
    使用引号,来将属性值指定为字符串字面量 */}
 <img src={logo} style={{ width: 100 }} className="img" tabIndex="0"/>
 </div>
);

因为 JSX 语法上更接近 JavaScript 而不是 HTML,所以 React DOM 使用
camelCase(小驼峰命名)来定义属性的名称,而不使用 HTML 属性名称的命名约定。
例如,JSX 里的 class 变成了 className,而 tabindex 则变为 tabIndex。

模块化

css模块化

import style from "./index.module.css"
<img className={style.logo} />

(二)JSX

上一篇:centos安装composer下载包curl时CA证书报错


下一篇:netty之bytebuf粘包、分包