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

Sentry 开发者贡献指南 - 前端(ReactJS生态)

组件 属性 margin padding flexbox 前端手册 本指南涵盖了我们如何在 Sentry 编写前端代码, 并特别关注 Sentry Getsentry...(sx) 文件夹中有一个 index 文件提供了一种隐式导入主文件而指定它的方法 index 文件的使用应遵循以下规则: 如果创建文件夹来对一起使用组件进行分组,并且有一个入口点组件,它使用分组内的组件...组件应该有一个关联的 .stories.js 文件来记录它应该如何使用。...使用 yarn storybook 本地运行 Storybook 或在 https://storybook.getsentry.net/ 查看托管版本 PropTypes 使用它们,要明确,尽可能使用共享的自定义属性...为了升级到最新版本的 emotion,我们需要迁移出 grid-emotion。 要迁移,请使用 emotion 将导入的 组件替换为带样式的组件

6.9K30

再见,CSS-in-JS

感谢 Dan Abramov Twitter 指出这一不准确之处。 这个问题是无解的,在运行时 CSS-in-JS 环境下它是无法修复的。...运行时 CSS-in-JS 库的工作方式是组件渲染时插入新样式规则,这在根本性能是对立的。 用 CSS-in-JS,更容易出错,特别是使用 SSR 组件库时。... Emotion 的 GitHub 仓库中,我们收到了大量这样的 issue: 我使用 Emotion 时启用了服务器端渲染 MUI/Mantine/(另一个基于 Emotion组件库),由于...(Example issue) Emotion React 17 React 18 中的 SSR 支持不同。这对兼容 React 18 的流式 SSR 是必需的。...分析火焰图 下面是上述测试中单个列表项的火焰图: 如你所见,有大量渲染的组件——这些是我们使用css prop 的“样式原语”。

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

React | 借助Pragmatic Drag and Drop实现高性能拖拽

