jsx简介
react文档笔记
jsx简介
jsx是一种javascript的语法扩展,jsx用来声明React当中的元素。
在jsx中使用表达式
jsx当中的表达式要包含在大括号里。例如2+2,user.firstName,formatName(user)等等。
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的时候一般会带上换行和缩进,这样可以增强代码的可读性,在jsx代码外面加上一个小括号,这样可以防止分号自动插入的bug。
jsx本身其实也是一种表达式
在编译之后,jsx其实会被转化为普通的javascript对象。这也就意味着可以下if或者for语句里使用JSX,将它复制被变量当做参数传入,作为返回值都可以:
function getGreeting(user){
if(user){
return <h1>hello,{formatName(user)}</h1>;
}
return <h1>hello,Stranger</h1>;
}
JSX属性
可以使用引号来定义以字符串为值的属性:
const element=<div tabIndex='0'></div>;
也可以使用大括号来定义以javascript表达式为值得属性:
const element=<img src={user.avatarUrl}></img>;
使用了大括号包裹的javascript表达式时就不要再到外面套引号了。JSX会将引号当中的内容识别为字符串而不是表达式。
JSX嵌套
如果Jsx标签是闭合式的,那么你需要在结尾处使用/>,就好像XML/HTML一样:
const element = <img src={user.avatatUrl}/>
JSX标签同样可以相互嵌套:
const element = {
<div>
<h1>Hello!</h1>
<h2>Good to see you here.</h2>
</div>
}
注意:JSX的特性更接近javascript而不是HTML,所以ReactDOM使用camelCase小驼峰命名来定义属性的名称,而不是使用HTML的属性名称。
JSX代表Objects
Babel转移其会把JSX转换成一个名为React.createElement()的方法调用。
下面两种代码的作用完全是相同的:
const element = (
<h1 class="greeting">
hello,world!
</h1>
);
const element =React.createElement(
'h1',
{className:greeting},
'hello,world!'
)
React.createElement()这个方法首先会进行一些避免bug的检查,之后会返回一个类似于下面例子的对象:
const element = {
type:'h1',
props:{
className:'greeting',
children:'hello,world'
}
}
这样的对象被称为“React元素”。他代表所有你在屏幕上看到的东西。React通过读取这些对象来构建DOM并保持内容一致。
jsx简介的更多相关文章
- React文档翻译系列(三)JSX简介
# React文档翻译系列(三)JSX简介 先来看一下下面的变量声明: ``` const element = Hello world! ``` 这种有趣的标签语法既不是字符串也不是HTML. 这种形 ...
- React基础篇 - 02.JSX 简介
JSX 简介 请观察下面的变量声明: const element = <h1>Hello, world!</h1>; 这种看起来可能有些奇怪的标签语法既不是字符串也不是HTML ...
- 【译】快速起步-JSX简介
react version: 15.5.0 快速起步-JSX简介 思考这个变量申明: const element = <h1>Hello, world!</h1>; 这个有趣的 ...
- React学习笔记 - JSX简介
React Learn Note 2 React学习笔记(二) 标签(空格分隔): React JavaScript 一.JSX简介 像const element = <h1>Hello ...
- JSX 简介
JSX 简介 考虑如下变量声明: const element = <h1>Hello, world!</h1>; 这个有趣的标签语法既不是字符串也不是HTML. 它被称为JSX ...
- React 入门学习笔记整理(二)—— JSX简介与语法
先看下这段代码: import React from 'react'; //最终渲染需要调用ReactDOM库,将jsx渲染都页面中 import ReactDOM from 'react-dom'; ...
- react学习(一)--JSX简介
由于在中国银联实习的项目要用到react,所以不得不硬着头皮把react学习一下.这是要往全栈发展吗0.0 正文: 一个最简单的React例子如下, ReactDOM.render( <h1&g ...
- JSX语法简介
React的核心机制之一就是可以在内存中创建虚拟的DOM元素.React利用虚拟DOM来减少对实际DOM的操作从而提升性能. JSX简介 JSX就是Javascript和XML结合的一种格式.Reac ...
- 从零开始学前端,React框架背后的核心机制和原理JSX
什么是React React是起源于Facebook的一个前端框架,用于构建用户界面的JavaScript库,Facebook用来探索一种更加高效优雅的Javascript MVC框架来架设Insta ...
随机推荐
- golang中net/http包的简单使用
一.介绍 http包提供了http客户端和服务端的实现 Get,Head,Post和PostForm函数发出http.https的请求 程序在使用完回复后必须关闭回复的主体 #简单的访问网站,由于没有 ...
- H5页面在手机上查看 使用手机浏览自己的web项目
参考:http://www.browsersync.cn/#install 首先全局安装BrowserSync : npm install -g browser-sync 其次在项目文件夹下运行: b ...
- day 60 Django基础七之Ajax
Django基础七之Ajax 本节目录 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) 六 同源策 ...
- CCPC 2019 网络赛 1002 array (权值线段树)
HDU 6703 array 题意: 给定一个数组 \(a_1,a_2, a_3,...a_n\) ,满足 \(1 \le a[i]\le n\) 且 \(a[i]\) 互不相同. 有两种 ...
- 左神算法基础班5_1设计RandomPool结构
Problem: 设计RandomPool结构 [题目] 设计一种结构,在该结构中有如下三个功能: insert(key):将某个key加入到该结构,做到不重复加入. delete(key):将原本在 ...
- Java 内部类,成员类,局部类,匿名类等
根据内部类的位置不同,可将内部类分为 :成员内部类与局部内部类. class outer{ class inner{//成员内部类 } public void method() { class loc ...
- Git合并时遇到冲突或错误后取消合并
当合并分支时遇到错误或者冲突,分支旁边会多出“|MERGING”这个东西 有这个状态存在时,会导致后面想要再合并的时候提示如下 所以需要先取消这次合并,使用“git merge --abort”命令
- Jquery 遍历 Table;遍历CheckBox ;遍历Select;全选/全不选
关于Jquery:相信大家已经很熟悉了,我最近的项目运用到关于Jquery的遍历事件:权当总结下: 遍历Table <table id="thistab"> < ...
- sql 根据列名查所属表名
比如 有一个jueseID字段,想知道这个字段是哪个表里的. 第一步: select * from syscolumns where name = 'jueseID' 第二步: select * fr ...
- Redis理解和使用
摘抄并用于自查笔记 1. Redis简介 我们日常Java Web开发,一般使用数据库进行存储,在数据量较大的情况下,单一使用数据库保存数据的系统会因为面向磁盘,磁盘读写速度比较慢而存在严重的性能弊端 ...