iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >react中怎么应用SOLID原则
  • 209
分享到

react中怎么应用SOLID原则

2023-07-02 18:07:36 209人浏览 八月长安
摘要

这篇文章主要介绍“React中怎么应用SOLID原则”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react中怎么应用SOLID原则”文章能帮助大家解决问题。什么是开闭原则?Robert c. Ma

这篇文章主要介绍“React中怎么应用SOLID原则”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react中怎么应用SOLID原则”文章能帮助大家解决问题。

什么是开闭原则?

Robert c. Martin 认为这个原则是面向对象设计最重要的原则。但他不是第一个定义这个概念的人。Bertrand Meyer 于 1988 年在他的《面向对象软件构造》一书中写到了这一点。他解释了开放/封闭原则:

软件实体(类、模块、功能等)应该对扩展开放,但对修改关闭。

这个原则告诉您以这样一种方式来编写代码,即您能够在不更改现有代码的情况下添加其他功能。

让我们看看我们在哪里可以应用这个原则。

让我们从一个例子开始

假设我们有一个 User 组件,其中我们传递用户的详细信息,这个类的主要目的是显示该特定用户的详细信息。

这是一个很简单的开始。但是我们的生活并不是那么简单。几天后,我们的经理告诉我们系统中有三种类型的用户: SuperAdminAdmin 等等。

它们每个都有不同的信息和功能。

一个糟糕的解决方案

第一个也是显而易见的解决方案:在组件中包含一个条件,并根据不同的用户类型呈现不同的信息。

import React from 'react';export const User = ({user}) => {    return <>        <div> Name: {user.name}</div>        <div> Email: {user.email}</div>        {            user.type === 'SUPER_ADMIN' &&            <div> Details about super admin</div>        }        {            user.type === 'ADMIN' &&            <div> Details about admin</div>        }    </>}

你知道这里出了什么问题吗?

首先,我们的代码现在是凌乱的。

其次,如果我们需要其他类型的用户怎么办?

然后,我们需要进入 User.js,为特定类型的用户添加另一个条件。

这明显违反了开闭原则,因为我们不允许更改 User 组件内部的代码。

解决方案是什么?

在这个场景中我们可以应用两种主要的技术:

  • 高阶组件(HOC)

  • 组件组合(Component composition)

在可能的情况下,最好采用第二种方法,但是在某些情况下,有必要使用 HOC。

现在,我们将使用 Facebook 推荐的一种技术,称为组件组合

让我们创建单独的用户组件

现在,我们需要以这样一种方式设计代码,即不需要在 User.js 组件中添加条件。让我们为 SuperAdmin 创建一个单独的组件:

import React from 'react';import {User} from "./User"; export const SuperAdmin = ({user}) => {     return <>        <User user={user} />        <div> This is super admin user details</div>    </>}

类似地,另一个是针对 Admin 用户的:

import React from 'react';import {User} from "./User";export const Admin = ({user}) => {    return <>        <User user={user} />        <div> This is admin user details</div>    </>}

现在我们的 App.js 文件变成了:

import React from 'react';import Admin from './Admin'import SuperAdmin from './SuperAdmin'export default function App = () =>{  const user = {}  const userByTypes = {    'admin' : <Admin /> ,    'superadmin' : <SuperAdmin />  }  return <div>    {userByTypes[`${user.type}`]}  <div/>}

现在我们可以根据需要创建尽可能多的用户类型。我们针对特定用户的逻辑是封装的,因此我们不需要为了任何额外的修改而重新检查代码。

有些人可能会说,我们正在不必要地增加文件数量。当然,您可以暂时保持原样,但是随着应用程序的复杂性增加,您肯定会感到痛苦。

注意

SOLID 是一套原则。它们并不是强制性的,您必须应用于每个场景。作为一个经验丰富的开发人员,您应该在代码长度和可读性之间找到一个很好的平衡。

要过分执着于这些原则。事实上,有一句名言可以解释这些情况:

Too Much SOLID

所以知道这些原则是好的,但是你必须保持平衡。对于一个或两个额外的字段,您可能不需要这些组合,但是将它们分开肯定会有长远的帮助。

