首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

React组件设计实践总结03 - 样式的管理

React组件设计实践总结03 - 样式的管理 Bobi.ink 2019-05-14 CSS 是前端开发的重要组成部分,但是它并不完美,本文主要探讨 React...类 SCSS 的语法 5. JS 带来的动态性 6. 绑定组件的全局样式 7. Theme 机制及 Theme 对象的设计 8. 提升开发体验 9....组件可以认为是 UI 设计师 的产出, 如果你的应用有统一和规范的设计语言(参考antd), 这些配置会很有意义。样式可配置化可以让你的代码更灵活, 更稳定, 可复用性和可维护性更高....不管对于 UI 设计还是客户端开发, 设计规范可以提高团队工作效率, 减少沟通成本. styled-components 的 Theme 使用的是React Context API, 官方文档有详尽的描述...点击这里了解更多, 另外在这里了解如何在 Typescript 中声明 theme 类型 8.

7.1K20

「译」如何编写 React 应用程序的样式

React 中的简洁架构5. 构建合适的 REST API6. 如何编写 React 应用程序的样式语义类在本章接下来的部分中,我们将暂时放下功能,专注于组件及其 CSS 标记。...因此,我们应该将其实现为仅在 Quote 组件中添加的附加类。对于默认样式的问题,我的理念是最简单的样式应该是基础。因此,我会将大写风格作为附加类添加。但是我们应该如何命名它呢?...是的,关于按钮、输入和低级组件的粒度类是可重用的,但内容越具体,重用任何样式就越困难。样式不足如果元素的类不是设计为可重用的,你会发现它的某些样式可能来自其父级,例如间距、字体或颜色。...我需要的CSS解决方案是一个不依赖于语义类的解决方案。CSS-in-JS屏幕上的大多数元素没有与之相关的事件处理程序或域逻辑,它们是样式传递的 React 组件,其唯一职责是接受子元素并呈现它们。...为了理解为什么我如此欣赏这种方法,我们需要回顾一下在基于组件的库存在之前CSS是如何编写的。

