首页 > 其他分享 >React 添加常用通用框架

React 添加常用通用框架

时间:2024-04-17 11:12:45浏览次数:25  
标签:react 框架 icons App React 添加 import css

目录

前言

今天来写一个简单的后台管理页面,没有后端接口,都是模拟的数据。我这个的目标就是快速上手React开发,能用框架就用框架解决。

React第三方库使用

  • ant-design:ui库
  • react-icons:icon库

ant-design

这次来了解一下阿里,国内顶级大厂的React UI框架,Ant-Design

ant-design github 地址

Ant Design 中文文档

安装

确保自己已经安装了Node,NPM和create-react-app

使用create-react-app创建项目

create-react-app 你的项目名

运行如下代码

npm install antd

在App.js中添加

import "./App.css";
import { useState } from "react";
import { Button, DatePicker } from "antd";

function App() {
    return (
        <div>
            <>
                <Button type="primary">PRESS ME</Button>
                <DatePicker placeholder="select date" />
            </>
        </div>
    );
}

export default App;

推荐使用

  • 按钮

  • 全部布局节点

  • Menu:导航菜单
  • Pagination:分页
  • Tooltip:文字提示
  • 全部反馈

react-icons:icon库

react-icons github仓库地址

React Icons 官方文档

安装

npm install react-icons --save

简单使用

import logo from "./logo.svg";
import "./App.css";
import { Button, DatePicker } from "antd";
//react-icon就是把图标封装成组件了
import { FaBeer } from "react-icons/fa";
import { MdAddLocationAlt  } from 'react-icons/md';

function App() {
    return (
        <div>
            <>
                {/* 通过size修改大小 */}
                <MdAddLocationAlt size={100}/>
                <FaBeer/>
                <Button type="primary">PRESS ME</Button>
                <DatePicker placeholder="select date" />
            </>
        </div>
    );
}

export default App;


react-router:React 路由添加

React Router6 中文文档

Tailwind CSS :html通用组件

我其实一直很反对过度封装,我其实是想要一个开箱即用的代码。比如Ant Design Charts,它是要React+TS才能使用。你React+JS还会报错。我也有Vue甚至Jqeury的html代码需要维护,所以我希望用通用的前端组件。

Tailwind CSS 的工作原理是扫描所有 HTML 文件、JavaScript 组件以及任何 模板中的 CSS 类(class)名,然后生成相应的样式代码并写入 到一个静态 CSS 文件中。
他快速、灵活、可靠,没有运行时负担。

Tailwind CSS安装

Tailwind CSS 入门

如何在React应用程序中整合Tailwind CSS?

按照上述流程走完之后,只需引入output.css即可

yesicon 中文Icon网

yesicon 中文Icon网

这个网站上面有很多的Icon推荐


在 TailwindCSS 中使用 Iconify 图标

import logo from "./logo.svg";
import "./App.css";
//引入你的output.css路径
import "./tailwindCss/output.css"
import { Button, DatePicker } from "antd";
//react-icon就是把图标封装成组件了
import { FaBeer } from "react-icons/fa";
import { MdAddLocationAlt } from "react-icons/md";

function App() {
    return (
        <div>
            <>
                {/* 通过size修改大小 */}
                <span class="icon-[mdi--ab-testing]"></span>
                <i class="icon-[material-symbols--arrow-back-ios-new]" />
                <h1 class="text-3xl font-bold underline">Hello world!</h1>

                <span class="icon-[mdi--ab-testing]"></span>
                <MdAddLocationAlt size={100} />
                <FaBeer />
                <Button type="primary">PRESS ME</Button>
                <DatePicker placeholder="select date" />
                {/* <Page/> */}
            </>
        </div>
    );
}

export default App;

daisyui

daisyui其实就是TailWind的BootStrap。因为TailWind封装了一些默认的 css,但是我们希望开箱即用。所以在TailWind的基础上面,又进行了一个封装。又绕回Bootstrap了。所以直接用BootStrap也是可以的,只是Tailwind比较的流行而已。