因为使用的是浏览器支持的原拖拽功能,并且极小的核心包(不到5kb),近期迅速火起来。所以今天来结合React快速实现结合一下。二....快速上手2.1 环境准备没有使用React官方推荐的Next脚手架,而是选择了create-react-app,并且使用TypeScript模板。再手动引入拖放库。...核心库版本选择如下:React:18.3.1typescript: 4.9.5@atlaskit/pragmatic-drag-and-drop: 1.1.7更详细的依赖放在了文章末尾2.2 目标介绍可能由于版本配置原因...renderSquares中,修改div成一个单独的格子组件调用方squares.push( {piece && pieceLookup...2.8 链接拖与放在这一步,主要使用monitorForElements。使用这个“监听器”的好处就是减少不同组件间的相互传值。

35440

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

想象一下,一个待办事项列表应用程序中,“X”按钮删除待办事项时是不可见的,直到你将鼠标悬停在该待办事项。有些设计师喜欢这样的“整洁”,但这需要用户四处搜寻,弄清楚如何执行基本操作。...用颜色来传达意思。显示表单时,使用粗体颜色来吸引用户注意提交按钮!如果有一个永久删除某些内容的按钮,它最好是红色的!查看Bootstrap的按钮提醒来了解这一点。...最佳实践 使用 Typescript 普通的JavaScript是一种不错的语言,但是缺少类型检查使得它不适合任何小项目。用TypeScript编写所有的代码将极大地提高应用程序的稳定性可维护性。...我认为样式应该被定义为单独的React组件,CSS应该React代码放在一起。将CSS的范围限定在单个组件,可以将组件重用为共享样式的主要方法,并防止样式意外应用到错误元素的问题。...在其他类似库的帮助下,你可以通过Emotion、styles-components或CSS模块来实现组件范围的、并置的样式。我的个人偏好是带有css props的Emotion

4.7K40

前端应该掌握的Typescript基础知识

TypeScript 编译工具可以运行在任何服务器任何系统TypeScript 是开源的。..., 特别是一些很低级的错误 帮助我们写代码的时候提供更丰富的语法提示, 方便的查看定义对象属性方法 比如: 你给函数传了一个对象, 你函数实现的时候还得记住对象里面都有啥参数, 你定义的参数名字是啥...类型断言用来告诉编译器 “我知道自己干什么”, 有 尖括号 as 两种写法....可以通过配置 strictFunctionTypes 参数修复这个问题 枚举的兼容性 枚举类型与数字类型兼容,并且数字类型与枚举类型兼容 不同枚举类型之间是兼容的 //数字可以赋给枚举 enum Colors...": true // 允许commonjs模块es module进行转换 兼容其他模块的导入方式 }, "include": [".

56010

看完了 2021 CSS 年度报告,我学到了啥?

图片展示了拉丁文,希伯来文日语三种不同的书写方式。 逻辑属性 不仅可以让前端的布局逻辑更加严谨,而且能让开发者以更少的代码写出兼容性更好的页面。...我之前很多篇文章中都提到过,是一个很好用的属性: Web图像组件设计的最佳实践 Chrome 88 新功能解读 解读新一代 Web 性能体验质量指标 给定图片的纵横比后,浏览器可以自动计算图片尺寸,...混合模式 (Blend Modes) ,是一种 CSS 数据类型,也就是我们常说的混合模式,可以用来描述当元素重叠时,颜色应当如何呈现。...Less:日常开发 Less Scss 差不多,都是偏原生语法,比较容易接纳,less 有个优势就是可以“不用编译”,为啥加引号呢,因为它确实可以做到手动编译,引入 less 的后面引入 less.js...我个人用的是 Emotion CSS ,它 Styled Components 基本差不多,不过它对 sourcemap 的支持会更好一点。

80720

为什么 CSS-in-JS 说拜拜

如果你许多元素使用css prop,Emotion 的内部组件会使React DevTools变得非常混乱,如图所示。 丑 1.频繁插入CSS规则迫使浏览器做很多额外的工作。...我正在使用Emotion与服务器端渲染MUI/Mantine/(另一个Emotion驱动的组件库),它不能工作,因为......使用火焰图(FlameGraph)分析程序性能 下面是上述测试中单个列表项的火焰图: 正如你所看到的,有大量的组件被渲染--这些是我们的 "tyle primitives",使用...虽然每个只需要0.1-0.2毫秒的渲染时间,但由于组件的总数非常大,所以这就增加了。...实用类就是是元素设置一个单一的CSS属性的CSS类。通常情况下,结合多个实用类来获得所需的样式。对于上面的例子,可以这样写。

2.3K20

聊聊 React 组件库的技术选型与设计

svg 的基本能力的兼容性除了 IE11 以下不支持动画缩放,基本没问题,而 svg effect(主要是使用 transform、filter 等属性) android4.4 以上的支持良好。...组件库的核心设计 深色模式(Dark Mode)适配 事实,本小节讨论的是业务使用组件库的 Dark Mode 能力时会遇到的兼容性问题实际业务场景。...且我们只要定义好颜色变量,并约定使用它,则开发组件的时候只写一次就可以支持多个主题。 可惜的是 CSS 变量 android4、IE11 及以下等有兼容性问题。我们有如下三种方案: ?...: 16px; } 小结:RTL 的布局适配我们可以使用 RTL 敏感属性,它与 Atomic CSS 冲突,合适的情况下可以结合起来使用。...对于弹层组件,可以封装一个 Portal 组件提供能力等等。 Metrial UI 中还抽象了一个 Box 组件,所有的组件都基于 Box 组件编写,实现全局布局样式的控制。

1.8K10

Vue3 后台管理系统模板推荐

配置文件:使用 fsnotify viper 实现yaml格式的配置文件。 日志:使用 zap 实现日志记录。...vue3-composition-admin(github的标星数为1.9k)是一个后台前端解决方案,它基于 vue, typescript element-ui 实现,项目都是以composition...1.3k)是一个基于 Vue 3、Vite3、TypeScript、NaiveUI、Pinia UnoCSS 的清新优雅的中后台模版,它使用了最新的前端技术栈,内置丰富的主题配置,有着极高的代码规范...,使用高效率的 npm 包管理器 pnpm TypeScript:应用程序级 JavaScript 的语言 主题:丰富可配置的主题、暗黑模式,基于原子 css 框架 - UnoCSS 的动态主题颜色 代码规范...,加入请求结果数据转换的适配器 预览效果 vue-admin-box (929) vue-admin-box(github的标星数为929)是一个免费并且开源的中后台管理系统模板

7.4K32

TDesign 更新周报(2022年7月第1周)

