React 简介及其基本使用
相关概念:
插件: 别人写好的第三方库
xxx 插件: jQuery 插件 / react 插件
全家桶: 核心库 + 相关插件
构建项目: 对项目源码 进行 编译、合并、压缩......处理,生成能让浏览器高效运行的打包文件
构建用户界面: 显示带数据的界面(将数据以页面的形式展现出来)
jQuery 库: 直接操作 DOM,只是简化封装成了函数,是一个函数库。
React 库: 间接操作 DOM,通过修改状态数据刷新界面,组件化的编程思想
模块化编程: 一个 js 就是一个模块,项目代码由多个模块构成。
界面: html、css 实现的
功能: js 实现的
React Native 可以用开发原生应用 APP
一个 图片 的显示: 由内存的数据被浏览器解析 DOM 元素对象 渲染到页面
轻量级对象: 属性少 ---- 虚拟 DOM 元素对象
重量级对象: 属性多 ---- 原生 DOM 元素对象
用于动态构建 用户界面 的 javascript 库,由 Facebook 开源
特点:
声明式: 无需直接操作 DOM,只需更新页面数据对应的状态数据,即可更新页面
组件化编程: 每个界面功能完成的部分(html、css等所有资源)称之为 "组件"
作用: 简化、复用
组件使用:
一次学习,随处使用: 可以一套代码实现跨平台应用 (支持客户端与浏览器渲染)
高效: 只需操作虚拟 DOM,框架会映射到原生 DOM,采用了 DOM Diff 算法,最小化页面重绘
单数据流
基本使用:
<script src="https://cdn.bootcss.com/react/16.7.0/umd/react.development.js"></script>
<script src="https://cdn.bootcss.com/react-dom/16.7.0/umd/react-dom.development.js"></script>
<script src="https://cdn.bootcss.com/babel-standalone/6.26.0/babel.js"></script>
注意: 在浏览器中使用 Babel 来编译 JSX 效率是非常低的____页面运行过程中编译
产品版,应该是使用构建工具,提前将源码编译成正常的源码
2. 引入插件
操作 DOM 的插件
Babel 将 ES6 转 ES5,将 jsx 转换成 js
3. 写代码(浏览器解析之前,babel 会将 jsx 代码转换成 js 代码)
// 使用 jsx 语法 创建虚拟 DOM
<script type="text/babel"> // 声明使用 babel 解析 jsx 为 js
const vDOM = <h2 id={myId} name={myName}>{content}</h2>;
// 然后渲染
ReactDOM.render(vDOM, document.getElementById("test"));
// 创建虚拟 DOM 的 非 jsx 语法 步骤
const vDOM = React.createElement('h2', {id:"myWords", name: "kjf"}, "Hello React.");
// 然后渲染
ReactDOM.render(vDOM, document.getElementById("test"));
// 插入页面前: 根据虚拟 DOM 生成原生 DOM
// 将内存的虚拟 DOM元素渲染到页面的原生 DOM 容器中
jsx
<h2 id={myId} name={myName}>{content}</h2>;
全称:JavaScript XML
react 定义的一种类似于 XML 的 js 扩展语法 XML + js
标签、属性、文档 与 html 的相对应
作用: 创建 react 虚拟 DOM 元素对象
注意:
不是字符串,而是最终产生一个对象。虚拟 DOM 元素对象
debugger
动态展示列表数据
js
/**** 虚拟 DOM 标签数组
const lis = [
<li>Thor</li>,
<li>Stark</li>,
<li>Hock</li>,
]
const ul = (
<ul>
{lis}
</ul>
);
****/ const names= ["Thor", "Stark", "Hock"] // 创建虚拟 DOM
const ul = (
<ul>
{
names.map(
(each, index)=><li key={index}>{each}</li>
)
}
</ul>
) // 渲染 DOM
ReactDOM.render(ul, document.getElementById("outer"))
React 简介及其基本使用的更多相关文章
- (二)React简介
React简介 2-1: React v16 (React Fiber) React比Vue更灵活 Vue更简单 2-2 开发环境搭建 如何开始:(两种方式) 1.传统方式script标签引入.js文 ...
- React从入门到放弃之前奏(2):React简介
本系列将尽可能使用ES6(ES2015)语法.所以均在上节webpack的基础上做开发. React是Facebook开发的一款JS库,因为基于Virtual DOM,所以响应速度快,以及支持跨平台. ...
- React简介
React JS:可以用react的语法,来编写网页的交互效果 React Native:可以让我们借用react的语法来编写原生的app应用 React VR:在react的基础上去开发VR,或者说 ...
- React 简介
- React组件和生命周期简介
React 简介----React 是 Facebook 出品的一套颠覆式的前端开发类库.为什么说它是颠覆式的呢? 内存维护虚拟 DOM 对于传统的 DOM 维护,我们的步骤可能是:1.初始化 ...
- 《React Native 精解与实战》书籍连载「React 与 React Native 简介」
此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...
- react第一单元(简介)
第一单元(react简介) 课程目标 理解react这个框架在前端开发中的地位 理解react诞生的原因和意义(react是一个用于快速构建前端视图的javaScript库) 理解什么是虚拟dom.原 ...
- React入门 (1)—使用指南(包括ES5和ES6对比)
前言 本篇会简明扼要的介绍一下React的使用方法.代码会用JSX+ES5和JSX+ES6两种方式实现. React简介 React来自Facebook,于2013年开源.至今不断修改完善,现在已经到 ...
- React学习之一:React初探
一,React简介 React是由Facebook和Instagram开发的一套创建用户界面的JavaScript库.许多人认为React是MVC中的V. React创建的目的是为了:构建数据随时会改 ...
随机推荐
- 第十一节: EF的三种模式(一) 之 DBFirst模式(SQLServer和MySQL两套方案)
一. 简介 EF连接数据库有三种模式,分别是DBFirst.ModelFirst.CodeFirst,分别适用于不同的开发场景. 该章节,将主要介绍EF的DBFirst连接SQLServer数据库和M ...
- 已知 $AB$, 求 $BA$
设 $A,B$ 分别是 $3\times 2$ 和 $2\times 3$ 实矩阵. 若 $\dps{AB=\sex{\ba{ccc} 8&0&-4\\ -\frac{3}{2}& ...
- gulp学习笔记——最好的学习文档是官网
官网:http://www.gulpjs.com.cn/docs/api/ 当然还有一个博客写的也很好,当我看不下去官网的时候,这个帮助了我很多,明了易懂:http://www.ydcss.com/a ...
- sql server 中用于排名的三个函数 row_number() ,RANK() 和 DENSE_RANK()
row_number() ,RANK() 和 DENSE_RANK() 三个配合over() 使用排名 只是只是计算方式不一样,语法基本一样 语法: ROW_NUMBER() OVER (OR ...
- JMX的l理解
一.JMX的一些定义与用途 Java Management Extensions:Java管理扩展,是管理系统和资源之间的一个接口,它定义了管理系统和资源之间交互的标准. 1.专门管理,监控jvm的一 ...
- 关于sniff函数的一个小坑
最近在用scapy模块写一个关于WiFi的脚本时用到sniff函数,其中遇到了一个小坑,记录如下: sniff函数是在指定网卡上每次嗅探到一个数据包后然后将它传给prn指定的函数.
- ModuleNotFoundError: No module named 'video_back.urls'
新建Django项目时将settings,urls移除来时报错. 这是我所想要的项目结构 >>> 扁平结构. 将下面这个应用的名字删掉就可以了.
- org.hibernate.boot.MappingNotFoundException: Mapping (RESOURCE) not found :
可能原因: hibernate映射文件hibernate.cfg.xml中mapping中resource写错了文件名或者路径
- 再说C模块的编写(2)
[前言] 在<再说C模块的编写(1)>中主要总结了Lua调用C函数时,对数组和字符串的操作,而这篇文章将重点总结如何在C函数中保存状态. 什么叫做在C函数中保存状态?比如你现在使用Lua调 ...
- Beta冲刺(3/7)
目录 摘要 团队部分 个人部分 摘要 队名:小白吃 组长博客:hjj 作业博客:beta冲刺(3/7) 团队部分 后敬甲(组长) 过去两天完成了哪些任务 整理博客 ppt模板 接下来的计划 做好机动. ...