首页
学习
活动
专区
工具
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

    useTransition真的无所不能吗?🤔

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

    38810

    亲手打造属于你 React Hooks

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

    10.1K60

    「前端架构」使用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

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

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

    74120

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

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

    49910

    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

    一杯茶时间,上手 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 开发者中用于样式化应用程序最受欢迎选项之一。

    2.9K30

    科普 | 一文详解 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

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

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

    2.7K30
    领券