自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

這一新前端UI框架將會改變游戲規(guī)則

開發(fā) 前端
shadcn/ui為前端開發(fā)帶來了全新的思路。它通過提供完全可控的組件代碼、利用Tailwind CSS的靈活性,以及簡化的使用方式,解決了傳統(tǒng)UI框架的諸多痛點。這種方法不僅提高了開發(fā)效率,還為創(chuàng)建獨特、高度定制化的用戶界面提供了更大的自由度。

在前端開發(fā)領(lǐng)域,UI框架一直是提高開發(fā)效率的重要工具。然而,傳統(tǒng)UI框架如Material UI和Bootstrap等,雖然功能強大,但也存在諸如項目臃腫、定制困難等問題。最近,一個名為shadcn/ui的新型UI框架引起了廣泛關(guān)注,它以獨特的方式解決了這些長期存在的問題,為現(xiàn)代Web應用的設計和開發(fā)帶來了革命性的變化。

shadcn/ui的核心理念

零類名,零內(nèi)置組件

與傳統(tǒng)框架不同,shadcn/ui不會向項目中導入大量預定義的CSS代碼。它采用了一種全新的"復制粘貼"模式。

圖片圖片

之前在 Material UI 和其他產(chǎn)品中也曾出現(xiàn)過:你無法直接看到組件代碼,只能通過外部類進行定制。最糟糕的是,當你升級到新版本時,組件的外觀可能會完全改變,從而破壞你的樣式。

完全可控的組件代碼

在使用shadcn/ui時,開發(fā)者可以完全掌控每個組件的代碼。這意味著你可以直接查看和修改組件的實現(xiàn),而不是通過外部類來定制。

圖片圖片

頁面結(jié)果

圖片圖片

Tailwind CSS的靈活運用

shadcn/ui充分利用了Tailwind CSS的強大功能,使得組件的樣式定制變得快速而簡單。

圖片圖片

CLI工具簡化使用

新推出的CLI工具使得添加新組件變得異常簡單,無需手動復制粘貼代碼。

圖片圖片

注意:它不會在 node_modules 中 "安裝 "任何東西。它只是自動為我們復制和粘貼:

圖片圖片

我們需要的一切;

圖片圖片

shadcn/ui 的可重用性使其不僅能提供組件,還能提供更復雜的用戶界面元素組,我們稱之為塊。

圖表塊

圖片圖片

儀表板元素塊

圖片圖片

默認就挺好看勒,如果沒滿意還可以無限定制。因為它只是 JSX 和 CSS,所以你可以只復制你想要的幾塊,然后放到你的項目中。

實際應用示例

以下是使用shadcn/ui創(chuàng)建一個自定義按鈕的示例:

import * as React from "react"
import { cva, type VariantProps } from "class-variance-authority"

import { cn } from "@/lib/utils"

const buttonVariants = cva(
  "inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background",
  {
    variants: {
      variant: {
        default: "bg-primary text-primary-foreground hover:bg-primary/90",
        destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
        outline: "border border-input hover:bg-accent hover:text-accent-foreground",
        secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
        ghost: "hover:bg-accent hover:text-accent-foreground",
        link: "underline-offset-4 hover:underline text-primary",
      },
      size: {
        default: "h-10 py-2 px-4",
        sm: "h-9 px-3 rounded-md",
        lg: "h-11 px-8 rounded-md",
      },
    },
    defaultVariants: {
      variant: "default",
      size: "default",
    },
  }
)

export interface ButtonProps
  extends React.ButtonHTMLAttributes<HTMLButtonElement>,
    VariantProps<typeof buttonVariants> {
  asChild?: boolean
}

const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
  ({ className, variant, size, asChild = false, ...props }, ref) => {
    const Comp = asChild ? Slot : "button"
    return (
      <Comp
        className={cn(buttonVariants({ variant, size, className }))}
        ref={ref}
        {...props}
      />
    )
  }
)
Button.displayName = "Button"

export { Button, buttonVariants }

這段代碼展示了shadcn/ui的核心優(yōu)勢:完全可控的組件代碼,結(jié)合Tailwind CSS的強大功能,實現(xiàn)了高度可定制的按鈕組件。

主題支持

shadcn/ui提供了豐富的主題支持,包括多種顏色方案和圓角設置。開發(fā)者可以輕松創(chuàng)建和切換主題,包括暗黑模式。

可以選擇多種顏色和邊框半徑來創(chuàng)建主題。

圖片圖片

圖片圖片

完成后,只需將 CSS 作為變量復制并粘貼到 Tailwind 層即可:

圖片圖片

甚至可以在首次向項目添加shadcn/ui配置文件時設置主題。

圖片圖片

結(jié)論

shadcn/ui為前端開發(fā)帶來了全新的思路。它通過提供完全可控的組件代碼、利用Tailwind CSS的靈活性,以及簡化的使用方式,解決了傳統(tǒng)UI框架的諸多痛點。這種方法不僅提高了開發(fā)效率,還為創(chuàng)建獨特、高度定制化的用戶界面提供了更大的自由度。

對于現(xiàn)代Web應用開發(fā)者來說,shadcn/ui無疑是一個值得關(guān)注和嘗試的工具。它不僅簡化了開發(fā)流程,還為創(chuàng)造性的UI設計提供了更多可能性。隨著Web開發(fā)趨勢的不斷演進,像shadcn/ui這樣的創(chuàng)新框架將繼續(xù)推動前端技術(shù)的發(fā)展,為開發(fā)者和最終用戶帶來更好的體驗。

責任編輯:武曉燕 來源: 大遷世界
相關(guān)推薦

2024-09-20 08:36:22

2023-03-21 08:02:34

架構(gòu)React服務器

2025-04-24 08:11:08

2025-04-07 00:00:00

OpenAIGPT-4o圖像

2024-07-17 08:27:29

2021-08-09 12:17:30

5G物聯(lián)網(wǎng)IOT

2024-07-19 08:13:00

2013-08-14 10:43:37

2025-03-26 08:10:56

2011-12-28 21:12:10

移動支付

2025-04-30 08:11:13

2012-10-25 13:46:42

2019-07-25 06:49:26

2023-05-11 14:07:29

2021-10-15 11:28:06

物聯(lián)網(wǎng)邊緣計算IoT

2016-09-10 08:20:09

IBM

2023-08-04 08:00:00

ControlNet醫(yī)學圖像

2018-12-07 16:08:28

Aruba網(wǎng)絡管理

2024-02-23 16:12:47

2020-08-19 09:45:10

IBMAIOps混合多云管理
點贊
收藏

51CTO技術(shù)棧公眾號