美文网首页
react随记1 jsx简介

react随记1 jsx简介

作者: _fan凡 | 来源:发表于2019-04-16 08:33 被阅读0次

JSX简介

JSX是JavaScript的预发扩展。推荐在React中使用JSX来描述用户界面。

1.在JSX中使用表达式

在JSX中可以任意使用JavaScript表达式,需要放在大括号中{}.
比如像运算 2+2,对象获取属性user.firstName以及调用JavaScript函数formatName(user)都可以作为表达式在JSX中使用。
例如:

function formatName(user) {
  return user.firstName + ' ' + user.lastName;
}

const user = {
  firstName: 'Harper',
  lastName: 'Perez'
};

const element = (
  <h1>
    Hello, {formatName(user)}!
  </h1>
);

ReactDOM.render(
  element,
  document.getElementById('root')
);

在这段代码中,真正的JSX部分是最后的两段代码,其中ReactDOM.render是将定义的内容通过ReactDOM渲染成html的DOM。element的定义是使用了表达式,看到调用JavaScript函数formatName的时候在外层加上了大括号{}。
上边的两段代码就是我们平常写的JavaScript代码,第一段是函数,第二段是对象定义。
可以看到,element元素在定义的时候,在外层加上了小括号(),其实不加也可以。不过推荐加上小括号,这样可以防止分号自动插入的bug。也就是说在element定义的时候也可以如下的(亲测可以):

const element = <h1>Hello, {formatName(user)}</h1>

这里看到很像html或者xml语法,元素的闭合性也需要注意。

2.JSX本身也是一种表达式

JSX本身也是一种表达式,JSX最终会结果React编译,转换成普通的JavaScript对象。那么这也就意味着,在JavaScript的语法中比如if或者for语句块中使用JSX,或者将JSX赋值给变量,或者当做函数的参数传入,当做返回值。
如下边的代码:

function getGreeting(user) {
  if (user) {
    return <h1>Hello, {formatName(user)}!</h1>;
  }
  return <h1>Hello, Stranger.</h1>;
}

3.JSX属性

你可以使用引号来定义以字符串为值的属性

const element = <div tabIndex="0"></div>;

也可以使用大括号来定义以 JavaScript 表达式为值的属性

const element = (<img src={user.avatarUrl} />);

切记你使用了大括号包裹的 JavaScript 表达式时就不要再到外面套引号了。JSX 会将引号当中的内容识别为字符串而不是表达式。

4.JSX嵌套

如果JSX标签是闭合的,那么在结尾处需要使用 />,就像XML和HTML一样。

const element = <img src="http://www.baidu.com" />

JSX标签也可以嵌套,就是类似在定义XML/HTML标签的时候,也是可以嵌套的。

const element = (
 <div>
  <h1>hello world!</h1>
  <h2>good to see you here</h2>
</div>
);

如前面所说,不用加小括号()也是可以的,可以测试

const element = 
 <div>
  <h1>hello world!</h1>
  <h2>good to see you here</h2>
</div>
;

但是需要注意的是,如前面所说的元素的闭合性,如下的代码是有问题的:

const element = (
  <h1>hello world!</h1>
  <h2>good to see you here</h2>
);
image.png
此时虽然用括号括起来了,作用一个JSX元素,但是标签并不是闭合的,开头是以<h1>开始,那么React认为是结尾应该以</h1>结束,但是这里却是</h2>结束。

相关文章

  • react随记1 jsx简介

    JSX简介 JSX是JavaScript的预发扩展。推荐在React中使用JSX来描述用户界面。 1.在JSX中使...

  • RN(三)--React JSX、初识React组件化

    一、React JSX 1. JSX简介 JSX就是Javascript和XML结合的一种格式。React发明了J...

  • React

    React 《React 官网文档》 React简介 React概念 React官网学习实践 - jSX简介 Re...

  • react深入文档

    开篇 安装create-react-app 1. JSX 简介 jsx 本质上还是js,因此遵循驼峰命名的方式 1...

  • React JSX 简介

    React 使用 JSX 来替代常规的 JavaScript。 JSX 是一个看起来很像 XML 的 JavaSc...

  • React简介和组件的介绍

    1. React简介 2. JSX语法 3. React组件 4. 个人总结 本人在阅读本书之前,对于React只...

  • JSX核心语法

    JSX简介 这个html标签和js的结合体就是JSX,JavaScript的扩展语法。在React中JSX会被创建...

  • JSX

    参考文章: JSX 简介 重拾JSX JSX,了解一下? 在react中想将js当作变量引入到jsx中需要使用{}...

  • React基础1——props、列表渲染、条件渲染、css及其管

    一、React整体认识 1、React是用于构建用户界面的js库。 2、React生态 3、JSX (1)JSX不...

  • React学习笔记

    脚手架的安装 JSX简介 JSX就是Javascript和XML结合的一种格式。React发明了JSX,可以方便的...

网友评论

      本文标题:react随记1 jsx简介

      本文链接:https://www.haomeiwen.com/subject/moqmwqtx.html