作为 Tailwind CSS 的插件来安装 daisyUI

配置好了之后就可以直接使用了

import logo from "./logo.svg";
import "./App.css";
//引入你的output.css路径
import "./tailwindCss/output.css"
import { Button, DatePicker } from "antd";
//react-icon就是把图标封装成组件了
import { FaBeer } from "react-icons/fa";
import { MdAddLocationAlt } from "react-icons/md";

function App() {
    return (
        <div>
            <>
                {/* 通过size修改大小 */}
                <span class="icon-[mdi--ab-testing]"></span>
                <i class="icon-[material-symbols--arrow-back-ios-new]" />
                <h1 class="text-3xl font-bold underline">Hello world!</h1>

                <span class="icon-[mdi--ab-testing]"></span>
                <MdAddLocationAlt size={100} />
                <FaBeer />
                <Button type="primary">PRESS ME</Button>
                <DatePicker placeholder="select date" />
                <button class="btn btn-primary">Button</button>
                {/* <Page/> */}
            </>
        </div>
    );
}

export default App;

Echart+echarts-for-react

echarts-for-react 是对echarts的简单封装

echarts-for-react的使用

其实Echarts核心就是option,其他的都委托给echarts-for-react创建实例。

import logo from "./logo.svg";
import "./App.css";
//引入你的output.css路径
import "./tailwindCss/output.css"
import { Button, DatePicker, Row, Col } from "antd";

import React, { useState } from 'react';
//react-icon就是把图标封装成组件了
import { FaBeer } from "react-icons/fa";
import { MdAddLocationAlt } from "react-icons/md";
import ReactEcharts from 'echarts-for-react';
function App() {
    return (
        <div>
            <>
                {/* 通过size修改大小 */}
                <span class="icon-[mdi--ab-testing]"></span>
                <i class="icon-[material-symbols--arrow-back-ios-new]" />
                <h1 class="text-3xl font-bold underline">Hello world!</h1>

                <span class="icon-[mdi--ab-testing]"></span>
                <MdAddLocationAlt size={100} />
                <FaBeer />
                <Button type="primary">PRESS ME</Button>
                <DatePicker placeholder="select date" />
                <button class="btn btn-primary">Button</button>
                <BingEch/>
                {/* <Page/> */}
            </>
        </div>
    );
}

const BingEch = (props) => {
    const [sales, setSales] = useState([5, 20, 36, 10, 10, 20]);
    const [stores, setStores] = useState([15, 120, 36, 110, 110, 20]);
    // 配置对象
    const getOption = (sal, sto) => {
        return {
            tooltip: {
                trigger: 'item',
                formatter: "{a} <br/>{b} : {c} ({d}%)"
            },
            legend: {
                orient: 'vertical',
                left: 'left',
                textStyle: {
                    fontSize: 13,
                    color: '#FFFFFF',
                },
                data: ['重启', '找人帮忙', '放弃使用', '想法修复']
            },
            series: [
                {
                    name: '访问来源',
                    type: 'pie',
                    radius: '55%',
                    center: ['50%', '60%'],
                    data: [
                        { value: 1835, name: '重启' },
                        { value: 310, name: '找人帮忙' },
                        { value: 234, name: '放弃使用' },
                        { value: 135, name: '想法修复' }
                    ],
                    itemStyle: {
                        emphasis: {
                            shadowBlur: 10,
                            shadowOffsetX: 0,
                            shadowColor: 'rgba(0, 0, 0, 0.5)'
                        }
                    }
                }
            ]
        }
    };
 
    return (
        <div>
            <Row gutter={24}>
                <Col span={24}>
                    <ReactEcharts option={getOption(sales, stores)} style={{marginTop:"30px"}} />
 
                </Col>
            </Row>
        </div>
    )
}


export default App;


总结

