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是一个JS库,开发时,我们将UI界面分成一个个独立的小块,每块就是一个组件,通过这些组件之间的组合、嵌套构建了整个页面。另外,

(1)React编程遵循着三个概念,分别是:组件设计模式、声明式编程范式和函数式编程,使得前端应用程序的开发更为高效。

(2)使用虚拟dom去操作真实的dom。

(3)单向数据流:从高阶组件流向低阶组件。

一、组件设计模式

1. 前端工程化、模块化、组件化

????????工程化就是将一个应用程序的开发过程当作是一项工程来做,除了可用性,我们还需要关注程序的性能、稳定性、可维护性等方面,我觉得,所有能降低成本、提高质量并且能够提高效率的事情都是工程化。

? ? ? ? 前端工程化:随着web应用业务场景的复杂化,对于一个大型的前端工程,如何提高开发效率、如何进行多人协作、如何保证项目的可维护性、以及提高项目开发质量这些问题是很有必要通过前端工程化来解决的。另外,前端工程化又可以细分为模块化、组件化、规范化和自动化4个方面。

(1)模块化:侧重于业务层面上功能的拆分,例如一些app上的购物功能、直播功能等,一个模块就是一个实现特定功能的文件,可以调用组件来构建模块,像ES6的Module、AMD、CMD均为js模块模块化的方案。(css模块化方案有less、sass等)

(2)组件化:侧重于UI设计层面的拆分,例如提交按钮、确认按钮等,这些组件之间可以自由组合、独立可复用。(每个UI组件都应该包含html、css、js文件)

(3)规范化:包括编码规范(eslint、文件命名规范等)、开发流程规范(code review等)等。

(4)自动化:包括自动化测试、构建、部署等,将简单重复的工作交给机器来做。(开发者提交本地代码后,merge master后就会跑自动化测试,包含单元测试、集成测试、e2e测试3种;测试通过后,代码会合入master,然后开始build,将源码转换为可运行的实际代码,比如安装依赖、配置各种资源等;之后当前代码就是一个可以直接部署的版本release。)

2. 如何封装一个组件

????????React、Vue等框架都在引领着前端的组件化开发方向,React官方文档说:组件,类似于js函数,接受任意的入参,并返回用于描述页面展示内容的React元素。封装就是提供props去控制组件的行为,而不是直接暴露组件的内部结构。

(1)为什么要封装组件?

????????有利于代码的复用,减少代码冗余、并且也降低代码的维护难度。

? ? ? ? 有利于单元测试。

(2)封装组件需要考虑的点

  • ?单一职责原则:一个组件只负责一件事情,不要耦合一些没必要的逻辑。
  • 可复用性:需要考虑适用的不同场景,考虑组件功能的通用性,以及组件参数的合理性、兼容性。(公用组件更多要考虑通用性,项目组件则是需要处理当前业务中的特殊场景,业务部门一般都是项目组件)(UI组件只负责渲染,侧重复用性;业务组件侧重数据和业务的逻辑处理)
  • 可扩展性
  • 可维护性:像业务组件如果过度追求可复用性,兼容各种页面,这就会导致它本身变得难以维护。
  • 组件的粒度:拆分并不是越细越好,根据具体的业务场景分析,尽量复合高内聚、低耦合的思路,使自己的组件易于维护。

二、函数式编程

三、单向数据流

四、生命周期

五、与Vue的比较

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-03 17:00:20  更:2021-10-03 17:01:06 
 
开发: 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 22:39:53-

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