关于“react中怎么应用SOLID原则”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: react中怎么应用SOLID原则

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • react中怎么应用SOLID原则
    这篇文章主要介绍“react中怎么应用SOLID原则”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react中怎么应用SOLID原则”文章能帮助大家解决问题。什么是开闭原则?Robert c. Ma...
    99+
    2023-07-02
  • 在React中怎么应用SOLID原则
    本篇内容介绍了“在React中怎么应用SOLID原则”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、单一职责原则(SRP)单一职责原则的定...
    99+
    2023-07-02
  • 在React中应用SOLID原则的方法
    目录1、单一职责原则(SRP)2、开放封闭原则(OCP)3、里氏替换原则(LSP)4、接口隔离原则(ISP)5、依赖倒置原则(DIP)6、小结在面向对象编程(OOP)中,SOLID ...
    99+
    2024-04-02
  • 如何应用 SOLID 原则在 React 中整理代码之开闭原则
    目录本系列其他文章什么是开闭原则?让我们从一个例子开始一个糟糕的解决方案解决方案是什么?让我们创建单独的用户组件注意总结 SOLID 是一套原则。它们主要是关心代码质量和可维护性的软...
    99+
    2024-04-02
  • 教你应用 SOLID 原则整理 React 代码之单一原则
    目录什么是单一责任原则?让我们从一个糟糕的例子开始1. 移动数据处理逻辑2. 可重用的数据获取钩子3. 分解 UI 组件让我们回顾一下我们刚刚做了什么总结SOLID 原则的主要是作为...
    99+
    2024-04-02
  • 如何应用SOLID原则
    本文小编为大家详细介绍“如何应用SOLID原则”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何应用SOLID原则”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。什么是单一责任原则?单一责任原则告诉我们的是,每个...
    99+
    2023-07-02
  • Python 中的 SOLID 原则
    💂 个人网站:【海拥】【摸鱼游戏】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 想寻找共同学...
    99+
    2023-09-11
    python 开发语言
  • 什么是SOLID原则
    这篇文章主要介绍“什么是SOLID原则”,在日常操作中,相信很多人在什么是SOLID原则问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是SOLID原则”的疑惑有所帮助!接...
    99+
    2024-04-02
  • PHP中SOLID原则有哪些
    小编给大家分享一下PHP中SOLID原则有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!SOLID 是Michael Feathers推荐的便于记忆的首字母简...
    99+
    2023-06-17
  • Python中的SOLID原则实例详解
    目录前言单一职责原则开闭原则里氏替换原则接口隔离原则依赖倒置原则如何发现它?结论前言 SOLID 是一组面向对象的设计原则,旨在使代码更易于维护和灵活。它们是由 Robert &ld...
    99+
    2023-02-15
    python solid原则 面向对象的solid
  • Android设计模式SOLID六大原则是什么
    本篇内容主要讲解“Android设计模式SOLID六大原则是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android设计模式SOLID六大原则是什么”吧!单一职责原则定义定义:确保单例类...
    99+
    2023-06-25
  • “PHP 面向对象编程设计模式:理解 SOLID 原则及其应用”
    SOLID 原则是面向对象编程设计模式中的一组指导原则,旨在提高软件设计的质量和可维护性。由罗伯特·马丁(Robert C. Martin)提出,SOLID 原则包括: 单一职责原则(Single Responsibility Pri...
    99+
    2024-02-25
    SOLID 原则 面向对象编程 设计模式 单一职责原则 开放-封闭原则 里氏替换原则 接口隔离原则 依赖倒置原则
  • Context怎么在React中应用
    本篇文章给大家分享的是有关Context怎么在React中应用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Context定义和目的Context 提供了一种在组件之间共享数据...
    99+
    2023-06-15
  • React怎么应用
    这篇文章主要介绍“React怎么应用”,在日常操作中,相信很多人在React怎么应用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”React怎么应用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!React...
    99+
    2023-06-27
  • React ref的原理和应用
    本篇内容介绍了“React ref的原理和应用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!提到 ref或...
    99+
    2024-04-02
  • Redux原理及应用三大原则是什么
    本篇内容介绍了“Redux原理及应用三大原则是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Redux...
    99+
    2024-04-02
  • JavaScript中的正则表达式怎么应用
    本篇内容主要讲解“JavaScript中的正则表达式怎么应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript中的正则表达式怎么应用”吧!  正则表达式(regular expr...
    99+
    2023-06-03
  • Python编程应用设计原则详解
    目录1、单一职责原则SRP2、开闭原则OCP3、里氏替换原则(LSP)4、接口隔离原则(ISP)5、依赖反转原则(DIP)最后的话写出能用的代码很简单,写出好用的代码很难。 好用的代...
    99+
    2024-04-02
  • 怎么用React开发SAP Fiori应用
    本篇内容主要讲解“怎么用React开发SAP Fiori应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用React开发SAP Fiori应用”吧!SAP官方Github上,对UI5 We...
    99+
    2023-06-04
  • React应用怎么使用Async和Await
    这篇文章主要介绍“React应用怎么使用Async和Await”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“React应用怎么使用Async和Await”文章能帮助大家解决问题。Async/Awai...
    99+
    2023-06-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作