视频链接:https://www.bilibili.com/video/BV1wy4y1D7JT?from=search&seid=8911495119258965968&spm_id_from=333.337.0.0
react简介
1. 是什么?
是一个将数据渲染为HTML视图的开源JavaScript库。
react只关注页面(视图)
2. 谁开发的?
3. 为什么要学?
1.原生JavaScript操作DOM繁琐、效率低(DOM-API操作Ul )。
2.使用JavaScript直接操作DOM,浏览器会进行大量的重绘重排。
3.原生JavaScript没有组件化编码方案,代码复用率低。
使用jQuery,也只是代码量变少,效率仍然低,因为每一次操作dom,都会引起浏览器的重汇重排。
4.React的特点
1.采用组件化
模式、声明式编码
,提高开发效率及组件复用率。
(命令式编码:通过JS或jQuery拿到页面上红色的盒子,.style改样式把他变成蓝色)
2.在React Native中可以使用React语法进行移动端开发。
3.使用虚拟DOM
+优秀的Diffing算法
,尽量减少与真实DOM的交互。(虚拟DOM,专门给react使用的dom,放在内存里)
纯js实现
原来的数据无法复用。
优势:后期数据发生变化的时候,不丢弃虚拟DOM,进行虚拟DOM的比较,比较一致的话,页面的真实DOM直接使用,只生成新的DOM。
5.学习React之前你要掌握的JavaScript基础知识
判断this的指向
class(类)
ES6语法规范
npm包管理器
原型、原型链
数组常用方法(数组统计、遍历、过滤、条件筛选、条件求和、筛选最值)
模块化
babel.min.js的作用
react.development.js 核心库
react-dom.development.js react扩展库(帮忙操作dom)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>hello_react</title>
</head>
<body>
<!-- 准备好一个容器 -->
<div id="test"></div>
<!-- 引入react核心库 -->
<script type="text/javascript" src="../js/react.development.js"></script>
<!-- 引入react-dom,用于支持react操作dom -->
<script type="text/javascript" src="../js/react-dom.development.js"></script>
<!-- 引入babel,用于将jsx转为js -->
<script type="text/javascript" src="../js/babel.min.js"></script>
<!-- babel代表里面写的不是js,而是jsx,靠babel翻译 -->
<script type="text/babel">
// 1 创建虚拟dom
const VDOM = <h1>Hello,React</h1> /* 此处一定不要写引号,因为不是字符串 */
// 2 渲染虚拟dom到页面
// ReactDOM.render(虚拟dom,容器)
ReactDOM.render(VDOM, document.getElementById('test'))
</script>
</body>
</html>
注意:1.script的type中的MIME类型中子类型一定要是babel;2.VODM的值不要加单双引号;3.引入脚本的顺序:核心库一定要在扩展库前面;
红色报错是因为:找不到偏爱图标,刷新页面报错就没了。
黄色警告是因为:使用了浏览器的babel翻译器,要我们确认不要在生产环境下运行脚本。(为了学习react基本语法,先按照本次方法学习,之后再换平台编码解决)