react本质:JSX如何转化为javascript

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

内容简介: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/

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

查看所有标签

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

Data Structures and Algorithms with JavaScript

Data Structures and Algorithms with JavaScript

Michael McMillan / O'Reilly Media / 2014-2-22 / USD 28.51

If you’re using JavaScript on the server-side, you need to implement classic data structures that conventional object-oriented programs (such as C# and Java) provide. This practical book shows you how......一起来看看 《Data Structures and Algorithms with JavaScript》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

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

RGB CMYK 互转工具