返回顶部
首页 > 资讯 > 前端开发 > JavaScript >react入门级详细笔记
  • 173
分享到

react入门级详细笔记

2024-04-02 19:04:59 173人浏览 八月长安
摘要

目录一、React的基本认识 1、介绍2、React的特点3、React高效的原因二、React的基本使用1、相关js库2、在页面中导入js库3、编码三、ReactJSX1

一、React的基本认识 

1、介绍

react是用于构建用户界面的javascript库(只关注view)由Facebook开源

2、 React的特点

  • Declarative(声明式编码)
  • Component-Based(组件化编码)
  • Learn Once, Write Anywhere(支持客户端与服务器渲染)
  • 高效
  • 单向数据流

3、React高效的原因

  • 虚拟(virtual)DOM, 不总是直接操作DOM
  • DOM Diff算法, 最小化页面重绘

二、React的基本使用

1、相关js库

  • `react.js`: React的核心库
  • `react-dom.js`: 提供操作DOM的react扩展库
  • `babel.min.js`: 解析JSX语法代码转为纯JS语法代码的库

2、在页面中导入js库


<script  src="../js/react.development.js"></script>
<script  src="../js/react-dom.development.js"></script>
<script src="../js/babel.min.js"></script>

3、编码


<script type="text/babel"> //必须声明babel
  // 1、创建虚拟DOM元素
  const vDom = <h1>Hello React</h1> // 千万不要加引号
  // 2、渲染虚拟DOM到页面真实DOM容器中
  ReactDOM.render(vDom, document.getElementById('test'))
</script>

三、React JSX

1、虚拟DOM

React提供了一些api来创建一种特别的一般js对象


var element = React.createElement('h1', {id:'myTitle'},'hello')

上面创建的就是一个简单的虚拟DOM对象

虚拟DOM对象最终都会被React转换为真实的DOM

​ 我们编码时基本只需要操作react的虚拟DOM相关数据, react会转换为真实DOM变化而更新界面

2、JSX

  • 全称: `JavaScript XML`
  • react定义的一种类似于XML的JS扩展语法:`XML+JS`
  • 作用: 用来创建react虚拟DOM(元素)对象

var ele = <h1>Hello JSX!</h1>

注意1: 它不是字符串, 也不是html/XML标签

注意2: 它最终产生的就是一个JS对象

  • 标签名任意: HTML标签或其它标签
  • 标签属性任意: HTML标签属性或其它
  • 基本语法规则

遇到 <开头的代码, 以标签的语法解析: html同名标签转换为html同名元素, 其它标签需要特别解析

