如何使用React Select与Tailwind Forms插件

如何使用React Select与Tailwind Forms插件

Tailwind CSS 是一个用于网页设计的实用型优先的样式库。Tailwind forms是提供基本重置表单样式的插件,使得可以轻松通过工具进行表单元素的重写。它简化了样式化表单的过程。React Select是一个用于创建React多选异步支持的选择输入控件的库。 ****

创建React项目

步骤1: 使用以下命令创建React应用程序:

npx create-react-app <<Project Name>>

步骤2: 创建项目文件夹,例如folder_name,使用以下命令进入该文件夹:

cd <<Project Name>>

步骤3: 通过以下命令安装 react-select 和 clsx。

npm install react-select clsx

步骤4: 通过输入以下命令安装TailwindCSS。

npm install -D tailwindcss @tailwindcss/forms  
npx tailwindcss init

步骤5: 将您的模板文件路径添加到tailwind.config.js中,并在tailwind.config.js中导入@tailwindcss/forms。

module.exports = {  
    content: ["./src/**/*.{html,js,jsx}"],  
    theme: {  
        extend: {},  
    },  
    plugins: [require('@tailwindcss/forms')],  
}

步骤6: 将tailwind指令添加到您的index.css文件中

@tailwind base;  
@tailwind components;  
@tailwind utilities;

步骤7: 编译您的index.css文件以扫描模板

npx tailwindcss -i ./src/index.css -o ./public/output.css

步骤8: 将您编译后的 CSS 文件添加到<head>中,并开始使用 Tailwind 的实用类来为您的内容添加样式。

<link href="/public/output.css" rel="stylesheet">

现在,TailwindCSS、react-select和tailwind-form插件已经安装完毕,可以在项目中使用了。

项目结构

如何使用React Select与Tailwind Forms插件

示例1: 在这个示例中,我们将使用基本的样式来显示在tailwind和tailwindcss表单中使用react-select组件。在react-select中,有20个内部组件可以进行样式设置。以下是其中的几个:

  • Control(控制): 用于设置选择组件的基本样式。
  • Input(输入): 用于设置组件搜索输入的样式。
  • Menu(菜单): 用于设置下拉列表的样式。
  • Option(选项): 用于设置选中或聚焦时列表的样式。

App.js 文件:在此文件中添加代码

// SelectTailwind.jsx 
import clsx from "clsx"; 
import React from "react"; 
import Select from "react-select"; 
const SelectTailwind = () => { 
    const options = [ 
        { value: "chocolate", label: "Chocolate" }, 
        { value: "strawberry", label: "Strawberry" }, 
        { value: "vanilla", label: "Vanilla" }, 
    ]; 
    return ( 
        <div className=" bg-white text-black   
                         flex flex-col   
                         justify-center  
                         items-center  
                         h-screen w-full"> 
            <h1 className=" flex flex-row  
                            text-green-500  
                            font-semibold  
                            text-2xl"> 
                GFG React-Select and Tailwind Forms Plugin 
            </h1> 
            <label htmlFor="wotailwind">Without Tailwind</label> 
            <Select id="wotailwind" options={options} /> 
            <label htmlFor="wtailwind">With Tailwind</label> 
            <Select 
                id="wtailwind"
                unstyled 
                options={options} 
                classNames={{ 
                    input: () => "[&_input:focus]:ring-0", 
                    control: () => "form-multiselect p-6 ", 
                    menu: () => "bg-slate-200 ", 
                    option: ({ isFocused, isSelected }) => 
                        clsx( 
                            isFocused && 
                            "hover:cursor-pointer  
                             hover:bg-slate-500  
                             px-3 py-2 rounded", 
                            isSelected && "bg-slate-300"
                        ), 
                }} 
            /> 
        </div> 
    ); 
}; 
export default SelectTailwind;

运行步骤: 在终端中输入以下命令来运行项目。

 npm start  

它将在浏览器中打开localhost:3000

输出:

如何使用React Select与Tailwind Forms插件

示例2: 使用tailwind css样式对组件进行样式设置,并使用变量而不是直接在classNames中编写。因此,在这个示例中,我们使用变量来存储tailwind样式类,并将它们用于Select组件的classNames属性和isMulti属性,以设置组件以选择多个值。

  • App.js :在此文件中添加代码
//MultipleTailwind.jsx 
import clsx from "clsx"; 
import React from "react"; 
import Select from "react-select"; 
  
const MultipleTailwind = () => { 
    const options = [ 
        { value: "chocolate", label: "Chocolate" }, 
        { value: "strawberry", label: "Strawberry" }, 
        { value: "vanilla", label: "Vanilla" }, 
    ]; 
    const baseStyle = 
        "form-multiselect text-blue-800  
         border p-5 rounded-lg bg-red-400  
         hover:cursor-pointer"; 
    const menuStyle = 
        " text-blue-900 border  
          rounded-lg bg-red-400  
          hover:cursor-pointer"; 
    const optionStyles = { 
        focus: "hover:cursor-pointer  
                hover:bg-white  
                hover:text-black", 
        Selected: "bg-slate-300", 
    }; 
    return ( 
        <div className=" bg-white text-black   
                         flex flex-col   
                         justify-center  
                         items-center 
                         h-screen w-full"> 
            <h1 className="text-green-500  
                           font-semibold  
                           text-2xl"> 
                GFG React-MultiSelect and Tailwind Forms Plugin 
            </h1> 
            <label className="flavour">Multiselect :</label> 
            <Select 
                classNames={{ 
                    input: () => "[&_input:focus]:ring-0", 
                    control: () => baseStyle, 
                    menu: () => menuStyle, 
                    option: ({ isFocused, isSelected }) => 
                        clsx( 
                            isFocused && optionStyles.focus, 
                            isSelected && optionStyles.Selected 
                        ), 
                }} 
                unstyled 
                id="flavour"
                isMulti 
                styles={{ 
                    input: (base) => ({ 
                        ...base, 
                        "input:focus": { 
                            boxShadow: "none", 
                        }, 
                    }), 
                }} 
                options={options} 
            /> 
        </div> 
    ); 
}; 
export default MultipleTailwind;

运行步骤: 要运行该项目,请在终端中输入以下命令。

npm start

输出:

如何使用React Select与Tailwind Forms插件

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程