React 学习02 - JSX 的基本使用

使用 React 时,在引入了相关 JS 文件之后,通常要做两个步骤:

  1. 创建虚拟 DOM
  2. 引入虚拟 DOM(将虚拟 DOM 渲染到目标节点中)

其中,JSX 语法是为了让我们更方便的执行第一步,那么在使用 JSX 之前,我们先来看一下原始方式是如何创建虚拟 DOM 的。

原始方式创建虚拟 DOM

利用原始方式,需要用到 React.createElement() 方法,要指定一些参数:

  1. 第一个参数:标签名
  2. 第二个参数:标签属性对象
  3. 第三个参数:标签中的内容

例如:

let vDom = React.createElement('div', {id: 'app'}, 'Hello World')

注意:利用原始方式,不需要使用 babel ,所以 script 标签 typetext/javascript

JSX

JSX 中有一些语法规则,在解析过程中,如果遇到 < ,就按照 HTML 语法解析,如果遇到 { ,就按照 JS 语法解析。

注释

在 JSX 中使用注释比较特殊,注释的内容要放在 {/* */} 之间, 例如:

let myDOM_0 = <div>{/* 我是注释 */}</div>
多个标签

JSX 中多行标签,需要有一个父元素包裹。另外,如果发生换行,建议使用 () 包裹,例如:

// let myDOM_1 = <div>我是第一个div</div><div>我是第二个div</div> // 报错
let myDOM_1 = (<div>
  <div>我是第一个div</div>
  <div>我是第二个div</div>
</div>)
表达式

JSX 表达式,如果想在 JSX 中使用表达式,那么我们就需要将表达式放入一对 {} 中,例如:

let text = 'hello world'
let num = 5
let sayHello = user => `我是${user.name},今年${user.age}`

let myDOM_2 = (<div>
  {/* 展示 */}
  <div>{text}</div>
  {/* 计算 */}
  <div>{num++}</div>
  {/* 调用函数 */}
  <div>你好,{sayHello({ name: '张三', age: 13 })}</div>
  {/* 三目运算 */}
  <div>根据num输出flag --- flag:{num > 2 ? 'OK' : 'NOT'}</div>
</div>)
给标签设置属性

JSX 中一般属性就用表达式( {} )来表示:

let url = 'http://www.baidu.com'
let myDOM_4 = <a href={url}>百度</a>

但是 styleclass 属性比较特殊,设置 style 属性,要注意 style 必须为对象格式,例如:

let style = { width: '100px', height: '100px', backgroundColor: 'red' }
let myDOM_5 = <div style={style}></div>

设置 class 属性的时候要注意,因为虚拟 DOM 是用 JS 来表示的,在 JS 中,class 是一个关键字,所以在标签上的属性不能叫 class,我们要用 className 来替代它,例如:

let myDOM_6 = <div className="bgc size"></div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值