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

5件你可能不知道可以使用 CSS-in-JS 来做事情

在这篇文章讨论在 CSS-in-JS 你可以用上面的库来做五件事,而我打赌这是你不知道。...,作为另一个例子,你也可以使用 react-with-styles,它有实现 Aphrodite 或 JSS 接口,这样在定义样式时就可以访问主题信息了。...结论 CSS-in-JS 是一种使用 JavaScript为应用程序设置样式技术,你可以使用实现它库来做有趣事情。 在这篇文章向你展示了5件你可能不知道可以使用这些库来做事情。...当然,并不是所有的库都是对等,有些情况只适用于特定库。 在这个 页面 ,您可以测试和比较许多 CSS-in-JS 库。...其中一个库是 stylable,一个基于组件库,带有一个预处理器,可以 stylable CSS 转换成最小跨浏览器 vanilla CSS。

1.4K30

5件您可能不知道可以使用 CSS-in-JS 来做事情

在这篇文章讨论在 CSS-in-JS 你可以用上面的库来做五件事,而我打赌这是你不知道。...,作为另一个例子,你也可以使用 react-with-styles,它有实现 Aphrodite 或 JSS 接口,这样在定义样式时就可以访问主题信息了。...结论 CSS-in-JS 是一种使用 JavaScript为应用程序设置样式技术,您可以使用实现它库来做有趣事情。 在这篇文章向您展示了5件您可能不知道可以使用这些库来做事情。...当然,并不是所有的库都是对等,有些情况只适用于特定库。 在这个 页面 ,您可以测试和比较许多 CSS-in-JS 库。...其中一个库是 stylable,一个基于组件库,带有一个预处理器,可以 stylable CSS 转换成最小跨浏览器 vanilla CSS。

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

    构建一套最佳React 组件文件结构

    注意:有一个论点是,只有默认导出应该是公共,其余应该保持私有。 Test 测试 为什么测试放在这里而不是放在单独tests目录?两个字-代管! 属于一起文件应该放在一起。...出于上述所有相同原因,每个story及其相应组件并置在一起很重要。 Styles 样式文件 使用CSS-in-JS时,可以直接在组件文件创建样式组件。...保留在组件目录之外内容 这是一个很好规则:如果你曾经想使用除已从组件索引显式导出内容以外其他内容,则明确表明此特定代码段应放置在其他位置。 让给你举个例子: 让我们回到菜单组件。...为此,我们创建了一个自定义钩子useClickOutside并将其放置在utils。 一段时间后,很明显,我们这次需要Dialog组件使用完全相同行为。...我们想重用我们钩子,但与此同时,它不再是特定于组件。我们应该将其从Menu组件取出,然后将其放在更高位置,也许放在我们常规utils文件夹

    1.1K10

    前端-在2018年你应该知道9个关于CSS组件化JS库

    可以根据需要将CSS属性添加到组件,就像通常使用CSS一样。解析JS时,样式组件生成唯一类名,并将CSS注入DOM。您可以在Max Stoiber精彩演讲中了解更多信息。...Radium提供标准接口和抽象,用于处理内联样式无法轻松容纳CSS功能。 Radium允许您将样式React组件捆绑在一起,javascript,html和样式结合在一起。...这是一篇简短 API docs 介绍,GlamourCSS技术比较和Gatsby Glamby有用教程 。 还可以看看:Glam(仍在工作) 7....   )} /> Fela是一个为JavaScript状态驱动样式构建项目,强调了三件事:默认情况下使样式动态化,带来框架无关(React绑定)和高性能。...这是一个很好转换SCSS(Sass)教程。还可以查看React-JSS,它是ReactJSS集成。

    2.6K40

    6个常用React组件库

    轻松自定义; 它已经流行了足够长时间了,因此不必担心错误 / 问题; 快速上手; 没有 jQuery 依赖,因为它已在 React 完全重新实现。...缺点: 这是 Bootstrap:如果你不做自定义,则你网站将与其他网站没什么区别。 Bulma ? Bulma 与本文介绍其他库不太一样,因为 Bulma 是纯 CSS 框架,不需要 JS。...过去,你只能通过编写 JSS自定义 MaterialUI 样式,但值得庆幸是,现在可以使用 styled-components 和 Emotion 覆盖样式。...fork: https://github.com/fomantic/Fomantic-UI 荣誉奖 Reach UI ReachUI 是一个底层组件库,允许开发人员在其设计系统构建可访问 React...还特意省略了 CSS-in-JS(如 styled-components 和 Emotion)以及实用工具 CSS 系统(如 Tailwind),因为它们不是明确React 组件库”,而是用来制作组件工具

    2.1K10

    亲手打造属于你 React Hooks

    在这个循序渐进指南中,通过分解为自己应用程序创建三个钩子,以及创建这些钩子是为了解决什么问题,向您展示如何创建自己自定义React钩子。...对于我创建每个自定义 react 钩子都把它放在一个专门文件夹,通常称为 utils 或 lib,专门用于我可以在应用程序重用函数。...为此,我们可以使用一个媒体查询(CSS),或者使用一个自定义React钩子来提供当前页面的大小,并隐藏或显示JSX链接。 以前,使用一个名为react-use钩子。...useWindowSize 首先,我们将在utils文件夹创建一个.js文件,与钩子useWindowSize同名。将在导出自定义钩子同时导入React(以使用钩子)。...在例子这是500px标记。

    10.1K60

    useTransition真的无所不能吗?🤔

    理论上来说,渲染100个组件对React来说小菜一碟,但架不住每个组件需要10毫秒。那就得到一个糟糕结果,渲染B页面需要1秒钟。...但是,你思来想去,发现你「武器库」缺失了这种利器。你不好去做优化处理。 这是因为,虽然React状态更新并不是异步(我们之前文章有讲过,有兴趣可以翻找一下)。...这里问题在于, ❝如果我们状态更新包装在一个过渡React并不只是在"后台"触发状态更新。实际上,这是一个「两步过程」。...其中有一个结论是:「Memo容易被破坏」,所以如果在useTransition处理过程没很好处理Memo的话,会使我们应用比使用useTransition之前显然更糟糕。得不偿失。...通常,我们会使用类似lodash防抖函数(或等效函数)来实现: 或者我们可以使用在美丽公主和它27个React 自定义 Hook自定义hookuseDebounce。

    39610

    「前端架构」使用React进行应用程序状态管理

    一个状态管理解决方案,个人一直在使用React,随着React钩子发布(以及对React上下文大量改进),这种状态管理方法已经大大简化。...很明显,对于真正全局状态来说,这是很好,但是对于简单状态(比如模态是开放还是表单输入值状态),这是一个大问题。更糟糕是,它规模并不是很好。应用程序越大,这个问题就越难解决。...所有应用程序状态都放在一个对象也会导致其他问题,即使您没有使用Redux。当一个反应获取一个新值,使用该值所有组件都将更新并必须呈现,即使它是只关心部分数据函数组件。...这个问题答案和反应本身一样古老(旧?)在记事时候,就在文档里写了很久:提升状态 “提升国家”合法地回答了React国家管理问题,这是一个坚如磐石答案。...这种方法酷之处在于,我们可以更新状态常用方法所有逻辑放在useCount钩子: function useCount() { const context = React.useContext(CountContext

    2.9K30

    成为一名高级 React 需要具备哪些习惯,他们都习以为常

    你可以尝试编写同步两个state 代码,但这是一个容易出错地方,而不是解决方案。 这是一个在我们待办事项列表应用程序上下文中重复状态例子。...在对抗糟糕渲染性能时,你最强大武器是React.memo,它只在组件道具更改时才重新呈现组件。这里挑战是确保道具不会在每次渲染改变,在这种情况下React。备忘录不起作用。...如果你没有使用React Hooks ESLint插件,你会容易错过你效果一个依赖项,导致一个效果不能像它应该那样经常运行。这个容易修复——只需使用ESLint插件并修复警告。...Sass和其他CSS预处理器添加了一些非常棒功能,但在很大程度上仍然存在与普通CSS相同问题。 认为样式应该被定义为单独React组件,CSS应该和React代码放在一起。...CSS范围限定在单个组件上,可以组件重用为共享样式主要方法,并防止样式意外应用到错误元素上问题。

    4.7K40

    如何在React Native添加自定义字体

    在这篇指南中,我们探索使用 Google Fonts 在 React Native 应用添加自定义字体方法。...Google字体集成到项目中 在你项目根目录创建一个名为 assets 文件夹,并在其中创建一个名为 fonts 子文件夹。...然后,将你之前从静态文件夹复制所有TTF文件粘贴到你项目的 fonts 文件夹: 接下来,在根目录创建一个 react-native.config.js 文件,并将下面的代码粘贴到其中: 字体链接到要在项目文件中使用...在我们模拟器中看看这是什么样子: 使用自定义字体 假设你正在构建一个个人 React Native 项目,并且你得到了一些自定义字体,这些字体并不在 Expo 支持 Google 字体库。...如果 fontsLoaded 不为真,即 useFonts 钩子中指定字体没有成功加载,我们返回一个 Loading… 文本。否则,我们渲染应用组件并使用已加载自定义字体。

    51710

    CSS + JS = JSS , 这个库你知道吗?

    这样结果就是,除了框架 CSS,自己还要补充或覆盖很多样式。 CSS 通常就是单文件加上模板页面的 标签,你覆盖覆盖你,写到后面其实也就没有太多逻辑,就是堆叠。...是简单了,但也复杂了;即写起来简单了,但理解起来需要点基础: 比如:rounded-lg 意味着☞ border-radius: 0.5rem; 言而总之,现在样式表在前端开发还是相对独立,我们又试图找到一种合适代码样式组织方式...这也就是 JSS 最大好处, CSS 也纳入到组件化。...同时,这个库也不大,压缩后才 6 KB; 这个库,不是没人用,著名 Material UI 框架就用过;只不过现在从 JSS 升级为了 TSS,原理是一样。...: 样式表通常很长,这样一加进组件写法,组件代码量肯定会增加,如果 JSX 代码有比较长代码是样式,会不会也同样增加阅读负担?

    74420

    husky 7 + lint-staged 11+ prettier 2 + eslint 7 配置

    ; 不管是eslint还是commitizen,不过此处我们直接说一个全新没有任何沉淀; 下面的devDependencies涵盖了我们这次教程所有依赖,这是最重要一步~ { "name"...", }, 成功执行化,功能根目录会存在一个.husky目录; 最新版husky走是标准shell脚本(推荐姿势) commit-msg和pre-commit都是对应钩子; commit-msg...', // eslint-config-prettier标准用法,必须放在最后一个,用于关闭和eslint冲突规则 ], plugins: ['simple-import-sort', 'prettier...aspects: ['invalidHref', 'preferButton'], }, ], }, }; prettier配置(.prettierrc.json) 哇哈哈,是不是简陋...,就是暂存区内所有符合对应后缀走对应规则; 比如代码走了eslint和prettier,先规范,后格式化~ 比如样式只走格式化~~ 比如其他prettier支持必要文件也走一下格式化~ {

    1.5K40

    探索React Hooks:原来它们是这样诞生

    所以请耐心听我从头说起... 2013:第一个React API: React 开发者不喜欢 mixins,这是共享逻辑一个 API。...无状态函数组件 在同一时期,React 团队宣布了一种使用函数而不是类来创建组件新方法。当时主要想法是拥有一个仅接受属性并可以返回 JSX 组件。...下面是一个使用自定义钩子共享数据获取逻辑示例。你不必完全了解如何使用 useState 和 useEffect ,只需要了解它们为组件执行一些逻辑,想共享它。...如果另一个组件也想根据 productId 获取产品,那么需要重新编写下面高亮代码: 这里是相同逻辑移至自定义钩子。...如果你想要一个获取数据自定义 Hook,推荐来自 React Query 自定义钩子,名为 useQuery() 。 如今,如果你愿意,你仍然可以使用类。如果你觉得它们更容易使用,那完全取决于你。

    1.5K20

    校招前端一面必会vue面试题指南3

    除了核心功能默认内置指令 (v-model 和 v-show),Vue 也允许注册自定义指令// 指令使用几种方式://会实例化一个指令,但这个指令没有参数 `v-xxx`// -- 值传到指令...属性通过 genDirectives 生成指令代码在 patch 前指令钩子提取到 cbs ,在 patch 过程调用对应钩子当执行指令对应钩子函数时,调用对应指令定义方法说一下Vue生命周期...Vue宣称可以更快地计算出Virtual DOM差异,这是由于它在渲染过程,会跟踪每一个组件依赖关系,不需要重新渲染整个组件树。...这七种,只要这些方法执行改了数组内容,就更新内容就好了,是不是很好理解。...o vnode 虚拟节点 o oldVnode:上一个虚拟节点(更新钩子函数才有用)(2)使用场景普通DOM元素进行底层操作时候,可以使用自定义指令自定义指令是用来操作DOM

    3.2K30

    如何学习 React - 有效方法

    什么是ReactReact一个免费开源前端 JavaScript 库,用于通过应用程序划分为更小组件来构建复杂用户界面。它由 Facebook 和开发者社区维护。...在学习 JavaScript 时候,认为必须成为JavaScript绝对高手才能编写 React 代码(这是无稽之谈)。开始学习高级概念(作为初学者),失败了,认为不够好。...React router 是一个用于 React 路由库,它将帮助您在 React 应用程序浏览不同页面。了解加载特定页面的内容、在 URL 传递参数、重定向等。...API、React 路由器、自定义钩子 The Net Ninja 完整现代 React 播放列表 一些有用提示 不要试图一次学习所有内容,理解并接受您是初学者并花费足够时间来学习这些概念事实...不要害怕编写糟糕代码。就像我之前提到,你是一个初学者,在某些时候每个人都是。明白Progress >>>> Perfection 避免教程地狱。

    5.4K20

    科普 | 一文详解 CSS-in-JS

    现在 CSS-in-JS 确实也有点像当年味道,虽然并不是唯一解决方案,却提供了一个很大胆想法和尝试。...在 React 和 Vue 日益吞噬 Web 开发界,组件化思想和工程化日渐成熟,Atomic CSS 也算是比较早推出一个设计思想,笔者觉得 Atomic CSS 能做事情,在 CSS-in-JS...使用 CSS-in-JS 优点 组件化思考模式,不再需要维护一堆样式表。CSS-in-JS CSS 模型抽象到组件级别,而不是文档级别(模块化)。...当 JSS JSON 表示形式编译为 CSS 时,默认情况下会生成唯一类名。 动态浏览器私有化前缀,使用 CSS-in-JS 可以避免臃肿 CSS 代码。...笔者因早前开发过自己一套 React UI 库 React-UWP,也基于这套 UI 库做了 CSS-in-JS 方案,在过去两年中在开发虽然用组件不是很多,但是用了 CSS-in-JS 来做整体样式解决方案

    3K20

    一杯茶时间,上手 Gatsby 搭建个人博客

    在修改 starter 时踩到一个坑是复制组件时忘了修改 static query 查询语句名称,导致重名报错。 避免错误最好方式是在 GraphiQL 编辑器写好运行无误再复制到组件。...Netlify CMS 优点是开源免费,文章跟项目源码在一起,界面可以高度自定义,甚至可以自行扩充 React 组件,基本满足简单博客编写需求。...配置预览 CMS 中提供了文章预览界面,如果需要自定义只需修改 /src/cms/ 下相应文件即可,就是简单 React 组件。...Gatsby 在生成 GraphQL 节点时提供了钩子 onCreateNode,我们利用这个钩子往 fields 中放自定义数据。...这是[27]例子。 通过实现这几个功能我们了解了 Gatsby 页面生成方式以及其 Node APIs 基本使用。

    3.2K20

    现代 React 开发必备 13 个神库,路由、UI 组件库、拖拽、虚拟列表都齐了

    Hi,大家好 ssh,成为一个现代 React 开发者,不仅需要理解 React 核心概念,还需要对整个 React 生态系统了如指掌。...它有很多神奇特性,可以让 React 数据 Fetch 和开发体验丝滑。这些功能包括自动缓存、自动重新 Fetch、滚动恢复、Render-as-you-fetch 等。 2....MUI MUI Core 是一个 React 样式库,可以帮助你很快构建漂亮 UI。...如果你应用中使用了大量数据,这个库非常有用。 12. React Suite React Suite是一个企业系统产品 React 组件库集合。这是一个设计缜密并且对开发者友好 UI 框架。...它不是一个 React 库,而是一个 CSS 样式框架,在 React 开发者中用于样式化应用程序最受欢迎选项之一。

    3K30

    阿里前端二面必会react面试题总结1

    state、 各种组件生命周期钩子等,但是在函数定义,我们却无能为力,因此 React 16.8 版本推出了一个新功能 (React Hooks),通过它,可以更好在函数定义组件中使用 React...;自定义钩子(useXxxxx): 基于 Hooks 可以引用其它 Hooks 这个特性,我们可以编写自定义钩子,如上面的useMounted。...(5)都可以放在单独HTML文件,或者放在 Webpack设置一个更复杂模块。(6)都有独立但常用路由器和状态管理库。...对于异步请求,最好放在componentDidMount中去操作,对于同步状态改变,可以放在componentWillMount,一般用比较少。...,这是React背后在做事情,对于我们开发者来说,是透明,具体是什么样效果呢?

    2.7K30
    领券