3 - JSX 语法

JSX 的由来

React 为了方便 View 层组件化。承载了构建 HTML 结构化页面的职责。从这点上来看,React 与其他 JavaScript 模板语言有着许多异曲同工之处,但不同之处在于 React 是通过创建与更新虚拟元素(virtual element)来管理整个 Virtual DOM 的。

JSX 将 HTML 语法直接加入到 JavaScript 代码中,再通过翻译器转换成 纯JavaScript 。在实际开发中,JSX 在产品打包阶段都已经编译成 纯JavaScript 了,不会带来副作用,反而让代码更加直观并易于维护。

JSX 的官方定义是 类XML语法的ECMAScript扩展。它完美地利用了 JavaScript 自带的语法和特性。并使用大家熟悉的HTML语法来创建虚拟元素。

JSX 的构成

  • JS - JavaScript
  • X - xhtml (严格版本的html)

JSX 的基本语法

  • 单个根元素
  • 单标签要闭合 <br /> <input /> <img />
  • img 标签需要添加 alt 属性
  • 标签都是小写字母,组件首字母大写
  • class -> className
  • for -> htmlFor

JSX 中的注释

  • 多行注释
{ /*<h2>这是一个组件</h2>*/ }
  • 单行注释
{ 
    //<h2>这是一个组件</h2> 
}

React 中的插值表达式

  • vue - {{ 1 + 1 }}
  • react - { 1 + 1 }

PS: 在插值表达式中{ '' } | { false } | {null} | {undefined} 都不会渲染任何内容

html内容转义,需要使用 dangerouslySetInnerHTML 属性

<div dangerouslySetInnerHTML={{__html: content}}></div>

React 中没有指令系统

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第02节的HelloWorld程序从本质上能完成所有的工作。只是有一些开发效率问题,比如JavaScript代码与...
    YINdevelop阅读 1,197评论 0 0
  • virtual DOM 真实页面对应一个DOM树。在传统页面的开发模式中,每一次需要更新页面的时候,都需要手动操作...
    kim_jin阅读 2,103评论 0 1
  • JSX是React的核心组成部分,它使用XML标记的方式去直接声明界面,界面组件之间可以互相嵌套。可以理解为在JS...
    可乐爱上咖啡阅读 72,073评论 1 63
  • 005@关于JSX语法 转(有所更改):React入门:关于JSX语法可以参考的资料:React.js学习笔记之J...
    蓦然之间的阅读 942评论 0 0
  • 七 点绛唇,词牌名。 亦称《点樱桃》、《十八香》、《南浦月》、《沙头雨》、《寻瑶草》。双调,上片...
    58c38535b699阅读 361评论 0 0