美文网首页React
react学习-3.JSX语法原理

react学习-3.JSX语法原理

作者: YINdevelop | 来源:发表于2018-05-02 16:46 被阅读116次

第02节的HelloWorld程序从本质上能完成所有的工作。只是有一些开发效率问题,比如JavaScript代码与标签混写在一起等。而使用JSX,则可以有效解决这些问题。

1.JSX定义

JSX即Javascript XML,它使用XML标记来创建虚拟DOM和声明组件。是一种 JavaScript 的语法扩展。乍看起来可能比较像是模版语言,但事实上它完全是在 JavaScript 内部实现的。

2.重写HelloWorld

import React from 'react';
import ReactDOM from 'react-dom';
var element=<h1>Hello, world!</h1>;

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

我们来观察一下声明的这个变量:

这种看起来可能有些奇怪的标签语法既不是字符串也不是 HTML。它就被称为 JSX。

3.JSX实现原理

我们想要在浏览器里直接运行采用 JSX 语法的 JavaScript 显然暂时是不可能实现的,在实际的生产过程中,我们需要利用 Babel 一类的转译器来将我们的 JSX 语法或者 ES6 语法转译成浏览器可以直接运行的 JavaScript,事实上 JSX 在经过转译之后,会变成 React 创建 Element 的一个方法。即第二节所写demo实际就是babel转换后的代码来宫浏览器识别。

ReactDOM.render( 
    <h1>Hello world!</h1>, 
    document.getElementById('container')
 )

//babel转换后

ReactDOM.render( 
  React.createElement('h1',null,`Hello world!`),
  document.getElementById('container')
 )

4.JSX好处

通过上边的demo你可以发现JSX的好处。

  • 可以使用熟悉的语法仿照HTML来定义虚拟DOM。
  • 程序代码更加直观。
  • 与JavaScript之间等价转换,代码更加直观。
  • 可以任意地在 JSX 当中使用 JavaScript 表达式,具体见下章。

下一篇——react学习-4.JSX语法进阶

相关文章

  • react学习-3.JSX语法原理

    第02节的HelloWorld程序从本质上能完成所有的工作。只是有一些开发效率问题,比如JavaScript代码与...

  • JSX本质

    JSX语法 1.jsx其实是语法糖 2.开发环境会将jsx编译成js代码 3.JSX是React引入的,但不是Re...

  • react语法结构

    1.react JSX语法原理 react是函数式编程,使用jsx语法来渲染组件。jsx语法是合法的JavaScr...

  • 初试react

    这是学习react时写的第一个react文件,(holle react)使用es6语法和JSX语法) 在react...

  • 从一个nba应用理解react-redux工作原理

    本文不涉及react-native和es6的相关语法,只描述react-redux部分的工作原理。在描述例子之前,...

  • Python入门基础

    学习要点: 弱语法,重原理。语法是表现,只有了解深层原理,才能灵活运用。需要深入内存,剖析原理,才能看清语法。 重...

  • 005@关于JSX语法.md

    005@关于JSX语法 转(有所更改):React入门:关于JSX语法可以参考的资料:React.js学习笔记之J...

  • react学习(2019/7/30-8/7)

    今日总结 课上提到的内容 1. 讲了react要学习的内容提纲 react 基础,JSX语法,插件 react-r...

  • React系统性学习(下)

    $ 前言   在《React系统性学习(上)》中我们主要学习了 什么是React JSX语法 元素渲染 组件(Co...

  • JavaScript构造函数

    最近在学习React框架,虽然学完之后,掌握了React的语法,但是我在学习过程中发现,例如我利用React创建组...

网友评论

    本文标题:react学习-3.JSX语法原理

    本文链接:https://www.haomeiwen.com/subject/dspcrftx.html