课程代码:链接: https://pan.baidu.com/s/16hEN7j4hLDpd7NoFiS8dHw?pwd=4gxv 提取码: 4gxv 复制这段内容后打开百度网盘手机 App,操作更方便哦。
React简介
网页是B/S架构,传统网页中用户每点击一次链接就会加载一个新的页面,加载全部内容。但是许多情况只需要局部刷新就可以满足需求,例如购物网站加入购物车的操作,此时网页不需要全部刷新,只需要局部发生变化。
AJAX+DOM使得局部刷新成为可能,但是DOM操作仍然很麻烦,且存在兼容性问题。DOM操作本身十分占用系统资源,DOM的API十分繁复,使得各种操作十分的不优雅。
React是一个用于构建用户界面的JavaScript库。
React特点:
- 虚拟DOM
- 声明式
- 基于组件
- 支持服务器端渲染
- 快速、简单、易学
1.HelloWorld
React.createElement()
- 用来创建一个React元素
- 参数:1.元素名(组件名),例如:
div
、span
等; 2.元素中的属性,例如:id
、class
、style
等 / ① 在设置事件时,属性名需要修改驼峰命名法 ② class属性需要使用className来设置; 3.元素的子元素(内容)
ReactDOM.createRoot()用来创建React根元素,需要一个DOM元素作为参数.
1 |
|
⚠️ 注意:
- React元素最总会将虚拟DOM准换为真实DOM
- React元素一旦创建就无法修改,只能通过新创建的元素进行替换
- 当重复调用render()方法时,React会采用差分算法进行高效更新
2.JSX
命令式编程const button = React.createElement('button',{},'我是按钮');
声明式编程 - 结果导向编程
在React中可以通过JSX(JS拓展)来创建React元素,JSX需要被翻译为JS代码,才能被React执行
在React中使用JSX,必须引进Babel来完成翻译工作
JSX 就是 React.createElement()的语法糖
JSX在执行之前都会被babel转换为js代码
2.1 JSX的补充
使用React需要在页面中引入三个库 react.js
react-dom.js
babel.js
(三者载入顺序不能变)
JSX注意事项:
- JSX不是字符串,不要加引号
- JSX中的html标签应该小写,React组件应该大写开头
- JSX中有且只有一个根标签,只能使用一个div包裹
- JSX的标签必须正确结束 (自结束标签必须写/)
- 在JSX中可以用{}嵌入表达式
- 如果表达式是空值,布尔值,undefined这些值,将不会显示
- 在JSX中,属性可以直接在标签中显示
- 注意:
- lass需要使用className代替
- style需要使用对象设置
1 | const name = "孙悟空"; |
2.2 列表渲染
{}只能用来放js表达式,而不能放语句(if for)
在语句中是可以去操作JSX
1 | let div; |
1 | const arr = ['aa','bb','cc'] |
结果是:aabbcc
1 | const data=[]; |
3.创建React项目
约定优于配置