dialog 滚动失效问题Form: 修复 number 规则校验生效的问题Table:动态数据合并单元格,删除行数据时,未更新合并单元格状态修复自定义筛选组件不显示问题ColorPicker: 修复颜色选择器样式异常...默认值导致的无法设置的问题DatePicker: 修复日期选择器表单禁用后还能点击的问题Tree: getRightData 方法兼容 value 的 aliasForm: 修复传 form.onSubmit...: 修复树形结构设置 indent = 0 无效问题Slider: 使用 InputNumber 时使用 range 属性情况下传入 min 或 max 会导致手动输入显示 NaN 问题Select:...异步加载开启,与api保持一致DatePicker: 修复 presetsPlacement 生效的问题colorpicker: 修复最近使用颜色的功能Table: 树形结构行选中,没有配置 tree.../releases/tag/0.14.0Vue3 for Mobile 发布 0.9.0❗ Breaking ChangesProgress: 移除 size theme 属性,存在兼容更新Picker

2.2K10

React教程:组件,Hooks性能

大数情况下用受控组件是可行的,不过也有一些例外。例如使用非受控制组件的一种情况是 file 类型输入,因为它的值是只读的,不能在编码中去设置(需要用户交互)。另外我发现受控组件更容易理解使用。...然而,有些情况下它们是必要的,特别是DOM元素(例如:用编码方式改变焦点)。附加到 React 组件元素时,你可以自由使用所引用的组件中的方法。... React 中另一个流行的解决方案是 CSS-in-JS(例如,emotion 库)。再说一点,CSS 模块 emotion(或者一般来说是CSS-in-JS)对 React 没有限制。...之所以使用它,是因为它允许 React 检查你是否做了不好的事情,例如从常规JS函数调用hook。 类型检查 支持 Flow TypeScript 之前,React有自己的属性检查机制。...React社区非常棒,它总是产生新的创意,核心团队一直不断努力改进 React,并添加新功能修复旧问题。

2.6K30

TDesign 更新周报(2022 年 5 月第 1 周)

时样式冲突问题 TS类型TableColumns[0]严格模式下的使用问题 Table:renderExpandedRow改为非必填 全局配置:修复animation属性excludeinclude...value属性,新增了monthyear属性 BugFixes Dialog:修复alert类型错误 Form:修复help节点状态问题 Transfer:修复选择无效搜索无效 DataPicker...for WeChat 发布 0.10.1 版 BreakingChanges Tabs:不再支持slot类型的label,存在兼容更新 BugFixes Picker:修复滑动延迟的问题 Avatar...t-picker-column改成t-picker-item,存在兼容更新 DateTimePicker:value从非受控改成受控,存在兼容更新 Features Overlay:新增遮罩层组件.../tag/0.3.0 小程序架微信开发者工具 官方通用小程序 demo 智慧零售模板均已架 微信开发者工具,可以创建项目时选择使用 MTY4ODg1MDU2MTcyMTcyOQ_10501_lkUEFHwvBjebgBza

5.3K50

3w字长文带你【从0开发一个自己的前端组件库】 | 技术创作特训营第五期

前言 这篇文章从0介绍如何开发组件库。...,所以我们做的组件库也需要设置色彩系统的样式,因为我们使用的是scss,所以我们可以将这些系统的样式颜色通过变量来定义,方便复用。...default; // 其他组件颜色变量 重置样式 新建src/styles/_reboot.scss,这里为了解决浏览器样式兼容性问题 // stylelint-disable at-rule-no-vendor-prefix...: string; } // ButtonHTMLAttributes 是 React 中的一个内置泛型类型,它用于表示 HTML 按钮元素 () 可以接受的属性。... // AnchorHTMLAttributes 是 React 中的一个内置泛型类型,它用于表示 HTML 锚点元素 () 可以接受的属性

49151

Vite中接入现代化的CSS 工程化方案

为了兼容不同的浏览器,我们需要对一些属性(如transition)加上不同的浏览器前缀,比如 -webkit-、-moz-、-ms-、-o-,意味着开发者要针对同一个样式属性写很多的冗余代码。...接着我们 App.tsx 应用这个组件:import { Header } from "....而styled-componentsemotion已经提供了对应的 babel 插件来解决这些问题,我们 Vite 中要做的就是集成这些 babel 插件。...import "virtual:windi.css";这样我们就完成了 Windi CSS Vite 中的接入,接下来我们 Header 组件中来测试,组件代码修改如下:// src/components...不过使用attributify的时候需要注意类型问题,你需要添加types/shim.d.ts来增加类型声明,以防类型报错:import { AttributifyAttributes } from '

84550

Vue项目进阶:再谈Pinia函数式(composition API)用法

