React教程:JSX语法基础

1、基本概念:

React 使用 JSX 来替代常规的JavaScript

JSX 是按照 XML 语法规范 的 JavaScript 语法扩展。

JSX 语法的本质:并不是直接把 JSX 渲染到页面上,而是内部先转换成了 createElement 形式,再渲染的。

2、 JSX 的优点:

  • JSX 执行更快,因为它在编译为 JavaScript 代码后进行了优化;
  • 它是类型安全的,在编译过程中就能发现错误;
  • 使用 JSX 编写模板更加简单快速。

3、JSX语法基础:

JSX 注释:推荐使用 {/* 这是注释 */}

JSX中添加class类名:需要使用 className 来替代 classhtmlFor 替代 labelfor 属性;

JSX创建DOM的时候,所有节点必须有唯一的根元素进行包裹;

JSX语法中,标签必须成对出现,如果是单标签,则必须自闭和;

代码示例:

const mydiv = <div>这是一个Div标签</div>;
ReactDOM.render(mydiv, document.getElementById(‘root‘));

使用组件化开发代码示例:

App.js 组件文件代码

import React from ‘react‘;

class App extends React.Component{
  render(){
    return (
      <div>
        {1+1}
        <hr/>
        Hello,Reactjs!!
      </div>
    );
  }
}

export default App;

在其他文件中使用 JSX 语法引用组件:

import React from ‘react‘;
import ReactDOM from ‘react-dom‘;
import App from ‘./App‘;

ReactDOM.render(<App />, document.getElementById(‘root‘));

4、JSX的应用:

渲染数字

import React from ‘react‘;
import ReactDOM from ‘react-dom‘;

let a = 10;

ReactDOM.render(
    <div>{a}</div>
, document.getElementById(‘root‘));

渲染字符串

import React from ‘react‘;
import ReactDOM from ‘react-dom‘;

let str = ‘hello react‘;

ReactDOM.render(
    <div>{str}</div>
, document.getElementById(‘root‘));

渲染布尔类型

import React from ‘react‘;
import ReactDOM from ‘react-dom‘;

let rel = true;

ReactDOM.render(
    <div>{rel ? ‘结果为真‘ : ‘结果为假‘}</div>
, document.getElementById(‘root‘));

渲染属性值

import React from ‘react‘;
import ReactDOM from ‘react-dom‘;

let title = "this is a div";

ReactDOM.render(
    <div title={title}>Hello React</div>
, document.getElementById(‘root‘));

渲染标签对象

import React from ‘react‘;
import ReactDOM from ‘react-dom‘;

const h1 = <h1>Hello React!</h1>;

ReactDOM.render(
    <div>
        {h1}
    </div>
, document.getElementById(‘root‘));

渲染数组

import React from ‘react‘;
import ReactDOM from ‘react-dom‘;

const arr = [
    <h1>第1行</h1>,
    <h2>第2行</h2>,
];

ReactDOM.render(
    <div>
        {arr}
    </div>
, document.getElementById(‘root‘));

将普通数组转为 JSX 数组,并渲染到页面中

解决 Warning: Each child in a list should have a unique "key" prop.

方法一:

import React from ‘react‘;
import ReactDOM from ‘react-dom‘;

//原数组
const arr = [‘html‘,‘css‘,‘vue‘];
//新数组
const newArr = [];
//forEach()方法没有返回值
arr.forEach((item,index) => {
    const temp = <h2 key={index}>{item}</h2>
    newArr.push(temp);
});

ReactDOM.render(
    <div>
        {newArr}
    </div>
, document.getElementById(‘root‘));

方法二:

import React from ‘react‘;
import ReactDOM from ‘react-dom‘;
import TodoList from ‘./TodoList‘;
import ‘./style.css‘;

//原数组
const arr = [‘html‘,‘css‘,‘vue‘];

ReactDOM.render(
    <div>
        {/* map()方法有返回值 */}
        {arr.map((item,index) => {
        return <h2 key={index}>{item}</h2>
        })}
    </div>
, document.getElementById(‘root‘));

原文地址:https://blog.51cto.com/6323662/2471268

时间: 2024-10-14 23:15:49

React教程:JSX语法基础的相关文章

React之JSX语法