遇到以 { 开头的代码,以JS语法解析: 标签中的js代码必须用{ }包含

  • `babel.js`的作用

浏览器不能直接解析JSX代码, 需要babel转译为纯JS的代码才能运行

只要用了JSX,都要加上type=“text/babel”, 声明需要babel来处理

3、渲染虚拟DOM元素

语法:

ReactDOM.render(virtualDOM, containerDOM)

  • 参数一: 纯js或jsx创建的虚拟dom对象
  • 参数二: 用来包含虚拟DOM元素的真实dom元素对象(一般是一个div)

作用:
将虚拟DOM元素渲染到页面中的真实容器DOM中显示

4、创建虚拟DOM的方式

纯JS方式


React.createElement('h1',{id:'myTitle'}, title

JSX方式


<h1 id='myTitle'>{title}</h1>

代码示例


<div id="app"></div>
const test1 = 'MY TEST 1'
// 1、创建虚拟dom:两种方法
var element = React.createElement('h3',{id:app},test1)
var element2 = <h3 id={test1}>{test1}</h3>
// 2、渲染虚拟dom
ReactDOM.render(element,document.getElementById('app'))
ReactDOM.render(element2,document.getElementById('app'))

5、React 之 Hello World

第一步:引入react.js相关库


<script  src="../js/react.development.js"></script>
<script  src="../js/react-dom.development.js"></script>
<script src="../js/babel.min.js"></script>

第二步:定义根元素


<div id="app"></div>

第三步:在babel环境下写React代码


<script type="text/babel">
// 1、创建虚拟dom元素对象
var vDOM = <h1>Hello W</h1>  //不是字符串
// 2、将虚拟dom渲染为页面真实dom容器中
ReactDOM.render(vDOM,document.getElementById('app'))
</script>

到此这篇关于react入门级详细笔记的文章就介绍到这了,该篇文章讲述了React的基本概念和基本的使用以及一些React常用相关js库,希望可以对你有所帮助

--结束END--

本文标题: react入门级详细笔记

本文链接: https://lsjlt.com/news/128861.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • react入门级详细笔记
    目录一、React的基本认识 1、介绍2、React的特点3、React高效的原因二、React的基本使用1、相关js库2、在页面中导入js库3、编码三、ReactJSX1...
    99+
    2024-04-02
  • Vue详细的入门笔记
    目录一、 前言二 、初始 Vue(一) Vue 概念理解(二) MVVM 架构(三) Vue 的优点(四) 入门案例三 、Vue 基本语法(一) 声明式渲染(二) 条件判断(三) 循...
    99+
    2024-04-02
  • MySQL数据库入门详细笔记 - 浪子
    ps: 中括号[]里的内容都是可以省略的,按需要添加 数据库操作 创建数据库 语法:create database [if not exists] 数据名 charset=gbk; create database if not ...
    99+
    2015-06-03
    MySQL数据库入门详细笔记 - 浪子
  • react hooks入门详细教程
    State Hooks 案例: import { useState } from 'react'; function Example() { const [count, se...
    99+
    2024-04-02
  • Cypher 入门笔记
    Neo4j使用Cypher查询图形数据,Cypher是描述性的图形查询语言,语法简单,功能强大,由于Neo4j在图形数据库家族中处于绝对领先的地位,拥有众多的用户基数,使得Cypher成为图形查询语言的事...
    99+
    2016-11-27
    Cypher 入门笔记
  • linux入门笔记
    学习linux也不是那么难,首先你就必须掌握这些入门知识,这样才能让你从新手变老手,下面就从几个方面来教你学linux。【1】Linux介绍【2】vi编辑器(1)三种模式:(2)vi命令【1】Linux介绍(1)四个重要的人物肯.汤姆森 B...
    99+
    2023-06-05
  • erpc(EmbeddedRPC)入门笔记
    ERPC是一种用于嵌入式系统的RPC(远程过程调用)框架。它的设计目标是提供一种简单、轻量级的通信机制,让嵌入式设备可以与其他设备或...
    99+
    2023-09-28
    erpc
  • ARM入门笔记(3)
    第三章 点亮我的LED ――I/O输出实验 一.背景 当完成上述实验后,我就可以像使用51单片机那样,在C文件的main()函数中通过设置相应的寄存器来达到对相应外设(如I/O的输入、输出等)的控制目的。 二.实验目的 通过控制PIO的相关...
    99+
    2023-01-31
    入门 笔记 ARM
  • Linux入门笔记3
    一、管理权限和归属1.权限概述文档归属所有者(u):拥有此文件/目录的用户-user所属组(g):拥有此文件/目录的组-group其他用户(o):除所有者、所属组以外的用户-other访问权限读取(r):允许查看内容-read写入(w):允...
    99+
    2023-01-31
    入门 笔记 Linux
  • Python 入门学习笔记
    1 安装Anaconda和jupyter notebook   之前没有听说过这两个名词,然后看完介绍,按照我自己的理解,Anaconda是一个集合很多环境和模块的存储地方。 Jupyter notebook 就是一个可以在此环境里打代码...
    99+
    2023-01-30
    学习笔记 入门 Python
  • Ansible 入门学习笔记
    本文 的主要内容来自ansible官网书籍。 本文采用vagrant软件基于VirtualBox的虚拟机进行自动化管理,先要安装VirtualBox和vagrant两个软件。类似Docker有Dockerfile, Jenkins有Je...
    99+
    2023-01-31
    学习笔记 入门 Ansible
  • Docker快速入门笔记
    Docker快速入门 前言   当今软件开发领域的一股热潮正在迅速兴起,它融合了便捷性、灵活性和可移植性,让开发者们欣喜若狂。它就是 Docker!无论你是一个初学者,还是一位经验丰富的开发者,都不能错过这个引领技术浪潮的工具。   想...
    99+
    2023-08-23
    docker 笔记 容器
  • 【学习笔记】Mininet 入门
    【学习笔记】Mininet入门实战 课程介绍 Mininet是由一些虚拟的终端节点、交换机、路由器连接而成的一个网络仿真器,它采用轻量级的虚拟化技术使得系统可以和真实网络相媲美。 Mininet可以很方便地创建一个支持SDN的网络:...
    99+
    2023-12-22
    学习 网络 服务器
  • C++入门笔记之std::vector容器详解
    目录前言1. vector的构造函数原型: 2. vector的赋值函数原型:3. vector的容量和大小函数原型:4. vector的插入和删除函数原型:5. vector的存取...
    99+
    2024-04-02
  • Servlet从入门到精通(超级详细!)
    目录概述入门案例创建Servlet程序注解方式配置Servlet程序配置文件方式配置Servlet程序(提供web.xml)测试Servlet的继承结构Servlet的生命周期ini...
    99+
    2024-04-02
  • Python基础入门笔记(一)
    前言(认识Python) 既然学习 Python,那么至少得了解下这门语言,知道 Python 代码执行过程吧。Python 的历史有兴趣的百度百科下就有,这个不多说了。 1、我们先来了解下什么是解释型语言和编译型语言? 计算机...
    99+
    2023-01-31
    入门 基础 笔记
  • Nodejs学习笔记之入门篇
    分享第一篇,关于 NodeJS —— Javascript 的常用知识以及如何从 Javascript 开发者过渡到 NodeJS 开发者(不会介绍具体的框架)。在读本文前,希望你对 javascript ...
    99+
    2022-06-04
    学习笔记 入门篇 Nodejs
  • python入门学习笔记分享
    一、python的基础语法 1.行连接的方法是最后加上一个‘\' 2.注释:多行注释三引号,#行注释;三引号定义的字符串原样输出(保存原格式) 3.I/O语句:用逗号分隔零个或多个表...
    99+
    2024-04-02
  • [Python入门及进阶笔记]Pytho
    博客迁往:新地址 (点击直达) 新博客使用markdown维护,线下有版本库,自己写的所以会定时更新同步,同时提供更好的导航和阅读体验 csdn对markdown支持不好,所以旧版不会花时间进行同步修订,抱歉 ------------...
    99+
    2023-01-31
    进阶 入门 笔记
  • Node.js入门笔记 之async模块
    目录前言asyncseriesparallelwaterfallmap前言 前面我们介绍了异步模块的CPS解决嵌套回调的方法,但是随着业务的推进,node的更新方法也越来越快,对于异...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作