react18+antd5.x(1):Notification组件的二次封装

这篇具有很好参考价值的文章主要介绍了react18+antd5.x(1):Notification组件的二次封装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

antdesign已经给我们提供了很好的组件使用体验,但是我们还需要根据自己的项目业务进行更好的封装,减少我们的代码量,提升开发体验

效果展示

react18+antd5.x(1):Notification组件的二次封装,react18+antdesign5.x实战开发,react.js,前端
开起来和官网的使用没什么区别,但是我们在使用的时候,进行了二次封装,更利于我们进行开发

MyNotification.jsx,是我们的业务页面

import React, { useState }  from 'react';
import {notification,Button,Space  } from 'antd';
import MyNotificationIns from './NotificationIns';

function MyNotification(){
  const [notify,setType] = useState({type:'',description:''})
  const showNotificationSuccess = () => {
    setType({
      type:'success',
      message:'温馨提示:',
      description:'this is a success tips...'
    })
  }
  const showNotificationError = () => {
    setType({
      type:'error',
      message:'温馨提示:',
      description:'this is a fail tips...'
    })
  }
  return <>
     <Space>
        <Button type='primary' onClick={showNotificationSuccess}>成功</Button>
        <Button type='primary' danger onClick={showNotificationError}>失败</Button>
     </Space>
     //组件的引入
     <MyNotificationIns type={notify.type} description={notify.description} message={notify.message}/>
  </>
}

export default MyNotification

NotificationIns.jsx,使我们的组件页面

import React,{ useEffect }  from 'react';

import {notification } from 'antd';

const MyNotification = ({type,message,description}) => {
  const [api,contextHolder] = notification.useNotification()
  //初始化的时候是没有type和description参数的,所以可以避免初始化一上来就弹窗
  useEffect(() => {
    if(type){
      api[type]({
        message,
        description,
        placement:'topRight'
      })
    }
  },[type,description])
  return <>
     {contextHolder}
  </>
}

export default MyNotification

功能基本完成,当然还可以根据官网的组件,补充更多的场景需求,就自己去完善了

关注我的个人公众号,获取更多前后端开发经验知识
react18+antd5.x(1):Notification组件的二次封装,react18+antdesign5.x实战开发,react.js,前端文章来源地址https://www.toymoban.com/news/detail-673896.html

到了这里,关于react18+antd5.x(1):Notification组件的二次封装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mpVue 微信小程序基于vant-weapp 组件的二次封装TForm 表单组件(修改源码插槽使用)

    1、mpVue微信小程序不支持动态组件(component ) 2、mpVue微信小程序不支持动态属性及事件穿透( $attrs 和 $listeners ) 3、mpVue微信小程序不支持 render 函数 TForm 表单组件 代码示例: 参数 说明 类型 默认值 className 自定义类名 String - listTypeInfo 下拉选择数据源(type:\\\'date/datetime/ra

    2024年02月16日
    浏览(42)
  • react18中antd的Upload组件上传头像,并且拿到服务器返回的头像的url地址在页面中显示头像

    业务需求:上传头像,上传完毕后拿到头像的url,把头像展示在页面中,最终把头像url和其他用户信息一起发送给服务器   上传头像流程   导入 Upload 组件和图标(一个加号,一个加载中)   定义状态   定义一个上传状态组件,上传前显示 + 号,上传时显示loading   组件代码(

    2023年04月22日
    浏览(29)
  • axios的二次封装

    1 axios是干什么的? XMLHttpRequest、jq、fetch、axios都是用来向服务器端发送请求,并获得响应 2 为什么要进行二次封装axios? 为了封装请求拦截器,响应拦截器 请求拦截器:可以在发送请求之前可以处理一些业务 响应拦截器:当服务器数据返回以后,可以处理一些事情 在src下创

    2023年04月12日
    浏览(75)
  • 关于axios的二次封装

    @1 第一步 我们一般都会先导入axios         import axios from ‘axios’ @2 第二步 创建axios的实例 可以同时创建多个实例 每个实例配置不同         const http = axios.create( {                  // 这里面可以做一些基础的配置 比如基础路径 ,axios 请求超时的时间            

    2024年02月03日
    浏览(34)
  • Axios的二次封装(简单易懂)

    是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端 简单的理解就是ajax的封装 在使用Vue.js框架开发前端项目时 会经常发送ajax请求服务端接口 在开发过程中 需要对axios进一步封装 方便在项目中的使用 从浏览器中创建 XMLHttpRequest 从 node.js 发出 http 请求 支持 Promise API 拦截请求

    2023年04月09日
    浏览(66)
  • Vue——axios的二次封装

    在 Vue 中,发送请求一般在 created 钩子中,当然放在 mounted 钩子中也没问题。 以下请求的前提都是安装了 axios,并且 import axios from \\\'axios\\\' 成功导入 Axios官网链接 get 请求传参,在地址里面通过 ?xxx=123 的形式 post 请求传参,在第二个参数里面传递 请求配置里面可以设置很多属性

    2024年02月11日
    浏览(30)
  • Vue项目中axios的二次封装

    Vue 项目使用过程中一般会对 axios 进行二次封装, 以期在合适的时机处理一些全局的需求, 比如常见的 请求拦截器 和 响应拦截器. 接下来简单聊聊具体的操作步骤. 执行以下指令: 在 src 文件夹下创建 api 文件夹, 并创建 index.js、axios.js 和 users.js 文件. index.js 文件的作用的将当前

    2024年01月19日
    浏览(72)
  • vue中axios的二次封装——vue 封装axios详细步骤

        api统一管理,不管接口有多少,所有的接口都可以非常清晰,容易维护。     通常我们的项目会越做越大,页面也会越来越多,如果页面非常的少,直接用axios也没有什么大的影响,那页面组件多了起来,上百个接口呢,这个时候后端改了接口,多加了一个参数什么的呢

    2024年02月02日
    浏览(33)
  • Vue3中搜索表单的二次封装

    最近使用Vue3+ElementPlus开发项目,从整体上构思组件的封装。能写成组件的内容都进行封装,方便多个地方使用。 受AntDesign的启发,在项目中有搜索表单+table+分页的地方可以封装为一个组件,只需要对组件传入table的列,组成一个配置项,通过配置可以显示搜索表单、table项的

    2024年02月11日
    浏览(30)
  • jq插件:jqgrid和validform的二次封装

    做久了vue和react框架项目,偶尔也需要做做原生的项目。不可否认vue的双向绑定机制确实很香,但是也是建立在原生js基础上。所以,只有做更多的原生js项目,才能更加了解vue框架的底层原理。在日常开发中,也会不可避免的会遇到原生开发的需求。这里主要介绍下jqgrid和

    2024年02月10日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包