一、简介

React:由Facebook开发的用于构建用户界面的JavaScript库(开源)。

1.1 为什么要学前端框架?

原生Javascript有很多痛点:

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

    document.getElementById('app');
    document.querySelector('#app');
    document.getElementByTagName('h1');
    
  2. 使用JavaScript直接操作DOM, 浏览器会进行大量的重绘重排

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

1.2 React有哪些特点?

它有以下几个特点:

  • 声明式编程
  • 组件化
    • 可自定义有状态的组件
    • 灵活使用组件简化开发
  • 一次开发,随处编写
    • 既可以使用Node进行服务器渲染,或使用React Native开发原生移动应用。
  • 使用虚拟DOM + 优秀的Diffing算法,尽量减少与真实DOM的交互。

1.2.1 为什么React高效

  1. 使用虚拟DOM,不总是直接操作页面真实的DOM。
  2. 使用DOM Diffing算法对新、旧两个虚拟DOM进行比较,最小化页面重绘。

二、基本使用方法

2.1 在HTML中引入React

不涉及复杂的工具或安装需求,只需引入几个.js文件就可以将React组件添加到现有的HTML页面中。

2.1.1 在HTML中添加一个容器

<div id="container"></div>

2.1.2 添加Script标签

①引入库文件

<!-- 注意: 部署时,将 "development.js" 替换为 "production.min.js",节约传输成本--><!-- Ps:两者之间的顺序不能搞反了-->
<!-- 引入react核心库 -->
<script src="https://unpkg.com/react@17/umd/react.development.js" crossorigin></script>
<!-- 引入react-dom,用于支持react操作DOM -->
<script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js" crossorigin></script>
<!-- 引入babel,用于将jsx转为js -->
<script type="text/javascript" src="../js/babel.min.js"></script>
  • react.js:React核心库
  • react-dom.js:提供操作DOM的react扩展库
  • babel.min.js,用于将jsx转为js

②编写jsx代码

<!-- 法1: 加载需要的React 组件-->
<script src="xxx.js"></script><!-- 法2: 加载需要的React 组件-->
<script type="text/babel" > /* 此处一定要写babel *///1.创建虚拟DOMconst VDOM = <h1>Hello,React</h1> /* 此处一定不要写引号,因为不是字符串 *///2.渲染虚拟DOM到页面ReactDOM.render(VDOM,document.getElementById('container'))
</script>

2.2 使用Create-React-App

Create-React-App 让你仅通过一行命令,即可构建现代化的 Web 应用。

You’ll need to have Node >= 14 on your local development machine (but it’s not required on the server). You can use nvm (macOS/Linux) or nvm-windows to switch Node versions between different projects.

创建之前检查一下自己的Node版本(>=14)。

  1. # 安装
    npm init react-app my-app
    

  1. # 切换到对应目录,运行内置命令
    cd my-app/
    npm start
    

【React框架基础知识】React框架的简介与基本使用方法相关推荐

  1. echarts结合react开发基础知识学习

    echarts基础知识学习 1.echarts简介 ECharts,一个使用 JavaScript 实现的开源可视化库,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,S ...

  2. 计算机网络基础知识论文摘要,计算机网络基础知识论文大纲格式 计算机网络基础知识论文框架如何写...

    [100个]计算机网络基础知识论文大纲格式供您参考,希望能解决毕业生们的计算机网络基础知识论文框架如何写相关问题,写好提纲那就开始写计算机网络基础知识论文吧! 五.高职<计算机网络>课程活 ...

  3. 【STM32】基础知识 第一课 单片机简介

    [STM32]基础知识 第一课 单片机简介 单片机是什么 单片机和电脑区别 单片机的特点 单片机有什么用 单片机发展历程 单片机发展趋势 CISC vs RISC CISC 和 RISC 举例 冯诺依 ...

  4. Spring框架基础知识

    本人博客文章网址:https://www.peretang.com/basic-knowledge-of-spring-framework/ Spring框架简介 Spring , 一个开源的框架 , ...

  5. 适用于所有人的Nextjs-具有一些React的基础知识

    具备一些基本的React和JavaScript知识,您将一路走来 (With some basic React and JavaScript knowledge, you'll be on your ...

  6. Django框架基础知识汇总(有项目版)

    Web框架本质## web系统概念 1. Http,无状态,短连接 2. 浏览器(socket客户端).网站(socket服务端) web框架本质 import socket def handle_r ...

  7. Hadoop框架--基础知识

    如果有天堂,天堂应该是图书馆的模样. –博尔赫斯 (不那么冷就更好了) 主要内容:Hadoop.hive.HBASE.zookeeper.MySQL.sqoop.kafka(有时间补).日志 一.什么 ...

  8. unittest框架-基础知识

    一.什么是UnitTest框架 UnitTest是python自带的一个单元测试框架,用它来做单元测试. 对于测试来说,unittest框架的作用是自动化脚本(用例代码)执行框架,使用unittest ...

  9. 【深度学习基础知识 - 21】加快模型训练速度的方法

    在深度学习任务中,虽然可以通过堆叠参数.设计更复杂的结构来提高模型的表征能力,但这也会导致模型的计算量增加,训练时间延长,大大降低模型的产出效率.这篇文章根据博主的经验简单介绍一些加快模型训练速度的方 ...

  10. js基础知识温习:Javascript中如何模拟私有方法

    本文涉及的主题虽然很基础,在很多人眼里属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题.这里会涉及到对象属性的封装.原型.构造函数.闭包以及立即执行表达式等知识. 公有方法 公有方法 ...

最新文章

  1. 涨姿势了!为什么Windows上面的软件都想把自己安装在C盘?
  2. saxon java_如何将Saxon设置为Java中的Xslt处理器?
  3. C++中比较大小的表达式中,小于号和大于号都是不能连着打的,要用连接起来
  4. linux复盘:构架搭建lamp(安装)
  5. MongoDB学习笔记~MongoDB实体中的值对象
  6. 基于暗通道优先算法的去雾应用Matlab
  7. BIM+GIS应用实战(听课笔记)
  8. servlet会话技术
  9. 请谈下Android消息机制,复习指南
  10. mysql主库清理数据,从库保留
  11. 《如何搭建小微企业风控模型》第十节 单变量分析(下)节选
  12. redis源码剖析(2):基础数据结构ADLIST
  13. linux img工具,线刷包img提取工具(simg2img win)
  14. 内网远程工具vnc 内网远程工具vnc选择与安装
  15. Teamviewer QuickSupport - 在电脑上远程连接控制手机/平板的软件神器 (Android/iOS)
  16. java 控制随机概率_【功能实现】实现设置概率的随机数
  17. 斐讯dns服务器未响应,p.to手机登录界面
  18. 互联网公司分布式集群架构图入门解析(简单通俗易懂,超详细)
  19. Android带标题的列表,Listview Section 多个标题以及内容
  20. Geotools与OGC(一)

热门文章

  1. Python 基础 — 基础语法
  2. Linux下静态库与动态库的引用关系深入分析
  3. 使用c语言创建4个进程,c语言系统函数——进程的创建
  4. GitLab搭建与使用简介
  5. 2023餐饮业展,中国餐饮供应链展,江西餐饮食材展2月举办
  6. 使用ffmpeg+nginx实现直播推流与拉流播放(c++实现)
  7. colab修改python版本
  8. JVM—7—垃圾回收概述及相关算法
  9. 双电梯电梯调度算法的简单分析
  10. 高德地图api 2.0截图canvas 地图截不上