react学习-4.JSX语法进阶

既然JSX是JavaScript 的语法扩展,与JavaScript之间等价转换,那自然而然,我们可以在jsx中使用js语法。

1.JSX中的表达式

  • JSX是支持表达式的,你只要使用一个大{ }括号,就可以使用表达式了。

我们把HelloWorld程序改写成使用表达式的。

const str = ',World'
function sayhi(name) {
  return 'Hi,' + name;
}
const element = <h1>Hello{str}{sayhi('react')}</h1>;

ReactDOM.render(element, document.getElementById('root'));   //Hello,WorldHi,react

2.JSX中的数组

  • JSX中的数组进行遍历时,需要加key属性,如果没有key虽然会出来效果,但是控制台会包错。key的作用是生成虚拟DOM时,需要使用key来进行标记,DOM更新时进行比较。

      const arr = ['Hello', 'React'];
      const str1 = (
        <div>
          {arr.map(function (name) {
              return (
                  <p key={name}>{name}</p>
              )
            })}
        </div>
      )
      
      ReactDOM.render(
        str1, document.getElementById('root'));
      //Hello 
      //React
    
  • JSX允许直接在模版插入JavaScript变量。如果这个变量是一个数组,则会展开这个数组的所有成员。

      const arr=[
          <h1 key="Hello">Hello</h1>,
          <h2 key="React">React</h2>
      ];
      ReactDOM.render(<div>{arr}</div>, document.getElementById('root'));  
      //Hello
      //React 
    

3.JSX 属性

JSX 的标签同样可以拥有自己的属性:

const title = <h1 id="main">React Learning</h1>
  • 但它和 HTML 又不是完全相同的,例如我们想要为 JSX标签添加 class 的时候需要换成className而不是class
    const title = <h1 className="main">React Learning</h1>
  • 因为 JSX 的特性更接近 JavaScript 而不是 HTML,所以 React DOM 使用 camelCase 小驼峰命名 来定义属性的名称,而不是使用 HTML 的属性名称。如常用的点击事件用onClick而不是onclick等。

4.JSX 嵌套

  • JSX 的标签也可以像 HTML 一样相互嵌套,一般有嵌套解构的 JSX 元素外面,我们习惯于为它加上一个小括号

      const element = (
        <div>
          <h1>Hello!</h1>
          <h2>Good to see you here.</h2>
        </div>
      );
    
  • JSX 在嵌套时,最外层有且只能有一个标签,否则就会报错.

      // 这是一个错误示例 
      const title = ( 
        <h1 className="main">React Learning</h1> 
        <p>Let's learn JSX</p>
       )
    

下一篇——react学习-5.React组件

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

推荐阅读更多精彩内容

  • 3. JSX JSX是对JavaScript语言的一个扩展语法, 用于生产React“元素”,建议在描述UI的时候...
    pixels阅读 2,885评论 0 24
  • 以下内容是我在学习和研究React时,对React的特性、重点和注意事项的提取、精练和总结,可以做为React特性...
    科研者阅读 8,292评论 2 21
  • 本笔记基于React官方文档,当前React版本号为15.4.0。 1. 安装 1.1 尝试 开始之前可以先去co...
    Awey阅读 7,803评论 14 128
  • 原教程内容详见精益 React 学习指南,这只是我在学习过程中的一些阅读笔记,个人觉得该教程讲解深入浅出,比目前大...
    leonaxiong阅读 2,860评论 1 18
  • 25岁,从一眼看得到结局的人生里出走,沉寂的心脏重又开始跳动起来,就像平静的湖面开始自我沸腾。 我终于放弃做一只喜...
    青裳MG阅读 152评论 0 0