JSX语法

一、什么是JSX语法

在js中直接使用html标签,而不是以字符串的形式使用html标签的语法称为JSX语法

二、JSX语法在react中的使用

1. 使用JSX语法的文件需要引入React对象
2. 使用自己的组件时,标签要大写,比如:
在index.js中
```javscript
...
import App from './App'
ReactDOM.render(<App />, document.getElementById('root')) 

不能改成:
...
import app from './App'
ReactDOM.render(<app />, document.getElementById('root'))
3. App.js导出的标签只能有一个容器,不能是多个容器,比如:
render() {
  return {
    <div></div>
    <ul></ul>
  }
}
上面代码会报错是因为导出了两个容器,div,ul

可以改成:

 render() {
  return {
    <div>
        <div></div>
        <ul></ul>
    </div>
  }
}
4. jsx注释
<Fragment>
  {
    // Fragment标签是一个react组件,需要通过import {Fragment} from 'react'导入才能使用
  }
</Fragment>
5. jsx语法中js和html标签的冲突
  • class
    如果要声明标签中class属性,那么需要使用className代替
  • for
    如果要声明label标签中的for属性,那么需要使用htmlFor代替
    这里htmlFor绑定了input的Id的话,点击Label会自动聚焦
6. 不对输入的html标签转义

react默认会对html标签进行转义,如果不想它转义,可以这样写:

<li dangerouslySetInnerHTML={{__html:curValue}}></li>

就是在用于显示数据的标签中使用dangerouslySetInnerHTML={{__html:value}}的形式

三、jsx语法生成虚拟DOM的过程

参数列表: 标签名,属性,内容
React.createElement('div', {}, 'content') // 生成虚拟DOM
jsx -> createElement -> 虚拟DOM(js对象)-> 真实DOM

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

推荐阅读更多精彩内容

  • 005@关于JSX语法 转(有所更改):React入门:关于JSX语法可以参考的资料:React.js学习笔记之J...
    蓦然之间的阅读 965评论 0 0
  • JSX是React的核心组成部分,它使用XML标记的方式去直接声明界面,界面组件之间可以互相嵌套。可以理解为在JS...
    可乐爱上咖啡阅读 72,098评论 1 63
  • React的核心机制之一就是可以在内存中创建虚拟的DOM元素。React利用虚拟DOM来减少对实际DOM的操作从而...
    大诗兄_zl阅读 709评论 0 0
  • React发明了JSX,利用HTML语法来创建虚拟DOM。React的核心机制之一就是可以在内存中创建虚拟的DOM...
    张培跃阅读 20,022评论 0 13
  • 今日行程,市内一日游,熟悉长安,触摸历史。 第一站是明城墙。 长乐门是西安的东城门,站...
    苏州的雨巷阅读 342评论 2 0