IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> React基础学习一 -> 正文阅读

[JavaScript知识库]React基础学习一

一、什么是React

用于构建用户界面javascript UI库,很多人认为它是MVC中的V(视图),起源于Facebook的内部项目

二、React的特点

1、声明式设计 ?React采用声明范式,可以轻松描述应用(自动dom操作)。
2、高效 ?React通过对DOM的模拟(虚拟dom),最大限度地减少与DOM的交互。
3、灵活 ?React可以与已知的库或框架很好地配合。
4、JSX ? JSX 是 JavaScript 语法的扩展。
5、组件 ? 通过 React 构建组件,使得代码更加容易得到复用,能够很好的应用在大项目的开发中。
6、单向响应的数据流 ? React 实现了单向响应的数据流,从而减少了重复代码,这也是它为什么比传统数据绑定更简单。

三、React高效的原因

React高效的原因:虚拟的dom,不总是直接操作DOM;高效的DOM Diff算法,最小化的页面绘。
什么是Diff算法?答:比较变换前的dom和变换后的dom差别,只渲染局部的,肯定比渲染整个页面来得性能高

四、React的核心是组件,精髓是函数式编程

它遵循组件设计模式、声明式编程范式和函数式编程
1、组件设计模式:
React一切都是组件。 我们通常将应用程序的整个逻辑分解为小的单个部分。 我们将每个单独的部分称为组件。 通常,组件是一个javascript函数,它接受输入,处理它并返回在UI中呈现的React元素。
2、声明式编程范式
一种编程范式,它关注的是你要做什么,而不是如何做。它表达逻辑而不显式地定义步骤。这意味着我们需要根据逻辑的计算来声明要显示的组件。它没有描述控制流步骤。声明式编程的例子有HTML、SQL等
3、函数式编程
函数式编程是声明式编程的一部分。javascript中的函数是第一类公民,这意味着函数是数据,你可以像保存变量一样在应用程序中保存、检索和传递这些函数。
函数式编程有些核心的概念,如下:
不可变性(Immutability)、纯函数(Pure Functions)、数据转换(Data Transformations)、高阶函数 (Higher-Order Functions)、递归、组合
4、模块与组件的区别:
从设计上来看,组件强调复用,模块强调职责(内聚、分离),或者说组件是达到可复用要求的模块
模块: 向外提供特定功能的js程序,一般就是一个js文件(为什么?js代码更多更复杂),简化js的编码,阅读,提高运行效率
组件: 用来实现特定功能效果的代码集合(html/css/js)(为什么?一个界面的功能更加复杂),复用,简化项目编码,提高运行效率
模块化: 当应用的js都以模块来编写的,这个应用就是模块化应用
组件化 : 当应用是以多组件的方式实现功能,这上应用就是一个组件化的应用

五、JSX语法的由来

1、什么是JSX:
JSX 将 HTML 语法直接加入到 JavaScript 代码中,再通过翻译器转换到纯 JavaScript 后由浏览器执行。在实际开发中,JSX 在产品打包阶段都已经编译成纯 JavaScript,不会带来任何副作用,反而会让代码更加直观并易于维护。
官方定义是类 XML 语法的 ECMAScript 扩展。它完美地利用了 JavaScript 自带的语法和特性,并使用大家熟悉的 HTML 语法来创建虚拟元素。

六、单向响应的数据流

父组件可以向子组件传值,但是子组件不能直接改变这个值。
在子组件去调用父组件传递的方法。是子组件调用父组件的方法,最终是父组件的方法来对自己的内容进行改变的,这样维护起来就容易了,所有相关list的操作都在父组件这一个组件。

七、扩展

相关的js库
react-js:Reack的核心库
react-dom.js:提供操作DOM(虚拟的)的扩展库
babel.min.js:解析jsx语法代码转为纯js语法代码的库
什么是babel
一个工具库:可以将ES6转化为ES5等功能

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-03 11:05:05  更:2021-08-03 11:06:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 4:22:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码