[
课程介绍
](_index_)
[
html和css入门
](001day_index)
-
[
html概述及基本结构
](001day_section02)
[
html标签入门
](001day_section03)
[
html布局入门
](001day_section04)
[
css介绍
](001day_section05)
[
css载入方式
](001day_section06)
[
css选择器一
](001day_section07)
[
css元素属性及盒子模型
](001day_section08)
[
css文本属性
](001day_section09)
[
css基本布局演示
](001day_section10)
[
html和css进阶
](002day_index)
-
[
相对地址与绝对地址
](002day_section01)
[
列表
](002day_section02)
[
表单
](002day_section03)
[
表格
](002day_section04)
[
css选择器二
](002day_section05)
[
css显示特性
](002day_section06)
[
css元素溢出
](002day_section07)
[
html和css高级
](003day_index)
-
[
定位
](003day_section01)
[
css权重
](003day_section02)
[
photoshop辅助测量与取色
](003day_section03)
[
前端页面开发流程
](003day_section04)
[
javascript入门及进阶
](004day_index)
-
[
JavaScript介绍
](004day_section01)
[
JavaScript嵌入页面的方式
](004day_section02)
[
变量、数据类型及基本语法规范
](004day_section03)
[
函数
](004day_section04)
[
获取元素方法
](004day_section05)
[
操作元素
](004day_section06)
[
事件属性及匿名函数
](004day_section07)
[
条件语句
](004day_section08)
[
javascript高级
](005day_index)
-
[
数组及操作方法
](005day_section01)
[
循环语句
](005day_section02)
[
字符串及操作方法
](005day_section03)
[
定时器
](005day_section04)
[
调试程序的方法
](005day_section05)
[
变量作用域
](005day_section06)
[
封闭函数
](005day_section07)
[
JQuery入门
](006day_index)
-
[
jquery介绍
](006day_section01)
[
jquery文档加载完再执行
](006day_section02)
[
jquery选择器
](006day_section03)
[
jquery样式操作
](006day_section04)
[
绑定click事件
](006day_section05)
[
jquery动画
](006day_section06)
[
JQuery进阶
](007day_index)
-
[
jquery特殊效果
](007day_section01)
[
jquery链式调用
](007day_section02)
[
jquery属性操作
](007day_section03)
[
jquery事件
](007day_section04)
[
表单验证
](007day_section05)
[
JQuery高级
](008day_index)
-
[
事件冒泡
](008day_section01)
[
事件委托
](008day_section02)
[
Dom操作
](008day_section03)
[
javascript对象
](008day_section04)
[
json
](008day_section05)
[
ajax
](008day_section06)
[
ES6语法
](009day_index)
-
[
变量声明和赋值
](009day_section01)
[
函数相关
](009day_section02)
[
模块及面向对象
](009day_section03)
[
异步请求数据
](009day_section04)
[
新增数组操作方法
](009day_section05)
[
react入门和进阶
](010day_index)
-
[
react介绍
](010day_section01)
[
快速开始
](010day_section02)
[
JSX语法
](010day_section03)
[
组件和属性(props)
](010day_section04)
[
绑定事件
](010day_section05)
[
状态(state)
](010day_section06)
[
列表渲染
](010day_section07)
[
表单数据绑定
](010day_section08)
[
react高级
](011day_index)
-
[
生命周期方法
](011day_section01)
[
数据交互
](011day_section02)
[
脚手架开发
](011day_section03)
[
本書使用 GitBook 釋出
](https://www.gitbook.com)
前端开发课程
JSX语法
jsx语法是一种类似于html标签的语法,它的作用相当于是让我们在JavaScript代码中直接写html代码,但是jsx不完全是html,它是 JavaScrip 的一种扩展语法,它具有 JavaScript 的全部能力,我们还可在jsx代码中插入变量或者表达式,用jsx语法写出来的语句是一个对象,我们可以将它存为一个变量,这个变量作为ReactDOM对象的render方法的第一个参数。
let el = <h1>Hello world!</h1>;
ReactDOM.render(
el,
document.getElementById('root')
)
jsx的结构还可以写得更复杂,可以是嵌套结构,如果是嵌套结构,需要有唯一的一个外层标签。标签中如果是单个的标签,在结尾要加“/”,在jsx中可以通过“{}”插入变量,表达式或者函数调用。
<script type="text/babel">
let iNum01 = 10;
let sTr = 'abc123456';
function fnRev(s){
return s.split('').reverse().join('');
}
let el = (
<div>
<h3>jsx语法</h3>
{/* 插入变量及运算 */}
<p>{ iNum01+5 }</p>
{/* 插入表达式 */}
<p>{ sTr.split('').reverse().join('') }</p>
{/* 插入函数调用 */}
<p>{ fnRev(sTr) }</p>
{/* 插入三元运算表达式 */}
<p>{ ok?'YES':'NO' }</p>
</div>
);
ReactDOM.render(
el,
document.getElementById('root')
)
</script>
jsx中指定标签的属性值建议用双引号,不能不用引号,属性名建议用驼峰式,其中class属性需要写成className,属性值如果是可变的,也可以写成“{}”的形式,里面可以和上面写法一样。 标签如果是单个的,在结尾一定要加“/”
{/* 定义class */}
<p className="sty01">使用样式</p>
{/* 单个标签,结尾要加“/” */}
<img src={user.avatarUrl} />