react本质:JSX如何转化为javascript

栏目: JavaScript · 发布时间: 5年前

内容简介:react中基本都使用JSX来开发,但JSX其实是javascript的一种语法糖。简单说,JSX是一种更简便书写javascript的方式由于DOM结构被我们写到了javascript文件里,由javascript来生成DOM结构

react中基本都使用JSX来开发,但JSX其实是javascript的一种语法糖。

什么是语法糖?

语法糖就是提供了一种全新的方式书写代码,但是其实现原理与之前的写法相同。

语法糖可以说是广泛存在于各种计算机代码中,包括 C语言 中的a[i]其实就是*a+i的语法糖。而今天对于我们来说,a[i]其实已经很普遍和常用了,所以也没有人提这是语法糖这回事了。因为终极来说,所有语言都是汇编语言的语法糖:)

简单说,JSX是一种更简便书写javascript的方式

由于DOM结构被我们写到了javascript文件里,由javascript来生成DOM结构

如果一直使用javascript来写DOM结构,那么render函数里就是一堆React.createElement

这样既不美观也不实用。

但是我们必须知道,JSX本质上就是javascript

在编译的时候,会由babel将JSX转化为javascript。

比如

<div className="aaa">
    <span>222</span>
      <span>333</span>
</div>

生成了

"use strict";

React.createElement("div", {
  className: "aaa"
}, React.createElement("span", null, "222"), React.createElement("span", null, "333"));

比如

function Comp(){
    return <div className='test'>test</div>
}

<Comp className="test2">222</Comp>

生成

"use strict";

function Comp() {
  return React.createElement("div", {
    className: "test"
  }, "test");
}

React.createElement(Comp, {
  className: "test2"
}, "222");

了解JSX的本质,只需要记住:JSX本质就是javascript

附录

babel提供的一个在线转换JSX为javascript的地址

https://babeljs.io/repl/

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入浅出React和Redux

深入浅出React和Redux

程墨 / 机械工业出版社 / 2017-4-28 / 69

本书作者是资深开发人员,有过多年的开发经验,总结了自己使用React和Redux的实战经验,系统分析React和Redux结合的优势,与开发技巧,为开发大型系统提供参考。主要内容包括:React的基础知识、如何设计易于维护的React组件、如何使用Redux控制数据流、React和Redux的相结合的方式、同构的React和Redux架构、React和Redux的性能优化、组件的测试等。一起来看看 《深入浅出React和Redux》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具