react18-学习笔记42-button组件分析

简介: react18-学习笔记42-button组件分析
import React from "react";
import classNames from "classnames"
export enum ButtonSize{
    Large='lg',
    Small='sm'
}
export enum ButtonType{
    Primary="primary",
    Default="default",
    Danger='danger',
    Link='link',
}
interface BaseButtonProps{
    className?:string,
    disabled?:boolean,
    size?:ButtonSize,
    btnType?:ButtonType;
    children:React.ReactNode;
    href?:string;
}
const Button:React.FC<BaseButtonProps>=(props)=>{
    const {
        btnType,
        disabled,
        size,
        children,
        href
    }=props
    const classes=classNames("btn",{
        [`btn-${btnType}`]:btnType,
        [`btn-${size}`]:size,
        'disabled':(btnType===ButtonType.Link)&&disabled
    })
    if(btnType===ButtonType.Link&&href){
        return(
            <a className={classes} href={href}>{children}</a>
        )
    }else{
        return (
            <button className={classes} disabled={disabled}>
                {children}
            </button>
        )
    }  
}
Button.defaultProps={
    disabled:false,
    btnType:ButtonType.Default
}
export default Button
相关文章
|
18小时前
|
开发框架 移动开发 前端开发
【Uniapp 专栏】Uniapp 与 React Native 的对比分析
【5月更文挑战第14天】Uniapp和React Native是热门的跨平台移动开发框架。Uniapp以其一套代码多端运行、丰富的组件生态和较低的学习曲线受到青睐,适合快速开发简单应用。React Native基于React,拥有活跃社区和优秀性能,适合复杂应用。React Native在性能上略胜一筹,尤其在需要接近原生体验的场景。Uniapp的官方组件弥补了社区资源不足。选择时需考虑开发效率、性能需求、团队技术栈和社区支持。
【Uniapp 专栏】Uniapp 与 React Native 的对比分析
|
17天前
|
开发框架 前端开发 JavaScript
【专栏】对比分析两种流行的跨平台开发框架——Flutter和React Native,探讨它们的优势、劣势以及适用场景
【4月更文挑战第27天】本文对比分析了Flutter和React Native两大跨平台移动开发框架。Flutter,由Google推出,以其接近原生的性能、快速启动和流畅滚动受青睐,适合高性能和高度定制的项目。React Native,Facebook维护,依赖JavaScript,虽性能受限,但热重载优势和丰富第三方库使其适合快速迭代的项目。两者都在拓展多平台应用,Flutter在桌面和Web,React Native在Windows。选择框架需考虑项目需求、团队技能和性能效率平衡。
|
19天前
|
前端开发 JavaScript 开发者
vue3、react组件数据传值对比分析——父组件传递子组件,子组件传递父组件(二)
vue3、react组件数据传值对比分析——父组件传递子组件,子组件传递父组件
22 0
|
19天前
|
JavaScript 前端开发 算法
vue3、react组件数据传值对比分析——父组件传递子组件,子组件传递父组件(一)
vue3、react组件数据传值对比分析——父组件传递子组件,子组件传递父组件
17 0
|
1月前
|
JavaScript 前端开发
【干货分享】选择 Vue 还是 React?项目框架选择的实际分析
【干货分享】选择 Vue 还是 React?项目框架选择的实际分析
|
1月前
|
前端开发 JavaScript Android开发
框架分析(8)-React Native
框架分析(8)-React Native
|
1月前
|
设计模式 前端开发 JavaScript
框架分析(2)-React
框架分析(2)-React
|
2月前
|
前端开发
React学习笔记(一)
React学习笔记(一)
|
2月前
|
前端开发
React学习笔记
React学习笔记
|
3月前
|
存储 前端开发 中间件
React组件间的通信
React组件间的通信
18 1