认识Pinia 相信在座各位假如使用Vue生态开发项目情况下,对Pinia状态管理库应该有所听闻或正在使用,假如还没接触到Pinia,这篇文章可以帮你快速入门,并如何在企业项目中更优雅封装使用。...API开发模式,并完整兼容Typescript写法(这也是优于Vuex的重要因素之一),适用于所有的vue项目。...Typescript类型提醒是这样的: 4....全局注册机 重复打包问题 在上面的例子我们可以知道,使用store时要先把store的定义import进来,再执行定义函数使得实例化。但是,项目逐渐庞大起来后,每个组件使用时候都要实例化吗?...这样以后,只要我们项目任何组件使用pinia时,只要import appStore进来,取对应的store实例就行。

1.3K20

Vue项目进阶:再谈Pinia函数式(composition API)用法

认识Pinia 相信在座各位假如使用Vue生态开发项目情况下,对Pinia状态管理库应该有所听闻或正在使用,假如还没接触到Pinia,这篇文章可以帮你快速入门,并如何在企业项目中更优雅封装使用。...API开发模式,并完整兼容Typescript写法(这也是优于Vuex的重要因素之一),适用于所有的vue项目。...Typescript类型提醒是这样的: [image.png] 4....全局注册机 重复打包问题 在上面的例子我们可以知道,使用store时要先把store的定义import进来,再执行定义函数使得实例化。但是,项目逐渐庞大起来后,每个组件使用时候都要实例化吗?...这样以后,只要我们项目任何组件使用pinia时,只要import appStore进来,取对应的store实例就行。

3.1K20

为什么选择使用 TypeScript

(当然你也可以声明变量时指定类型或者使用 any 类型来达到 JS 的动态类型效果,让 TypeScript 变成 AnyScript ,任性~ ) let name: string = '陈皮皮'...: '吴彦祖', nickname: '陈皮皮', age: 18, } —▼— 联合类型 使用联合类型(Union Types)允许你声明变量或接收参数时兼容多种类型。...Creator 中 TS JS 使用上的区别 声明组件 TypeScript 脚本中 class 的声明方式 ES6 Class 相似,并使用了装饰器 @ccclass 来将普通 class...({ extends: cc.Component, }); —▼— 声明属性 TypeScript 脚本中需要使用装饰器 @property 来声明属性,基本类型可以传参数(参数使用...项目模板中选择 Hello TypeScript ,就可以创建一个含有 TypeScript 相关配置基本组件的项目。

2.3K30

技术天地 | CSS-in-JS:一个充满争议的技术方案

虽然 React 本身组件提供 style 属性,可以让用户以对象、内联样式的方式,将样式应用于渲染后的 DOM 元素,在一定程度上实现了样式的组件化封装。...这种方法的缺点是会为团队带来很大的挑战,对于全局和局部规划选择器的命名,团队对于这种方法需要有共识,即使熟练使用的情况下,使用中依然有着较高的思维负担维护成本。...发展初期,社区各个方向上探索着用 JS 开发维护 CSS 的可能性。每隔一段时间,都会有新的语法方案或实现,尝试补充、增强或是修复已有实现。...甚至 Chrome 新版中为了 CIJ 的需求修复了一个问题【10】,这也可以从侧面看出来 CIJ 已经得到了浏览器厂商的重视。 争议主要集中以下几点: 使用 CIJ 是一种伪需求。...移除运行时性能损耗 框架内部,Emotionstyled-components浏览器中都有一个运行时,这不光增加了最终构建产物大小,更严重的问题是还带来了运行时成本。

2.3K40

为什么选择 TypeScript

Cocos Creator 中 TS JS 使用上的区别」 「6. 如何创建 Cocos Creator TS 项目」 「7....: '吴彦祖', nickname: '陈皮皮', age: 18, } ---- 联合类型(Union Types) 使用「联合类型」允许你「声明变量或接收参数时兼容多种类型」。...---- Creator 中 TS JS 使用上的区别 声明组件 TypeScript 脚本中 class 的声明方式 ES6 Class 相似,并使用了装饰器 「@ccclass」 来将普通...({ extends: cc.Component, }); 声明属性 TypeScript 脚本中需要使用装饰器 「@property」 来声明属性,基本类型可以传参数(参数使用 JavaScript...,项目模板中选择 「Hello TypeScript」 ,就可以创建一个含有 TypeScript 相关配置基本组件的项目。

1.6K00
领券