ReactJs 第二章 JSX

        JSX是书写在jsx文件中的看似JavaScript语法但又包含Html标签的一种新的写法。jsx为Javascript的一种扩展语法,tsx则为TypeScript 的扩展语言。其书写看起来有JS也有Xml标签。JSX是ReactApp组成的最小单元元素,React使用Bable编译器将Jsx转换为js对象,提供给React进行页面渲染。

 1,JSX之{大括号}表达式在标签内的使用

          在JSX中可以使用大括号来进行嵌入需要替换的部分,可以替换之前定义的变量、函数表达式等表达式,如:

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

const name = "zhang san";
const person ={
		name:"li si",
		age:18
}
var newPersonName = function(){
	return "wang wu";
}

const element = <h1>Hello {name} , {person.name} And {newPersonName()}</h1>;

ReactDOM.render(element,document.getElementById('root'));

  运行结果

在ReactDOM.render函数中第一部分中的jsx也可以使用函数进行jsx对象返回。

var getJsxObj = function(){
	return <h3>这是JSXObj</h3>;
}

ReactDOM.render(getJsxObj(),document.getElementById('root'));

 2,JSX之{大括号}表达式在标签上以属性的方式使用

const element = <img src={url} title={"这是标题"}></img>;

在写style时 style值需要用js对象来解析,所以在有style属性时写法如下:

const divEle = <div style={{border:"2px solid red"}}>{element}</div>;

3,使用大括号还可以进行对危险标签进行转义操作

const script = "<script>alert(999);</script>";

ReactDOM.render(script,document.getElementById('root'));

4,JSX多层级嵌套

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


const url = "https://dss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo_top-e3b63a0b1b.png";

const element = <img src={url} title={"这是标题"}></img>;
const divEle = <div style={{border:"2px solid red"}}>{element}</div>;

ReactDOM.render(divEle,document.getElementById('root'));

5,Bable 转义过程:

const element = (
  <h1 className="greeting">
    Hello, world!
  </h1>
);
//等效转义后的:
const element = React.createElement(
  'h1',
  {className: 'greeting'},
  'Hello, world!'
);
//简化后的结构:
const element = {
  type: 'h1',
  props: {
    className: 'greeting',
    children: 'Hello, world!'
  }
};

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值