1. JSX的介绍 ??JSX(JavaScript XML)--一种在React组件内部构建标签的类XML语法.react在不使用JSX的情况下一样可以工作,然而使用JSX可以提高组件的可读性,因此推荐使用JSX. 基于ECMAScript的一种新特性 一种定义带属性树结构的语法 ??JSX的特性: ??它具备以下好处: 更加熟悉 更加语义化 更加直观 抽象化 关注分离点 2.JSX的使用 React对大小写敏感,如果是自定义组件,则必须首字母大写,如果是DOM自带的标签,则要小写(比如div

react的jsx语法

在webpack.config.js中配置解析的loader { test:/\.jsx?$/, use:{ loader:"babel-loader", options:{ presets:["@babel/env","@babel/react"] } } }, jsx对象就是js对象!只不过jsx需要事先编译,才转为js对象! 在默认情况下,React DOM会将所有嵌入JSX的值进行编码.这样可以有效避免xss攻击. sx有个强大的地方就是

关于React之JSX语法理解

**理解:**javascript和HTML的结合,碰到<就按照HTML来解析,碰到{}就按照js来解析.也可以理解为可以在js代码书写HTML标签,每个标签最终都会转化为js代码来运行.他的语法规则大致如下: 1.必须有根元素,即最外层有且只有一个标签:2.所有的标签必须闭合:3.对大小写敏感,区分是组件还是Html标签:4.属性值必须加引号或者加{};5.标签内放"<"会报错,因为他会按照Html来解析:7.数组的循环(每个元素都会返回一个react组件);8.JSX允

React的jsx语法,详细介绍和使用方法!

jsx语法 一种混合使用html及javascript语法的代码 在js中 遇到<xx>即开始html语法 遇到</xx>则结束html语法 恢复成js语法 例如: let Dom = <a href="javascript:;">按钮</a> 在html的范围内 若想使用js 则用 "{}" 将js代码括起来即可 例如: let url = "https://www.baidu.com" let

React的JSX语法及组件

最近一个同事很急没有做任何交接就请了陪产假,然后我来维护.说实在的我一开始是一脸懵逼的.因为MV*项目里用的最多的还是Vue:React听说也了解过,但毕竟不熟... 不过不管如何这也是工作:同事也恭喜同事当爸了,打心理为他感到高兴! 代码down下来后开始查看的时候语法基本上使用的都是CMD,ES6还有本文讲的JSX,React组件.CMD,ES6这不难毕竟平常也经常用.但是JSX,React组件一开始就有点懵逼, 不过多看几遍加百度Google就懂了. (好像废话有点多,好了,开始讲重点..

初学React:JSX语法

这是本人初学React做的学习笔记;讲的不是很深,只算是简单的进行介绍. 这是一个小系列.都是在同一个模板中搭建的,但是代码是不能正常执行的. >>第一个组件.js 'use strick' /*===========================JavaScript的XML语法========================*/ var CommentBox = React.createClass({ render:function () { return ( <div classN

java教程之语法基础(中)

运算符号: 1).算术运算符. + - * / %   %:任何整数的余数不是0就是1,所以只要改变被余数就可以实现开关运算. +:连接符. ++,-- 2).赋值运算符. =  += -= *= /= %= 3).比较运算符. 特点:该运算符的特点是:运算之后的结果,要么是true,要么是false. 4).逻辑运算符. &  |  ^  !   &&   || 逻辑运算符除了 !  外都是用于连接两个boolean类型表达式. &: 只有两边都为true结果是true.

java教程之语法基础(下)

方法:有的地方也称之为函数,为了提高代码的复用性,可以将内容其定义成一个单独的功能,这个功能的体现就是java中的方法. java里面方法的定义格式: 修饰符 返回值类型      方法名(参数类型 形式参数1,参数类型 形式参数1,…){        执行语句:        如果没有定义返回值的类型,就不用返回任何内容,否则如下:        return 返回值:     } 当方法没有具体的返回值时,返回的返回值类型用void关键字表示. 如果方法的返回值类型是void时,不需要写r

IT兄弟连 Java语法教程 Java语法基础 经典面试题

1.Java语言中有几种基本类型?分别是什么?请详细说明每种类型的范围以及所占的空间大小? Java语言中有8中基本类型,分别是代表整形的byte.short.int和long,代表浮点型的float和double,代表字符的char已经代表布尔型的boolean. byte:                             8位二进制,−27-27−1. short:                  16位二进制,−215-215−1. int: