npm包diascope的使用教程

阅读时长 16 分钟读完

简介

diascope是一个基于React的可定制的UI组件库,它提供了许多高质量的组件,如日历、轮播图、时间轴等等。这些组件易于使用且高度可配置,可以快速构建出美观、高质量的用户界面。

安装和使用

  1. 通过npm安装diascope

  2. 在项目中引入diascope组件

  3. 在渲染组件的位置加入需要的props属性

组件

基础组件

  • Button

    按钮组件可以自定义按钮的样式、文字、事件等。

    属性(API)
    属性 类型 默认值 描述
    type string 按钮类型
    variant 'text' | 'outlined' | 'solid' 'text' 按钮样式
    color string 按钮颜色
    size 'small' | 'medium' | 'large' 'medium' 按钮大小
    disabled boolean false 是否禁用按钮
    disableRipple boolean false 是否开启ripple效果
    startIcon any null 在按钮左侧插入一个元素
    endIcon any null 在按钮右侧插入一个元素
    onClick (event: React.MouseEvent<htmlbuttonelement>) => void undefined 点击按钮时的回调函数
    示例代码
    -- -------------------- ---- -------
    ------ - ------ - ---- -----------
    
    -------- ----- -
      ------ -
        ------- ------------------ --------------- -------------
          ----- ---
        ---------
      --
    -
  • Calendar

    日历组件支持单选和范围选取两种模式,同时提供了自定义日期格式、日期范围限制等功能。

    属性(API)
    属性 类型 默认值 描述
    mode 'single' | 'range' 'single' 选择模式(单选、范围)
    value Date | [Date, Date] null 当前选择的日期
    onChange (value: Date | [Date, Date]) => void 日期发生变化时的回调函数
    minimalDays number 1 范围选择时的最小间隔天数
    showOutsideDays boolean false 是否显示日历外的日期
    disabledDays number[ ] [] 禁用选择的星期
    disabledDates Date[ ] | ((currentDate: Date) => boolean) | undefined [] 禁用选择的日期
    renderDay (date: Date) => React.ReactNode 渲染每一天对应的React元素
    startDatePlaceholder string 'Start Date' 组件模式为range时起始日期文本框中的提示文本
    endDatePlaceholder string 'End Date' 组件模式为range时结束日期文本框中的提示文本
    dateFormat string 'yyyy-MM-dd' 日期格式
    示例代码
    -- -------------------- ---- -------
    ------ - -------- - ---- -----------
    
    -------- ----- -
      ------ -
        ---------
          ------------
          ----------- ---------- -- --- --- ---------- -- -----
          ----------------- -- -------------------
          ---------------
          ----------------------
          ----------------- ---
          ------------------- ---------- -- ---- --- ---------- -- -----
          ----------------- -- ----------------------------
          ------------------------------
          ----------------------------
          -------------------------
        --
      --
    -

进阶组件

  • Timeline

    时间轴组件支持横向和纵向布局,样式和样式皮肤也比较多,支持左右位置、自定义图标等功能。

    属性(API)
    属性 类型 默认值 描述
    orientation 'vertical' | 'horizontal' 'vertical' 时间轴方向
    lineStyle React.CSSProperties {} 时间轴线条样式
    itemStyle React.CSSProperties {} 时间轴元素样式
    activeItemStyle React.CSSProperties {} 时间轴选中元素的样式
    leftContentStyle React.CSSProperties {} 时间轴左侧元素的样式
    rightContentStyle React.CSSProperties {} 时间轴右侧容器的样式
    items { id: string; content: string; icon?: React.ReactNode } [ ] [ ] 时间轴元素数组
    activeItemId string null 当前选中的时间轴元素的id值
    onItemClick (id: string) => void 点击元素时被调用的回调函数
    renderItem (item: { id: string; content: string; icon?: React.ReactNode }) => React.ReactNode 渲染时间轴元素内容的函数
    示例代码
    -- -------------------- ---- -------
    ------ - -------- - ---- -----------
    
    -------- ----- -
    
      ----- ------------- - -
          -
            --- ----
            -------- -----------
            ----- ---------- --
          --
          -
            --- ----
            -------- -----------
            ----- ---------- --
          --
          -
            --- ----
            -------- -----------
            ----- ---------- --
          --
          -
            --- -----
            -------- -----------
            ----- ---------- --
          -
        --
        ------ -
          ---------
            ---------------------
            ------------------
            ----------------- -- ----------------
            ------------------ -- --------------------------
          --
        --
    -
  • Carousel

    轮播组件支持自定义轮播图、自动播放、分页、虚拟模式、无限滚动等功能,易于使用且支持扩展。

    属性(API)
    属性 类型 默认值 描述
    items any[ ] [ ] 轮播项
    activeIndex number 0 当前激活的轮播项的索引
    onChange (index: number) => void 轮播项发生变化时的回调函数
    loop boolean false 是否无限循环轮播
    autoplay boolean false 是否自动播放
    interval number 3000 自动播放时的轮播速度
    slidesToShow number 1 轮播项显示的数量
    disableSwipe boolean false 是否禁用轮播项的滑动功能
    transitionDuration number | { enter: number, exit: number } 400 轮播项切换时的动画时长
    slideWidthPercentage number 100 轮播项占用的容器宽度百分比
    enableMouseEvents boolean false 是否开启鼠标事件监听功能
    showNavigationButtons boolean true 是否显示导航按钮
    showPaginationDots boolean false 是否显示分页点
    renderNavigationButton ({ isNext, onClick }) => React.ReactNode 渲染导航按钮对应的React节点
    renderPaginationDot ({ index, isActive, onClick, ariaLabel }) => React.ReactNode 渲染分页点对应的React节点
    示例代码
    -- -------------------- ---- -------
    ------ - -------- - ---- -----------
    
    -------- ----- -
    
      ----- ------------- - -
          -
            ------ ------ ---
            ------------ ------------ ---
            ---- -------------------------------------
          --
          -
            ------ ------ ---
            ------------ ------------ ---
            ---- -------------------------------------
          --
          -
            ------ ------ ---
            ------------ ------------ ---
            ---- -------------------------------------
          --
          -
            ------ ------ ---
            ------------ ------------ ---
            ---- -------------------------------------
          -
        --
        
        ------ -
          --------- 
            ---------------------
            ---------------
            ----------------- -- -------------------
            -----------
            ---------------
            ---------------
            ----------------
            ----------------------------
            -------------------------- ------- ------- -- -- -
              ------- ------------------
                ------- - ------ - -------
              ---------
            --
            -------------------------
            ----------------------- ------ --------- -------- --------- -- -- -
              -------
                ------------
                --------------- - --------- - ------------
                -----------------
              -
                ------ - --
              ---------
            --
          --
        --
    -

总结

diascope 是一款高效、可扩展的UI组件库,可以帮助开发者快速构建出高质量的用户界面,并且提供了丰富的自定义选项,满足不同项目的需求。在它的帮助下,我们可以省去不少重复的开发工作,更好的实现高效开发。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055fc781e8991b448dd3d6

纠错
反馈