接下来我们就要讲到JSX语法了,在我们讲它之前,我们先引入一个概念叫语法糖。
    听到这个名字首先我们可能会想到一个词叫”糖衣炮弹“,那么什么叫糖衣炮弹呢,就是给你说各种好听的话,来迷惑你,但是稍微一体会对方这句话的意思,才能发现内藏的恶毒含义,其实这个词来源于医学,我们吃的药片可能很酷,很难入口,于是医药公司就在很苦的药外层包了一层糖衣,让我们把药片含在嘴里的时候,发现好甜,但是其里面的真正起药物作用的是里面很苦的心。
    那么到底什么是语法糖呢?其实就是一种比较简单的语法,它对这门语言的功能其实没有影响,但是可以让程序员更方便的去使用它,通畅了来说,语法糖可以增加程序的可读性,从而减少程序代码出错的机会。
    好了,我们接下来再回头来看我们的JSX语法,首先我要告诉大家的是JSX语法就是一种语法糖,它存在的目的就是让我们程序员使用起来更简单,代码可读性更强,实际上没”药用价值“。
const element=<h1>Hello,World!</h1>;
上述代码在我们传统js里面是不可以的,等号后面的内容必须用双引号包起来:
const element="<h1>Hello,World!</h1>”;
注意:有同学不认识const建议先去学习一下es6,不会es6的话,再往后寸步难行,在这里简单介绍一下const,我们可以把它理解成var声明变量,只不过const声明的变量不允许被修改。
    上述不加引号的标签语法就叫JSX(JavaScript XML)。
    JSX语法的原则是遇到尖括号“<”,按照解析HTML的方式解析,遇到花括号“{}”则按照解析JavaScript方式解析,如下:
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Hello,World</title>
</head>
<body>
    <div id="root"></div>
    <!--注意这里有个div#root-->
    <script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
    <script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
    <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
    <script type="text/babel">
        // 注意这里改成type="text/babel"
        const name='yang';
        const element=<h1>Hello,{name}</h1>;
        //花括号里面当js去解析
        ReactDOM.render(
            //渲染方法,这里暂时不需要看懂,只需要明白这个方法是将element放进了#root中
            element,
            document.getElementById('root')
        )
 
 
    </script>
</body>
</html>
    我们可以认为所谓的JSX语法,其实本质就是XML与JavaScript结合的一种语法而已;
 
 
我们还要了解一下如果不用JSX语法,我们的代码将写成什么样子?
使用JSX:
const element = (
  <h1 className="greeting">
    Hello, world!
  </h1>
);
不使用JSX:
const element = React.createElement(
  'h1',
  {className: 'greeting'},
  'Hello, world!'
);
显而易见,上面使用JSX更简单,所以我们认为JSX语法是语法糖。 

小白学习React官方文档看不懂怎么办?2.JSX语法的更多相关文章

  1. 小白学习React官方文档看不懂怎么办?

    最近在上React课程的时候,发现好多同学不会看文档,所以在这里写一篇文章,希望能给同学们一点点启发. 我们首先打开React官方网站——https://react.docschina.org/doc ...

  2. 小白学习React官方文档看不懂怎么办?3.元素渲染

    直接上代码 const element = <h1>Hello, world</h1>; ReactDOM.render(     element,      document ...

  3. React官方文档笔记之快速入门

    快速开始 JSFiddle 我们建议在 React 中使用 CommonJS 模块系统,比如 browserify 或 webpack. 要用 webpack 安装 React DOM 和构建你的包: ...

  4. 学习android 官方文档

    9.29 1. 今天,FQ,看到android studio中文网上有一个FQ工具openVPN,我就使用了. 之前用过一个FQ工具开眼,但由于网速慢,我就弃用了. 2. 现在,我就可以FQ去andr ...

  5. requests库的学习——跟随官方文档

    发送GET请求: import requests r=requests.get("http://www.kekenet.com/") 如果需要传递参数可以有以下几种方法: impo ...

  6. 照着官方文档学习react

    笨人学习法 10000个小时策略来学习,因为笨.先照着官方文档敲一遍,写一遍. 准备 先要准备环境.搭建一个基于webpack的react环境:Hello ReactJS. demo: https:/ ...

  7. 看官方文档学习springcloud搭建

    很多java的朋友学习新知识时候去百度,看了之后一知半解,不知道怎么操作,不知道到底什么什么东西,那么作为java码农到底该怎么学习额 一  百度是对还是错呢? 百度是一个万能的工具,当然是对也是错的 ...

  8. 学习h264 的语法规则,如何才能看懂H264 的官方文档

    1. 今天想查h264 的帧率,查找资料如下: 首先要解析sps,得到两个关键的数值: num_units_in_tick, time_scale fps=time_scale/num_units_i ...

  9. webpack新手名词解释……妈妈再也不担心我看不懂webpack官方文档了

    __dirname : 在任何模块文件内部,可以使用__dirname变量获取当前模块文件所在目录的完整绝对路径. path.resolve(): 方法将一系列路径或路径段解析为绝对路径. 语法: p ...

随机推荐

  1. zookeeper - 通过java代码连接zookeeper(2)

    首先创建一个Maven项目 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...

  2. Leetcode Tags(5)Hash Table

    一.500. Keyboard Row 给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词. 输入: ["Hello", "Alaska", &q ...

  3. 如何在Spring Boot项目中巧妙利用策略模式干掉if else!

    直入主题 我们都知道,设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路.它不是语法规定,而是一套用来提高代码可复用性.可维护性.可读性.稳健性以及安全性 ...

  4. 蓝桥杯基础练习 Huffuman树

    基础练习 Huffuman树 问题描述 Huffman树在编码中有着广泛的应用.在这里,我们只关心Huffman树的构造过程. 给出一列数{pi}={p0, p1, -, pn-1},用这列数构造Hu ...

  5. Java基础01-集合1、泛型

    集合.泛型 第一章:集合1 1. 什么是集合 定义:在Java中,集合是一种可以存储多个数据的容器. 代码: ArrayList<String> list = new ArrayList& ...

  6. 加上cdn后字体跨域

    @font-face是CSS3中的一个特性,可以把自己定义的Web字体嵌入到网页中,随着@font-face,越来越多的网页采用字体图标作为网页中的小图形. 比如Bootstrap就采用了Glyphi ...

  7. 使用Windows Powershell卸载和安装Win10 原生应用的方法

    新装的Win10带有大量的实际工作和生活中不怎么常用的APP,如果觉得这些APP占用磁盘空间或者想要卸载这些应用(APP),Win10下并不能使用Windows 应用管理器直接图形化地卸载这些应用,而 ...

  8. 第三十章 System V信号量(一)

    信号量 信号量和P.V原语由Dijkstra(迪杰斯特拉)提出 信号量: 互斥: P.V在同一进程中 同步: P.V在不同进程中 信号量值含义 S>0 : S表示可用资源个数 S=0 : 表示无 ...

  9. 证明:S = 1 + 1/2 + 1/4 + 1/8 + 1/16 + ·······,求证 S = 2

    证: S = 1 + 1/2 + 1/4 + 1/8 + 1/16 + ······· (式1) 将式1左右两边除以2,得: S/2 = 1/2 + 1/4 + 1/8 + 1/16 + 1/32 + ...

  10. Kruskal算法求最小生成树 笔记与思路整理

    整理一下前一段时间的最小生成树的算法.(其实是刚弄明白 Kruskal其实算是一种贪心算法.先将边按权值排序,每次选一条没选过的权值最小边加入树,若加入后成环就跳过. 先贴张图做个示例. (可视化均来 ...