React添加路径别名alias、接受props默认值、并二次封装antd中Modal组件与使用

简介: 本文介绍了在React项目中如何添加路径别名alias以简化模块引入路径,设置组件props的默认值,以及如何二次封装Ant Design的Modal组件。文章还提供了具体的代码示例,包括配置Webpack的alias、设置defaultProps以及封装Modal组件的步骤和方法。

为了实现这个组件全局可以使用并且路径唯一,我们使用路径别名。
配置路径别名:
如果项目中没有config/webpack.config.js文件,我们可以package.json中scripts中这个命令:

"eject": "react-scripts eject"

npm run eject

将webpack文件暴露出来。
打开config/webpack.config.js文件:
在这里插入图片描述

   alias: {
   
        // Support React Native Web
        // https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/
        'react-native': 'react-native-web',
        // Allows for better profiling with ReactDevTools
        ...(isEnvProductionProfile && {
   
          'react-dom$': 'react-dom/profiling',
          'scheduler/tracing': 'scheduler/tracing-profiling',
        }),
        ...(modules.webpackAliases || {
   }),
        // 文件别名
        '@com':path.resolve(__dirname,'../src/component'),
        '@':path.resolve(__dirname,'../src/'),
      },

这两行是我手动加的:

 '@com':path.resolve(__dirname,'../src/component'),
 '@':path.resolve(__dirname,'../src/'),

上面的配置搞完之后记得重启项目哦

使用 这个可以设置组件接受的props接受父级传入的属性默认值

static defaultProps = {
   
        showDnsList: [],
        isModalVisible: false,
        title: "查看DNS数据",
        Key: 'k',
        Value: 'v',
        changeIsModalVisibleState:()=>{
   }
    }

下面是我二次封装的modal组件

/*
 * @Descripttion: 
 * @version: 
 * @Author: ZhangJunQing
 * @Date: 2021-11-12 17:35:44
 * @LastEditors: ZhangJunQing
 * @LastEditTime: 2021-11-12 17:59:03
 */
import React from 'react'
import {
    Modal, Row, Col } from 'antd';
import RSButton from '@com/RSButton'
export default class LookDNSdataCom extends React.Component {
   
    static defaultProps = {
   
        showDnsList: [],
        isModalVisible: false,
        title: "查看DNS数据",
        Key: 'k',
        Value: 'v',
        changeIsModalVisibleState:()=>{
   }
    }

    handleCancel() {
   
        this.props.changeIsModalVisibleState()
    }
    render() {
   
        return (
            <Modal title={
   this.props.title}
                visible={
   this.props.isModalVisible}
                style={
   {
    top: "20%" }}
                closable={
   false}
                footer={
   [
                    <RSButton rsType="noIcon" key={
   1} title="关闭" onClick={
   () => this.handleCancel()}></RSButton>
                ]}
            >
                {
   
                    this.props.showDnsList.map(i => {
   
                        return (
                            <Row key={
   Math.random() * 10} style={
   {
    lineHeight: '22px', fontSize: "16px", marginBottom: "10px" }}>
                                <Col key={
   Math.random() * 10} span={
   12} style={
   {
    textAlign: "right" }}>{
   i[this.props.Key]}</Col>
                                <Col key={
   Math.random() * 10} span={
   12}>{
   i[this.props.Value] ? i[this.props.Value] : "缺省"}</Col>
                            </Row>
                        )
                    })
                }

            </Modal>
        )
    }
}

使用:
页面引入

import LookDNSdataCom from '@com/LookDNSdataCom';

render:

   <LookDNSdataCom
      showDnsList={
   showDnsList}  //展示的数据 是个数组
      isModalVisible={
   isModalVisible}  //控制显示隐藏
      title={
   targetTypeList[Number(targetType)].tab} //左上角展示的title
      Key='k' //循环时候的key值
      Value='v' //循环时候的value值
      changeIsModalVisibleState={
   this.handleCancel} //点击关闭的时候触发的方法
   ></LookDNSdataCom>
目录
相关文章
|
6月前
|
数据采集 前端开发 API
React - 实现一个基于 Antd 的数值范围组件
这篇文章介绍了如何实现一个基于Ant Design的数值范围组件,以满足数据采集流程中表单数据的录入需求。文章详细说明了组件的设计思路、代码结构、使用方式以及参数说明,并提供了效果预览和注意事项。组件支持只能输入数字,具有自定义表单控件封装的特点,同时支持所有InputNumber属性,以适应不同业务场景的需求。
199 0
React - 实现一个基于 Antd 的数值范围组件
|
4月前
|
缓存 前端开发 JavaScript
React Hooks深度解析与最佳实践:提升函数组件能力的终极指南
🌟蒋星熠Jaxonic,前端探索者。专注React Hooks深度实践,从原理到实战,分享状态管理、性能优化与自定义Hook精髓。助力开发者掌握函数组件的无限可能,共赴技术星辰大海!
React Hooks深度解析与最佳实践:提升函数组件能力的终极指南
|
5月前
|
编解码 前端开发 JavaScript
js react antd 实现页面低分变率和高分变率下字体大小自适用,主要是配置antd
在React中结合Ant Design与媒体查询,通过less变量和响应式断点动态调整`@font-size-base`,实现多分辨率下字体自适应,提升跨设备体验。
252 2
|
9月前
|
缓存 前端开发 数据安全/隐私保护
如何使用组合组件和高阶组件实现复杂的 React 应用程序?
如何使用组合组件和高阶组件实现复杂的 React 应用程序?
328 68
|
9月前
|
缓存 前端开发 Java
在 React 中,组合组件和高阶组件在性能方面有何区别?
在 React 中,组合组件和高阶组件在性能方面有何区别?
296 67
|
6月前
|
前端开发 安全 数据安全/隐私保护
React - 实现一个基于 Antd 的密码强度校验组件
这篇文章介绍了一个基于 Nest 和 Umi 技术栈的个人项目开发中用到的密码强度校验组件的开发过程。作者首先在网上找不到满意的资料,于是决定自己开发该组件。文章依次介绍了效果预览、组件思想和组件开发的过程,并提供了相应的代码示例。最后,作者展示了实际效果,并提供了仓库地址供参考。
176 0
React - 实现一个基于 Antd 的密码强度校验组件
|
9月前
|
前端开发 JavaScript 安全
除了高阶组件和render props,还有哪些在 React 中实现代码复用的方法?
除了高阶组件和render props,还有哪些在 React 中实现代码复用的方法?
367 62
|
12月前
|
移动开发 前端开发 API
React 音频播放器组件 Audio Player
本文介绍如何使用React创建音频播放器组件,涵盖核心功能如播放/暂停、进度条、音量控制和时间显示。通过HTML5 `&lt;audio&gt;` 元素和React的声明式状态管理,实现交互式音频播放。常见问题包括控件不响应、进度条无法更新和音量控制失灵,并提供解决方案。此外,还讨论了浏览器兼容性、异步错误处理和性能优化等易错点及避免方法。
863 123
|
11月前
|
前端开发 JavaScript
除了使用Route组件,React Router还有其他方式处理404错误页面吗
除了使用Route组件,React Router还有其他方式处理404错误页面吗
311 58
|
11月前
|
前端开发
React 中高阶组件的原理是什么?
React 中高阶组件的原理是什么?
259 57