10210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何优雅的设计 React 组件

    一个灵活好用的 React 组件跟 jQuery 插件一样,都离不开合理的属性化(props)设计,但 React 组件的拆分和组合比起 jQuery 插件来说还是简单的令人发指。 So!...接下来我们就以万能的 TODO LIST 为例,一起来设计一款 React 的 TodoList 组件吧!...约定目录结构 先假设我们已经拥有一个可以运行 React 项目的脚手架(ha~ 因为我不是来教你如何搭建脚手架的),然后项目的源码目录 src/ 下可能是这样的: . ├── components ├─...文件名的方式来实现,比如 TodoList 的样式文件 todo-list.scss。...当然,如何设计取决于你自己的项目,正所谓:没有最好的,只有更合适的。还是希望本篇文章能给你带来些许的小收获。

    5.3K100

    如何优雅的设计 React 组件

    一个灵活好用的 React 组件跟 jQuery 插件一样,都离不开合理的属性化(props)设计,但 React 组件的拆分和组合比起 jQuery 插件来说还是简单的令人发指。 So!...接下来我们就以万能的 TODO LIST 为例,一起来设计一款 React 的 TodoList 组件吧!...约定目录结构 先假设我们已经拥有一个可以运行 React 项目的脚手架(ha~ 因为我不是来教你如何搭建脚手架的),然后项目的源码目录 src/ 下可能是这样的: . ├── components ├─...文件名的方式来实现,比如 TodoList 的样式文件 todo-list.scss。...当然,如何设计取决于你自己的项目,正所谓:没有最好的,只有更合适的。还是希望本篇文章能给你带来些许的小收获。

    4K00

    ❤️创意网页:如何用HTML制作菜单栏?制作好看的菜单栏样式网页

    导语 在今天的技术博客中,我想向大家介绍一个温馨舒适菜单网站的设计。这个网站不仅具有吸引人的外观,而且提供了良好的用户体验。让我们一起深入了解这个温馨舒适的菜单网站是如何设计的。...例如,body 元素的背景颜色被设置为淡粉色,以营造出温暖和舒适的感觉。其他的样式规则包括对标题、菜单卡片以及链接按钮的样式设置。 菜单卡片 这个网站的主要特点是其菜单卡片的设计。...每个菜单卡片都有一个图片、标题、描述和一个“Learn More”链接按钮。让我们来看一下一个菜单卡片的 HTML 结构和 CSS 样式。...CSS 样式规则... */ 菜单卡片使用一个带有特定样式的 元素来包裹内容。...通过设置宽度、背景颜色、边框半径、阴影效果和动画过渡等样式规则,每个菜单卡片都具有独特的外观和交互效果。 响应式设计 最后,让我们来讨论一下这个网站的响应式设计。

    29410

    React Native基础&入门教程:初步使用Flexbox布局

    在上篇中,笔者分享了部分安装并调试React Native应用过程里的一点经验,如果还没有看过的同学请点击《React Native基础&入门教程:调试React Native应用的一小步》。...一、长度的单位 在开始任何布局之前,让我们来首先需要知道,在写React Native组件样式时,长度的不带单位的,它表示“与设备像素密度无关的逻辑像素点”。 这个怎么理解呢?...如果我们想知道自己的屏幕以这种长度的计量下是多少单位,可以通过引入react-native包中的Dimensions拿到,同时还可以查看本机的像素比例是多少。...alignItems 指定item在侧轴上的对齐方式 alignContent 指定item在多条轴上的对齐方式 flexDirection 指定主轴方向 flexWrap 指定item在主轴方向如何换行...其中,justify-content是设置items沿着主轴上是如何分布的。align-content是设置items沿着侧轴如何对齐的。

    2K50

    如何设计一个好用的 React Image 组件?

    前言 本文为笔者阅读 react-image[1] 源码过程中的总结,若有所错漏烦请指出。...); 现在让我们直接从第三阶段开始,看看如何使用少量代码打造一个易用性、封装性以及扩展性俱佳的image组件。...对 react-use[3] 熟悉的同学会很容易联想到useAsync。 自定义一个 hooks,接收图片链接作为参数,返回调用方需要的三个状态。...react-image-2 结语 值得注意的是,本文遵循 react-image 大体思路,但部分内容暂未实现(所以代码可读性要好一点)。...有兴趣的同学可以看看下面这些文章: 用于数据获取的 Suspense(试验阶段)[5] 错误边界(Error Boundaries)[6] React:Suspense 的实现与探讨[7] HTMLImageElement.decode

    1.4K20

    如何设计一个好用的 React Image 组件?

    前言 本文为笔者阅读 react-image[1] 源码过程中的总结,若有所错漏烦请指出。...); 现在让我们直接从第三阶段开始,看看如何使用少量代码打造一个易用性、封装性以及扩展性俱佳的image组件。...对 react-use[3] 熟悉的同学会很容易联想到useAsync。 自定义一个 hooks,接收图片链接作为参数,返回调用方需要的三个状态。...-2 结语 值得注意的是,本文遵循 react-image 大体思路,但部分内容暂未实现(所以代码可读性要好一点)。...有兴趣的同学可以看看下面这些文章: 用于数据获取的 Suspense(试验阶段)[5] 错误边界(Error Boundaries)[6] React:Suspense 的实现与探讨[7] HTMLImageElement.decode

    2.1K20

    『React Navigation 3x系列教程』createDrawerNavigator开发指南

    、headerLeft等; DrawerNavigatorConfig drawerWidth: 设置侧边菜单的宽度; drawerPosition: 设置侧边菜单的位置,支持’left’、 ‘right...contentOptions主要配置侧滑栏item的属性,只对DrawerItems,例如我们刚才写的例子,就可以通过这个属性来配置颜色,背景色等。...item的样式; labelStyle: 定义item文字的样式; iconContainerStyle: 定义item图标容器的样式; activeLabelStyle:选中状态下文本样式; inactiveLabelStyle...:非选中状态下文本样式; iconContainerStyle :用于设置图标容器的样式。...drawerLabel:侧滑标题; drawerIcon:侧滑的标题图标,这里会回传两个参数: {focused: boolean, tintColor: string}:

    7.1K10

    基于react的组件库主题设计方案

    基于react设计与开发的组件库主题方案,以 Hippy React 主题方案设计为例 需求背景 单一的视觉不再满足用户体验需求,为提高用户体验,提高应用体验口碑,同时提高开发者效率,我们希望提高组件库的可定制化...图片:图片尺寸,圆角大小等 技术选型 主题定制是大多数组件库都会提供的一个核心样式相关的功能,技术选项上需要考虑的两点: 如何生成一份全局样式配置表 组件如何获取样式配置表 针对以上两点,我们做了一些分析...在我们实现的hippy-react-ui中我们并没有提供打包的能力,而是把这部分移交到业务侧处理,原因是现在大部分业务发布时都会对业务进行打包处理,业务侧可能灵活设置打包配置内容,而不受限于组件库打包,...组件如何获取样式配置表 组件库是基于hippy-react设计开发的,hippy-react提供的数据的传递有两种: 通过 props 属性自上而下(由父及子)进行传递 Context 提供了一种在组件之间共享值的方式...Consumer获取到的样式合集作为生成子组件的函数参数,这就要求子组件是以函数的方式获取样式合集,后面如何使用中会对应介绍,如下 class ThemeConsumer extends React.Component

    7.5K2622

    如何掌握高级的React设计模式: 复合组件【译】

    因此,我能够设计出完全可重用的组件,并且可以在许多不同的环境中灵活地使用这些组件。...就目前而言,这个组件完全正常工作,并且完全按照设计目的进行,但它缺乏灵活性。...在本系列的第一部分中,我们将探讨一种名为“复合组件”的设计模式 使用复合组件设计模式 首先,让我们来看看 Stepper 组件。...但此时我们可以决定每个组件的位置,甚至可以在左右两侧同时设置进度块。 import React, { Component } from 'react'; import Stepper from "....在本系列的第2部分中,我将探讨如何实现 context API 以便能够在组件树中的任何位置传递属性,这样无论 Stepper.Steps 组件位于何处,它始终都能够访问 stage 属性。

    1.4K10

    如何掌握高级的React设计模式: 复合组件【译】

    因此,我能够设计出完全可重用的组件,并且可以在许多不同的环境中灵活地使用这些组件。 https://codesandbox.io/embed/5x22900pnl?...就目前而言,这个组件完全正常工作,并且完全按照设计目的进行,但它缺乏灵活性。...在本系列的第一部分中,我们将探讨一种名为“复合组件”的设计模式 使用复合组件设计模式 首先,让我们来看看 Stepper 组件。...但此时我们可以决定每个组件的位置,甚至可以在左右两侧同时设置进度块。 import React, { Component } from 'react';import Stepper from "....在本系列的第2部分中,我将探讨如何实现 context API 以便能够在组件树中的任何位置传递属性,这样无论 Stepper.Steps 组件位于何处,它始终都能够访问 stage 属性。

    85510

    基于react的组件库主题设计方案

    图片:图片尺寸,圆角大小等 技术选型 主题定制是大多数组件库都会提供的一个核心样式相关的功能,技术选项上需要考虑的两点: 如何生成一份全局样式配置表 组件如何获取样式配置表 针对以上两点,我们做了一些分析...: 如何生成一份全局样式配置表 目前各类组件库最常用的是以下两种方案: 借助gulp/webpack等打包工具相关的插件,配置需要定制的样式变量,在打包时覆盖对应变量值。...在我们实现的hippy-react-ui中我们并没有提供打包的能力,而是把这部分移交到业务侧处理,原因是现在大部分业务发布时都会对业务进行打包处理,业务侧可能灵活设置打包配置内容,而不受限于组件库打包,...组件如何获取样式配置表 组件库是基于hippy-react设计开发的,hippy-react提供的数据的传递有两种: 通过 props 属性自上而下(由父及子)进行传递 Context 提供了一种在组件之间共享值的方式...设计方案 通过上面技术的选型,我们确定了两点: 重写样式,覆盖样式配置表,生成新的全局样式配置表 组件通过Context提高的组件之间共享值的方式,获取样式配置表 生成样式配置表 以上是生成全局样式表的过程

    1.5K30

    React Native0.50+开发指导

    的支持; 在API方面为TimePicker添加了打开方式的API,另外允许在构建Android项目的时候指定applicationId; 在组件方面,新添加了支持侧滑显示菜单的SwipeableFlatList...修复了View Style的overflow hidden问题。 很久以来overflow样式在Android默认为hidden而且无法更改。...Android的overflow:hidden还有另外一个问题:如果父容器有borderRadius圆角边框样式,那么即便开启了overflow:hidden也仍然无法把子视图超出圆角边框的部分裁切掉。...组件,SwipeableFlatList是在FlatList的基础上添加了侧滑显示菜单的功能,类似于侧滑删除的效果。...我们知道SwipeableListView,是React Native 0.27上添加的一个支持侧滑显示菜单的ListView,不过ListView已经不推荐使用了。

    1.8K40

    React Native 0.50版本新功能简介

    Android项目的时候指定applicationId; 在组件方面,新添加了支持侧滑显示菜单的SwipeableFlatList,以及SafeAreaView。...4,修复了View Style的overflow hidden问题。 很久以来overflow样式在Android默认为hidden而且无法更改。...Android的overflow:hidden还有另外一个问题:如果父容器有borderRadius圆角边框样式,那么即便开启了overflow:hidden也仍然无法把子视图超出圆角边框的部分裁切掉。...通用的功能有: 通用 新增SwipeableFlatList组件,SwipeableFlatList是在FlatList的基础上添加了侧滑显示菜单的功能,类似于侧滑删除的效果。...我们知道SwipeableListView,是React Native 0.27上添加的一个支持侧滑显示菜单的ListView,不过ListView已经不推荐使用了。

    2.3K60

    Flutter TolyUI 框架#04 | 侧栏菜单设计

    一、侧栏菜单设计思考 侧栏菜单可以说是 App 的第一门面,我们可以在很多桌面端应用产品中看到。它一般用于处理一些全局性的交互事件,比如导航、切换暗亮模式、弹出用户介绍面板等。...框架主要目的就是将共性或复杂的功能封装在内部,以简化开发者使用,其关键在于如何平衡取舍。 侧栏菜单条目具有非常强的灵活性,靠一个组件来封装所有的可能性是不现实的。...庆幸的是 TolyUI 实现了这一点。 2. 侧栏菜单设计动机 Flutter 虽然提供了 NavigationRail 组件展示侧栏菜单,但是可定制性很差。...很多样式无法自主控制,所以 TolyUI 希望提供 TolyRailMenuBar 组件,使得侧栏的表现样式可以更自由地构建。 这就是侧栏菜单设计动机,它在交互语义上承担的职能是: [1]....如何自定义菜单项 如果 TolyUI 默认的条目展示样式不符合需求,可以通过 cellBuilder 参数自定义菜单项,其中 menu 和 display 分别承载菜单和展示信息的元数据,展示信息包括动画值

    22310

    React 侧边栏组件 Sidebar

    React作为一款流行的前端框架,提供了丰富的工具和方法来构建交互式的侧边栏组件。本文将深入探讨如何创建一个React侧边栏组件,介绍常见问题、易错点及如何避免这些问题,并通过代码案例进行解释。...二、基础概念与实现(一)侧边栏的基本结构侧边栏一般由两部分组成:容器(Container)和内容(Content)。容器负责定义侧边栏的整体布局和样式,而内容则包含具体的菜单项或功能按钮等。...在React中,我们可以通过创建一个名为Sidebar的组件来封装这些逻辑。(二)状态管理侧边栏的状态(如是否展开、当前选中的菜单项等)是需要动态管理的。...同时,利用CSS类名的变化来控制侧边栏的显示效果。(三)样式设计为了使侧边栏看起来更加美观且易于使用,我们需要为其添加适当的样式。...五、总结通过本文的详细探讨,我们不仅掌握了如何创建一个基本的React侧边栏组件,还深入了解了在实际开发过程中可能遇到的各种问题及其解决方案。

    20810

    ReactJS和React-Native的主要区别在哪里

    React-Native在某种程度上与ReactJS非常相似,但在开始第一个本机应用程序之前,您需要知道它们之间的差异。...要为您的React-Native组件设置样式,您必须在Javascript中创建样式表。...它看似CSS,但却不是真正的CSS.这可能一开始会令人困惑,你可能会碰到一个问题,比如你想知道如何使用SASS来创建混合,或者如何覆盖要重用的组件的样式。...然后,我开始想知道导航切换是如何工作的,我发现了React-Native提供的Navigator组件。我应该从这开始,寻找一个替代的react-router在我看来不是最好的做法。 ?...开发者工具 当您启动新的本机项目时,您可以从React中获得几个开发人员工具,而无需安装任何内容,这在我看来非常棒。当您需要对应用程式的样式做小修改时,非常适合使用热加载。

    17K30

    前端的培训计划书

    ,其掌握了 Web 应用的前端技术栈 (HTML、CSS 和 JavaScript 等),能够设计出用户友好、交互性强的前端界面和功能体验,并与后端配合完成整个网站或 Web 应用的创建。...,包括页面样式设计;常用的前端工具:介绍常用的自动化构建、打包发布等前端工具(如 Webpack3)。...前端工程化:掌握如何使用工具实现自动化构建和发布;渲染进阶:了解渲染原理和基本机制技术,例如 SSR(server-side rendering)、CSR(client-side rendering)等...,并且将会涉及DOM操作;前端工作流程:介绍前端与后端交互的方式和常用的调试工具(如 Chrome 开发者工具);版本管理:教导学生如何使用 Git 进行代码版本控制;React/Vue 框架学习 推荐课程内容...组件;Vue 框架:介绍 Vue 核心概念和使用方法,如组件、指令、响应式原理;前端高级知识学习 推荐课程内容:前端工程化:掌握如何使用工具实现自动化构建和发布;渲染进阶:了解渲染原理和基本机制技术,

    83030
    领券