我后面会尝试使用TailWindCss为开发,因为我想使用通用的css框架开发。用于解决Vue,React和原生Html的代码。

标签:react,框架,icons,App,React,添加,import,css
From: https://www.cnblogs.com/gclove2000/p/18137970

相关文章

  • (二)ET8多线程多进程框架设计课程介绍
    ET7已经满足90%的项目需求,没必要追新,除非客户端逻辑非常耗cpu,需要网络0GC,需要多线程支持(比如帧同步需要逻辑层单独放一个线程),服务端内部消息量过大或者需要减少总内存占用,才考虑使用ET8。ET8的课程明天开始录,主要讲解ET8多线程设计的各种思考,开发过程中的各种设计的权衡,et8相比ET7......
  • pre-commit 多语言pre-commit hooks 框架
    pre-commit多语言pre-commithooks框架基于python开发,功能很强大参考使用安装pipinstallpre-commit添加配置.pre-commit-config.yamlrepos:-repo:https://github.com/pre-commit/pre-commit-hooksrev:v2.3.0hoo......
  • Flask框架
    一、简介Flask是一个非常小的PythonWeb框架,被称为微型框架;只提供了一个稳健的核心,其他功能全部是通过扩展实现的;意思就是我们可以根据项目的需要量身定制,也意味着我们需要学习各种扩展库的使用二、概要1)安装:pipinstallflask2)组成:WSGI系统、调试、路由3)模板引擎:Jinja2(由F......
  • React性能优化手册
    此文章属于笔记总结。对应的课程地址:https://www.pluralsight.com/courses/react-performance-playbook相关网站:https://web.developers.google.cn/?hl=zh-cn性能审查检测指标CoreWebvitals:衡量网站是否运行正常的基本指标LCP,LargestContentfulPaint最大内容绘制......
  • 使用 ffmpeg 为视频文件添加封面
    全程使用CHATGPT4提供帮助通常而言,电脑上的资源管理器会使用视频的第一帧来作为缩略图,如果视频文件中有封面存在,则会使用封面作为文件缩略图(Windows自带的资源管理器是这样,具体要看资源管理器的实现)与GPT4沟通后,发现可以使用ffmpeg为视频添加封面。原理是为文件添加一......
  • React 学习笔记:刚开始接触
    目录前言相关链接个人对React和Vue的初步感觉React和Vue官方态度的区别ReactVue新建第一个React项目复制官方的文档代码教程:井字棋游戏React个人使用体验返回html修改样式作用域React的常用组件ReactDeveloperToolsReact开发工具React框架推荐总结前言之前有断断续续学过一段......
  • react组件地狱是什么怎么解决
    React中的“组件地狱”主要指的是在组件开发中,由于组件的过度嵌套或复杂的层次结构,导致代码变得难以阅读、理解和维护。这通常发生在开发者为了复用逻辑或状态而在组件中层层嵌套其他组件时。在使用高阶组件(HOC)或渲染属性(renderprops)时,如果不加以控制,很容易形成嵌套层级过深的组......
  • React 中的 useRef 与 useState
    React是一个流行的JavaScript库,用于构建用户界面。它提供了几个钩子,使开发人员能够管理状态并执行副作用。React中两个常用的钩子是 useRef 和 useState 。虽然它们乍一看似乎很相似,但它们具有不同的目的并且具有不同的用例。在本文中,我们将深入探讨 useRef 和 useSta......
  • flask框架图书管理系统服务器端
    fromflaskimportFlask,request,jsonifyapp=Flask(__name__)books=[{'id':1,'title':'book1','author':'au1'},{'id':2,'title':'book2','author':'au2'},......
  • flask框架图书管理系统客户端
    importrequestsimportjson#Flask应用的URLbase_url='http://localhost:5000'#获取所有图书defget_all_books():response=requests.get(f'{base_url}/books')ifresponse.status_code==200:returnresponse.json()else:print(f&#......