前端知识库Reactjs基础系列二(进阶)

简介: 上一节复习reactjs的基础知识,本节主要了解reactjs中一些高阶用法。

前言


上一节复习reactjs的基础知识,本节主要了解reactjs中一些高阶用法。

新概念hook


简介

什么是hook:可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性。并且完全向后兼容,对老项目没有多大影响。

为什么要使用hook

  • 在reactjs提倡使用函数式编程,而hook可以在函数中使用state等类中才能使用的属性
  • 解决了在组件之间复用状态逻辑很难
  • 解决了class编写的组件难以理解,以及编译较慢的问题

hook使用规则

  • 只能在函数最外层调用 Hook。不要在循环、条件判断或者子函数中调用。
  • 只能在 React 的函数组件中调用 Hook。

高阶组件(HOC)


  • 概念:是基于reactjs的组合特性而形成的一种设计模式。
  • 与普通组件的区别:组件是将 props 转换为 UI,而高阶组件是将组件转换为另一个组件。
  • 与类组件的区别:类组件有生命周期,this,state。高阶组件没有。另外类组件需要实例化更占用内存。
  • 优点:HOC 不会修改传入的组件,也不会使用继承来复制其行为。相反,HOC 通过将组件包装在容器组件中来组成新组件。HOC 是纯函数,没有副作用。

注意事项(先记着不要这样写,原因我们下节在讲)

  • 不要在 render 方法中使用 HOC:这个我看了几遍官方文档才明白原因。
  • 务必复制静态方法:请使用使用 hoist-non-react-statics
  • Refs 不会被传递

虚拟dom概念简介


  • 概念:将Dom元素以相应的Object对象数据格式化来进行页面渲染,此种Object对象称为虚拟DOM。
  • 特点:实现页面局部刷新大大节省了浏览器的内存空间。
  • 技术难点:Dom的diff算法
  • reactjs实现:生成vNode---->渲染成真实节点 --------->挂载到页面--------->diff比较
  • diff算法:当页面更新时会产生新对象,比较新旧对象区别的算法我们称为diff算法,其也是实现视图局部更新的基础

单元测试简介(后面会有单独的章节来谈这块)

  • 常见测试工具:Jest,Enzyme
  • Jest简介:Jest是 Facebook 发布的一个开源的、基于 Jasmine 框架的 JavaScript单元测试工具。
  • Enzyme简介:Airbnb开源的React测试类库

相关生态简介

  • redux简介:Redux是一个数据状态管理插件。
  • mobx简介:与redux一样是兼容reactjs实现全局状态的存储和管理。
  • react-router简介:reactjs项目中前端路由的控制。
  • reactjs相关ui库:Material-UI、Ant-design ...

其他


设置按需加载UI库

  • react-app-rewire和customize-cra在配置文件config-overrides.js
const { override, fixBabelImports } = require('customize-cra');
module.exports = override(
    fixBabelImports('import', {
    libraryName: 'antd',
    libraryDirectory: 'es',
    style: 'css',
   }),
);

create-react-app环境变量配置

  • create-react-app提供了接口eject,可以自定义配置文件
//项目根目录运行
  npm run eject
  • 第一种方法是不可逆的不建议使用,可以使用npm包react-app-rewire增加.env.文件
//package.json文件中
react-scripts start --mode ***//指定环境

总结


本节主要介绍了深入了解reactjs需要掌握的知识点,下面的章节主要都是围绕这块进行展开。


相关文章
|
1月前
|
前端开发 JavaScript UED
使用React Hooks优化前端应用性能
本文将深入探讨如何使用React Hooks来优化前端应用的性能,重点介绍Hooks在状态管理、副作用处理和组件逻辑复用方面的应用。通过本文的指导,读者将了解到如何利用React Hooks提升前端应用的响应速度和用户体验。
|
2月前
|
开发框架 前端开发 JavaScript
探索前端开发中的跨平台框架React Native
本文将介绍前端开发中一种备受关注的跨平台框架React Native,通过比较原生应用与React Native的优缺点,探讨其在实际项目中的应用以及未来发展趋势。
|
3月前
|
前端开发 开发者
探索前端框架的新趋势:React Hooks的应用与实践
本文将深入探讨前端开发中的新趋势,重点介绍React Hooks的应用与实践。通过学习和使用React Hooks,开发者可以更高效地构建可维护、可扩展的前端应用程序。本文将详细介绍React Hooks的原理、优势以及如何在实际项目中运用Hooks来提高开发效率并改善代码结构。无论你是刚入门前端开发还是经验丰富的工程师,本文都将对你有所启发。
|
3月前
|
前端开发 JavaScript C++
探索前端框架选择:React vs Vue
在现代Web开发中,前端框架扮演着关键的角色。本文将探讨两个最受欢迎的前端框架之间的比较:React和Vue。我们将分析它们的特点、优缺点以及适用场景,帮助开发者做出明智的选择。
|
3月前
|
前端开发 JavaScript 算法
深入理解前端框架:解析 React 的虚拟 DOM
虚拟 DOM 是 React 前端框架的核心概念之一。本文将深入探讨虚拟 DOM 的原理和应用,帮助读者更好地理解 React 框架的工作机制,并学习如何高效地使用虚拟 DOM 进行前端开发。
34 1
|
3月前
|
缓存 前端开发 JavaScript
【面试题】金九银十,你准备好面试了吗? (30w字前端面试题总结)( React)
【面试题】金九银十,你准备好面试了吗? (30w字前端面试题总结)( React)
|
1月前
|
前端开发 JavaScript 安全
使用React、TypeScript和Ant Design构建现代化前端应用
使用React、TypeScript和Ant Design构建现代化前端应用
24 0
|
1月前
|
开发框架 前端开发 JavaScript
深入探究React:前端开发的利器
深入探究React:前端开发的利器
22 1
|
1月前
|
XML 前端开发 JavaScript
【前端】深入了解React JSX语法及实例应用
【前端】深入了解React JSX语法及实例应用
16 0
|
1月前
|
前端开发
利用React Hooks优化前端状态管理
本文将深入介绍如何利用React Hooks优化前端状态管理,包括Hooks的概念、使用方法以及与传统状态管理方式的对比分析,帮助前端开发人员更好地理解和应用这一现代化的状态管理方案。