JSX简介和语法

JSX语法

JSX简介

在使用React开发想的时候建议使用JSX语法

由于通过React.createElement()方法创建的React元素有一些问题,代码比较繁琐,结构不直观,无法一眼看出描述的结构,不优雅,开发时写代码很不友好。

React使用 JSX 来替代常规的JavaScript,JSX 可以理解为的JavaScript语法扩展(超集),它里面的标签申明要符合XML规范要求。

因为浏览器不能识别JSX,可以使用babel进行转换,能让浏览器识别
babel网站:https://babeljs.io/repl#?browsers=defaults%2C%20not%20ie%2011%2C%20not%20ie_mob%2011&build=&builtIns=false&corejs=3.21&spec=false&loose=false&code_lz=DwVwNgfAUABDxgJYQIwCYDMwD0To_AiA&debug=false&forceAllTransforms=false&modules=false&shippedProposals=false&circleciRepo=&evaluate=false&fileSize=false&timeTravel=false&sourceType=module&lineWrap=true&presets=env%2Creact%2Cstage-2&prettier=false&targets=&version=7.23.5&externalPlugins=&assumptions=%7B%7D在这里插入图片描述

Recat不一定使用JSX语法,但是它有一下优点

  • JSX 执行更快,因为它在编译为JavaScript代码后进行了优化
  • 它是类型安全的,在编译过程中就能发现错误
  • 声明式语法更加直观,与HTML结构相同,降低了学习成本,提升开发效率速
  • jsx语法中一定要有一个顶级元素包裹,否则编译报错,程序不能运行

JSX语法

JSX表达式

在jsx语法中,要把JS代码写到{ }中,所有标签必须要闭合。

let num = 100
let bool = false;

// JSX 语法
var myh1 = (
  <div>
    {/* 我是注释 */}
    {num}
    <hr />
	{/* 三目运算 */}
	{true ? "条件为真" : "条件为假"}
  </div>
)

注意:vue中是双括号,但是在JSX中是单括号

属性绑定动态值

const title = '你好世界';
// 一定要会使用它,这样用法在工作中天天用
<button title={title}>按钮</button>

<style>
	/* class 是es6定义类的关键词,在jsx中不能使用,只能通过 className来调用定义好的样式类 */
	.btn{color:red;}
</style>
// classclassName一定要牢记,因为在工作,写样式就要用到
// for  htmlFor
<button className="btn">按钮</button>
// jsx中绑定样式 style 只绑定对象
<div style={ {color: 'red'} }></div>

// 动态显示html元素  dangerouslySetInnerHTML 可以进行对html标签进行反转义
// 在react17中jsx可以直接解析html,但是对于转义后的html还不会自动转义,需要使用它
const html = 你好 &copy;世界

// 不转义html元素输出 {两个下划线html:html}
<div dangerouslySetInnerHTML={ {__html:html} }></div>

JSX渲染数组列表

<script type="text/babel">
  let arr = ["张三","李四","王五","赵六"];
  let app = document.getElementById('app');
  ReactDOM.render(
<div>
  {/* jsx中如果是一维数组,直接写上就可以遍历渲染了 */}
      { arr }  
    </div>,
    app
  );
</script>

jsx渲染数组列表并处理

<script type="text/babel">
  let nameList = ['张三', '李四', '王五'];
  ReactDOM.render(
    <div>
      { 
	nameList.map((item,index) => <h3>{item}</h3>);  
    </div>,
    document.getElementById('app')
  );
</script>

React比较灵活,js还是很重要的,要熟练掌控js

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值