React(2)--JSX

前言:

- 在 React 中,组件是用于分离关注点,而不是被当作模板或者处理显示逻辑的。

- 使用 React,我们要习惯HTML标签及生成这些标签的代码间的内在紧密关系 。

- React 可以不适用 JSX,然而 JSX 可以提高组件可读性,推荐使用 JSX


目录:


JSX


- 什么是JSX

JSX→JavaScript XML(一种在React组件内部构建标签的类XML语法)

  →

<h1 className='title'>标题</h1>

- 为什么使用JSX

  1. 允许使用熟悉的语法定义HTML元素树
  2. 自定义标签
  3. 程序结构直观
  4. 抽象React Element 创建过程
  5. 关注点分离
  6. 是原生的JavaScript
  7. 复合组件和自定义组件
  8. 使用动态值({ JavaScript代码块 })
  9. 子节点


→ 第9点:

var Box = React.createClass({
    render: function(){
        return(
            <div className='box'>
                { this.props.children }
            </div>
        );
    }
});

//调用
<Box>'I am a box!'</Box>

注解:Box所有子节点保存在 this.props.children的特殊组件中,this.props.chilidren == [ ’ I am box ! ’ ]


- JSX和HTML的区别

(此处只简要说明了几个,还有像 HTML 中 for ,JSX 使用 htmlFor 等细节需要大家自行熟悉学习。)

* 1. 属性:*
HTML:<div id='domId' class='content'></div>
 JSX:<div id={domId} className={content}></div>

* 2. 条件判断:*
HTML:for  if

 JSX:使用if等语句会渲染无效的JavaScript

      代替方法: 
              - 三目运算
              - 设置一个变量并在属性中使用它
              - 将逻辑转化到函数
              - 使用&&运算符

       →
       render : function(){
          return(
             <div className={ this.state.selected? ' selected' : ' no-selected'}>
             </div>
          );
       }

* 3. 非DOM属性:只在 JSX 中存在*
- key : 一个可选的唯一标识符 

- ref : 允许组件在render方法之外保持对子组件的一个引用

- dangerouslySetInnerHTML:将 HTML 内容设置为字符串(少用 !)
* 4. 事件:(React 自动绑定了组件所有方法的作用域,无须手动 .bind( this ) 绑定)*


HTML:<span onclick='...'></span>
JSX :<span onClick={...}></span>


总结:

JSX 并不复杂,相反还很容易上手。想要运用的6,还需要我们 多写多用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值