【01】基础知识:React简介与案例

这篇具有很好参考价值的文章主要介绍了【01】基础知识:React简介与案例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、React 简介

React 概述

React 是一个将数据渲染为 HTML 视图 的开源 JavaScript 库

React 由 FaceBook 开发,且开源

为什么要学习 React

1、原生 JavaScript 操作 DOM 繁琐、效率低(使用 DOM-API 操作 UI)

2、使用 JavaScript 直接操作 DOM,浏览器会进行大量的重绘重排

3、原生 JavaScript 没有组件化编码方案,代码复用率低

React 的特点

1、采用组件化模式、声明式编码,提高开发效率及组件复用率

2、在React Native 中可以使用 React 语法进行移动端开发

3、使用虚拟 DOM + 优秀的 Diffing 算法,尽量减少与真实 DOM 的交互

学习 React 需要掌握的 JavaScript 基础知识

1、判断 this 指向

2、 class(类)

3、ES6语法规范

4、 npm包管理器

5、原型、原型链

6、数组常用方法

7、模块化

React 官网

1、英文官网:https://reactjs.org/

2、中文官网:https://react.docschina.org/

二、React 案例

Hello React 案例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>hello_react</title>
</head>
<body>
	<!-- 准备好一个“容器” -->
	<div id="test"></div>

	<!-- 引入react核心库,全局有React对象 -->
	<script type="text/javascript" src="../js/react.development.js"></script>
	<!-- 引入react-dom,用于支持react操作DOM, 全局有ReactDOM对象 -->
	<script type="text/javascript" src="../js/react-dom.development.js"></script>
	<!-- 引入babel,用于将jsx转为js -->
	<script type="text/javascript" src="../js/babel.min.js"></script>

	<script type="text/babel"> /* 此处一定要写babel */
		// 1、创建虚拟dom
		const VDOM = <h1>Hello React</h1> /* 此处一定不要写引号,因为不是字符串 */
		// 2、渲染虚拟dom到页面(render不是追加,是替换)
		ReactDOM.render(VDOM, document.getElementById('test'))
	</script>
</body>
</html>

使用 js 创建虚拟 DOM

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>2_使用js创建虚拟DOM</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>

	<script type="text/javascript" > 
		// 1.创建虚拟DOM  - React.createElement(标签名, 标签属性, 标签内容)
		const VDOM = React.createElement('h1', { id: 'title' }, React.createElement('span', {}, 'Hello,React'))
		// 2.渲染虚拟DOM到页面
		ReactDOM.render(VDOM, document.getElementById('test'))
	</script>
</body>
</html>

使用 jsx 创建虚拟 DOM

使用 js 创建虚拟 DOM 写法比较繁琐,使用 jsx 可以更加简单的创建虚拟 DOM

jsx 写法经过 babel 翻译,会转变为 js写法,jsx 实际上 是 原始 js 的一种语法糖

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>1_使用jsx创建虚拟DOM</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>

	<script type="text/babel" > /* 此处一定要写babel */
		// 1.创建虚拟DOM 层次缩进,可以用小括号包裹
		const VDOM = (  /* 此处一定不要写引号,因为不是字符串 */
			<h1 id="title">
				<span>Hello React</span>
			</h1>
		)
		// 2.渲染虚拟DOM到页面
		ReactDOM.render(VDOM, document.getElementById('test'))
	</script>
</body>
</html>

虚拟DOM与真实DOM

1、虚拟 DOM 本质是 Object 类型的对象(一般对象)

2、虚拟 DOM 比较“轻”,真实 DOM 比较“重”,因为虚拟 DOM 是 Reac t内部在用,无需真实 DOM 上那么多的属性。

3、虚拟 DOM 最终会被 React 转化为真实 DOM,呈现在页面上。文章来源地址https://www.toymoban.com/news/detail-724585.html

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>3_虚拟DOM与真实DOM</title>
</head>
<body>
	<!-- 准备好一个“容器” -->
	<div id="test"></div>
	<div id="demo"></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>

	<script type="text/babel" > /* 此处一定要写babel */
		// 1.创建虚拟DOM
		const VDOM = (  /* 此处一定不要写引号,因为不是字符串 */
			<h1 id="title">
				<span>Hello,React</span>
			</h1>
		)
		// 2.渲染虚拟DOM到页面
		ReactDOM.render(VDOM, document.getElementById('test'))

		const TDOM = document.getElementById('demo')
		console.log('虚拟DOM', VDOM)
		console.log('真实DOM', TDOM)
		debugger
		// console.log(typeof VDOM)
		// console.log(VDOM instanceof Object)
	</script>
