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添加路径别名alias、接受props默认值、并二次封装antd中Modal组件与使用 -> 正文阅读

[JavaScript知识库]React添加路径别名alias、接受props默认值、并二次封装antd中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>
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-14 21:32:45  更:2021-11-14 21:32:47 
 
开发: 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/24 4:05:36-

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