</body>
</html>

到了这里,关于【01】基础知识:React简介与案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【12】基础知识:React ajax

    了解 React 本身只关注于界面,并不包含发送 ajax 请求的代码 前端应用需要通过 ajax 请求与后台进行交互(json 数据) react 应用中需要集成第三方 ajax 库(或自己封装) 常用的 ajax 请求库 1、jQuery:比较重,如果需要另外引入不建议使用 2、axios:轻量级,建议使用 封装 XmlH

    2024年02月07日
    浏览(35)
  • 第1章、react基础知识;

    一、react学习前期准备; 1、基本概念; ; ; 二、react jsx语法; 三、react元素渲染; 四、react组件基础之创建组件; 五、react props属性; 六、react state 状态; 七、react组件生命周期函数; 八、react setState 是同步还是异步; 九、react 条件渲染; 十、react列表渲染key; 十一、

    2024年04月11日
    浏览(57)
  • 【前端知识】React 基础巩固(四十二)——React Hooks的介绍

    Hook 是 React 16.8 的新增特性,它可以让我们在不编写class的情况下使用state以及其他的React特性(比如生命周期)。 class组件 VS 函数式组件: class的优势: class组件可以定义自己的state,用来保存组件自己内部的状态;而函数式组件不可以,因为函数每次调用都会产生新的临时

    2024年02月14日
    浏览(44)
  • 【前端知识】React 基础巩固(二十三)——React 性能优化 SCU相关

    React 的渲染流程 JSX - 虚拟 DOM - 真实 DOM React 的更新流程 props/state 改变 - render函数重新执行 - 产生新的DOM树 - 新旧DOM树进行diff - 计算出差异进行更新 - 更新到真实的DOM React 在 props 或 state 发生改变时,会调用 React 的 render 方法,会创建一颗不同的树 React 需要基于这两颗不同的

    2024年02月15日
    浏览(46)
  • React Native 样式布局基础知识

    通过此篇笔记能够学习到如下的几个知识点 在 React Native 中使用样式的一些细节 了解 React Native 的 Flex 布局概念 了解 React Native 的 flex 布局属性 React Native 如何添加多样式属性 React Native 中绝对布局和相对布局 1、主轴和交叉轴 在 Flex 布局中存在主轴和交叉轴的概念,主轴和交

    2024年02月13日
    浏览(23)
  • React Native 文本输入基础知识

    在 React Native 中提供了一个文本输入组件 TextInput 。此组件主要是监听键盘输入事件,并把对应的输入值显示在组件中,此组件还提供了很多功能配置参数,例如自动更正、自动大写、占位符文本和不同的键盘类型(例如数字键盘)。 我们首先来编写一个简单的实例,使用

    2024年02月12日
    浏览(24)
  • React Native 图片组件基础知识

    在 React Native 中使用图片其实跟 HTML 中使用图片一样简单,在 React Native 中我们使用 Image 组件来呈现图片的内容,其中主要的属性有: source 。这个属性主要是设置图片的内容,它可以是网络图像地址、静态资源、临时本地图像以及本地磁盘中的图像。 搭建基础框架 编写卡片

    2024年02月13日
    浏览(36)
  • 【前端知识】React 基础巩固(十三)——列表渲染

    在 React 中没有像 Vue 模块语法中的 v-for 指令,而是需要我们通过 JS 代码的方式组织数据,转成 JSX 在 React 中,展示列表最多的方式就是使用数组的 map 高阶函数 在展示数组前,有时会进行一些处理 过滤一些内容(filter 函数) 截取数组中的一部分内容(slice 函数) 列表中的

    2024年02月10日
    浏览(35)
  • 【前端知识】React 基础巩固(三十九)——React-Router的基本使用

    Router中包含了对路径改变的监听,并且会将相应的路径传递给子组件。 Router包括两个API: BrowserRouter使用history模式 HashRouter使用hash模式(路径后面带有#号) 尝试在项目中使用HashRouter: 安装Router 在 index.js 中引入并使用HashRouter Routes:包裹所有的Route,在其中匹配一个路由(

    2024年02月14日
    浏览(40)
  • 【前端知识】React 基础巩固(二十八)——StrictMode

    StrictMode 是一个用来突出显示应用程序中潜在问题的工具 与 Fragment 一样,StrictMode 不会渲染任何可见的 UI 为后代出发额外的检测和警告 严格模式检查仅在开发模式下运行,不影响生产构建 严格模式检查什么? 识别不安全的生命周期 使用过时的 ref API 检查意外的副作用 组件

    2024年02月16日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包