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

你不知道的 React 最佳实践

当您有一个大的 CSS (SCSS)文件时,您可以使用全局前缀后跟 Block-Element-Modifier 约定来避免名称冲突。 当应用程序变大时,这种方法是不可伸缩的。...在最佳实践中,在 components 文件夹中创建一个 __test__ 文件夹。 使用组件的名称作为测试文件 . test.js 的前缀....使用 React Developer Tools?️ React 开发工具是 Chrome[19] 和 Firefox[20] 的扩展。...正如你所看到的,React Developer Tools 扩展对于测试和调试来说是非常有价值的工具,并且可以真正理解这个应用程序发生了什么。 总结 ✌️ 本文描述了 React 中的最佳实践。...: https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?

3.3K10

10 种 JavaScript 最常见的错误

当你读取一个未定义的对象的属性或调用其方法时,这个错误会在 Chrome 中出现。 您可以很容易的在 Chrome 开发者控制台中进行测试。 ?...您可以在 Safari Developer Console 中轻松测试。这与第一点中提到的 Chrome 的错误基本相同,但 Safari 使用了不同的错误消息提示语。 ?...您可以在 Safari Developer Console 中轻松测试。 ?...在我们工作中,这种错误可能发生的一种场景是:如果在加载元素之前尝试在 JavaScript 中使用元素。 因为 DOM API 对于空白的对象引用返回值为 null。...ReferenceError: event is not defined 当您尝试访问未定义的变量或超出当前作用域的变量时,会引发此错误。 您可以在 Chrome 浏览器中测试。 ?

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

    程序员的你是否熟练掌握Chrome开发者工具?

    还有一点就是可以在Source标签元素面板中查看元素属性,比如通过ajax返回的数据对象封装到data中,我们设置断点后直接将鼠标放到数据data中可以看到其中返回的是什么样的数据,比如data...中是实体对象的每个属性字段值。...当开发人员决定采用修改之后的脚本时,需要将其复制到脚本的源文件中。...使用控制台打印变量值或方法的返回结果 当断点被触发进入到调试模式时,我们可以将当前任意存在的变量或方法输入到控制台中,按下回车后,控制台便会返回相关的结果。...写在最后 我们借助 Chrome 开发者工具的支持,可以提高网页应用程序开发与调试的效率。想了解更多,请参考资料Chrome Developer Tools 官方文档

    1.1K40

    mask

    这个属性很类似于background属性,但不同的是,background是背景在元素下层,mask是遮罩在元素上层,且mask不支持直接指定color,只支持image对象如图片、svg等 同样两者都是组合属性...mask: url(https://waibi.oss-cn-chengdu.aliyuncs.com/blog/vampireachao/bilibili-line.svg) no-repeat; 但我们在chrome.../blog/vampireachao/bilibili-line.svg) no-repeat; 后续所有mask-*属性在chrome里都需要该前缀,上述代码我们编写一串代码看看效果 是什么意思?mask最近为什么这么火呢?看完mask后我都惊呆了! 大家都知道,mask最近很火,究竟是为什么很火呢?mask到底是什么梗?...以上就是小编为大家带来的的关于mask是什么意思,mask是什么梗的内容。 欢迎大家在评论区和小编一起讨论,畅所欲言。

    69840

    JavaScript 内存泄露的4种方式及如何避免

    它们被定义为不可回收(除非定义为空或重新分配)。尤其当全局变量用于临时存储和处理大量信息时,需要多加小心。如果必须使用全局变量存储大量数据时,确保用完以后把它设置为 null 或者重新定义。...此时,同样的 DOM 元素存在两个引用:一个在 DOM 树中,另一个在字典中。将来你决定删除这些行时,需要把两个引用都清除。 ? 此外还要考虑 DOM 树内部或子节点的引用问题。...timeline 可以检测代码中不需要的内存。在此截图中,我们可以看到潜在的泄露对象稳定的增长,数据采集快结束时,内存占用明显高于采集初期,Node(节点)的总量也很高。...以 Chrome 文档中的代码为例: ? 当 grow 执行的时候,开始创建 div 节点并插入到 DOM 中,并且给全局变量分配一个巨大的数组。通过以上提到的工具可以检测到内存稳定上升。...在 Chrome 中打开例子,打开 Dev Tools ,切换到 timeline,勾选 memory 并点击记录按钮,然后点击页面上的 The Button 按钮。过一阵停止记录看结果: ?

    4.8K52

    JavaScrip最容易犯的十大错误及其避免方法()

    当您异步获取数据时,组件将在加载数据之前至少呈现一次 - 无论是在构造函数,componentWillMount还是componentDidMount中获取它。...您可以在IE Developer Console中对此进行测试。 这相当于Chrome中的错误“TypeError:’undefined’不是函数”。...因此,使用JS命名空间时最安全的选择是始终使用实际命名空间作为前缀。 Rollbar.isAwesome(); 6....Uncaught RangeError 这是在几种情况下Chrome中发生的错误。 一种是当你调用一个不终止的递归函数时。 您可以在Chrome开发者控制台中对此进行测试。 8....ReferenceError: event is not defined 当您尝试访问未定义或超出当前范围的变量时,将引发此错误。 您可以在Chrome浏览器中轻松测试它。

    18910

    JavaScript 风格指南

    dispatch(location); }); 避免重复的描述 当类/对象名已经有意义时,对其变量进行命名不需要再次重复。...当确实需要多个参数时,大多情况下可以考虑这些参数封装成一个对象。 JS 定义对象非常方便,当需要多个参数时,可以使用一个对象进行替代。...然而,使用 getters 和 setters 获取对象的数据远比直接使用点操作符具有优势。为什么呢? 当需要对获取的对象属性执行额外操作时。 执行 set 时可以增加规则对要变量的合法性进行判断。...在 JS 中,当一个类需要许多参数设置才能生成一个对象时,或许大多时候不需要设置这么多的参数。此时减少对配置参数数量的需求是有益的。...当需要继承时,优先选用 classes。 但是,当在需要更大更复杂的对象时,最好优先选择更小的 function 而非 classes。

    87120

    10 种最常见的 Javascript 错误

    当你读取一个未定义的对象的属性或调用其方法时,这个错误会在 Chrome 中出现。 您可以很容易的在 Chrome 开发者控制台中进行测试(尝试)。 ?...您可以在 Safari Developer Console 中轻松测试。这与 1 中提到的 Chrome 的错误基本相同,但 Safari 使用了不同的错误消息提示语。 ? 3....您可以在 Safari Developer Console 中轻松测试。 ?...在现实世界的例子中,这种错误可能发生的一种场景是:如果在加载元素之前尝试在 JavaScript 中使用元素。 因为 DOM API 对于空白的对象引用返回值为 null。...ReferenceError: event is not defined 当您尝试访问未定义的变量或超出当前范围的变量时,会引发此错误。 您可以在 Chrome 浏览器中轻松测试。 ?

    6.8K80

    Debug的那些事儿

    我们写代码的多多少少有一些出错的几率,掌握Debug还是很重要的,记得第一次入行写企业系统时,对此一无所知,后来还是去网路上以及问前辈,我印象中还是在博客园里看到有人用firebug,才知道原来有firefox...不客气的说,为了兼容IE,费了我们很大的精力,处理诸 * 号之类的特殊样式,在脚本上会处理像window.event这样的event对象,有意思的是,我们依然很少会打开IE的开发者调试工具,只有到了“山穷水尽...说实话,调试这门手艺活儿,时至今日的演变,我又很少使用Chrome dev tool了,而是用VS code自带的debug来调试,在编辑器中完成几乎80%以上的工作。...为了用好,推荐大家有时间时,阅读: https://developers.google.com/web/tools/chrome-devtools/?...hl=zh-cn https://developer.chrome.com/devtools 这个工具可以带来的会是更多的东西,想想Node.js,想想Weex,你就会发现确实的牛逼

    50820

    1000个项目中前10名的JavaScript错误介绍

    当你读取一个未定义的对象的属性或调用其方法时,这个错误会在 Chrome 中出现。 您可以很容易的在 Chrome 开发者控制台中进行测试(尝试)。...当异步获取数据时,不管它是在构造函数componentWillMount还是componentDidMount中获取的,组件在数据加载之前至少会呈现一次,当 Quiz 第一次呈现时,this.state.items...您可以在 Safari Developer Console 中轻松测试。这与 1 中提到的 Chrome 的错误基本相同,但 Safari 使用了不同的错误消息提示语。 3....您可以在 Safari Developer Console 中轻松测试。...ReferenceError: event is not defined 当您尝试访问未定义的变量或超出当前范围的变量时,会引发此错误。 您可以在 Chrome 浏览器中轻松测试。

    6.2K10

    Devtools 老师傅养成 - Sources 面板

    Chrome Developer Tools v2 课程[3] 参考 3:来自 作者 Tomek Sułkowski 在 medium 的系列文章[4] Devtools脑图.png[5] Sources...连接本地文件来使用开发者工具的实时编辑器 七种断点类型 行断点:代码运行到当前行之前暂停执行 在源代码添加debugger关键字 或者点击Sources面板中的源代码的行号 条件行断点:当满足条件时才会触发该断点...(此处的 BlackBox 为动词),在 Call Stack 堆栈中会将该脚本隐藏,单步调试时也不会步入脚本中的任何函数 function animate() { prepare(); lib.doFancyStuff...Javascript source maps和Enable CSS source maps source map 映射信息存在 json 对象中,保存在 .map 文件中,可以由编译程序添加注释//#.../chrome-devtools/ [3] Mastering Chrome Developer Tools v2 课程: https://frontendmasters.com/courses/chrome-dev-tools-v2

    1.8K31

    JavaScript面向对象编程-第三版不完全系统解读

    2、面向对象编程 先给下原文描述: 我来参考翻译一下,不当之处,请大家指正和补充: 在深入讲解JavaScript之前,我们先看一下通常人们所说的面向对象是什么,以及在编程时的要求。...蜂鸟和鹰都是鸟,因此它们可以被归为Birds类。在OOP编程思想中,一个类被看成一个创建对象(东西)的蓝图或者一个模板。对象的另外一个名称就是实例,所以我们可以说鹰鸟类的一个实例。...ver hero = {};这句话意思是,该对象不是空的,只是没有使用的意思!...(){ return this.name; //表示当前对象的成员 } }; //呼叫对象的方法 hero.sayName(); 当我们使用this值时,表示我们就是说该对象或者说是当前对象的意思...我们简单的复制原型是非常有效的,但是只是单方向的有效,因为所有子对象的原型和父对象的原型都是指向相同的对象,因此当有一个子对象修改原型属性时,那么父对象也会变化,并且它的兄弟对象也会改变。

    51430

    Devtools 老师傅养成 - Memory 内存

    Chrome Developer Tools v2 课程[3] 参考 3:来自 作者 Tomek Sułkowski 在 medium 的系列文章[4] Devtools脑图.png[5] 内存 &...DOM 节点存储在原生内存中。如果此值正在增大,则说明正在创建 DOM 节点。 JavaScript Memory列表示 JS 堆。此列包含两个值。实际大小表示页面上的对象正在使用的内存量。...如果此数字在增大,要么是正在创建新对象,要么是现有对象正在增长。...,即可点击左上角record开始记录内存 Heap snapshot堆快照,记录当前时间点内存中页面 js 对象和 dom 节点的分配情况 Allocation instrumentation on timeline.../chrome-devtools/ [3] Mastering Chrome Developer Tools v2 课程: https://frontendmasters.com/courses/chrome-dev-tools-v2

    1.6K42

    Google Chrome不仅仅是浏览器

    Google Chrome除了本身极快速的响应外,还有很多插件和功能值得推荐使用的,下面就粗略介绍一下这些宝藏,快快pick起来,为你的日常开发工作增添一双起飞的翅膀!...02 — Web Developer Tools https://chrome.google.com/webstore/category/ext/11-web-development?...上面只是简单介绍了一些常用几个Developer Tools工具,更多技能等你们去打卡和挖掘。...开发者调试 相信很多前端或者全栈开发人员都用过这个功能,很多场景都会用到这个工具,开发页面尤其是在调试前端和后台的API接口时,简单的按F12或者点击浏览器的“开发者工具”即可弹出。...是什么让谷歌Chrome能够在短短十年内进入一个全新的行业,并且占据主导地位呢?答案是:从根本上彻底改造浏览器。 谷歌从一开始就把Chrome视为一个平台。

    63810

    React教程(详细版)

    Tools ) 这里工具的具体安装方式就不多说了,由两种方式,一种是翻墙,直接在chrome浏览的商城去下载,还有一种方式是在浏览器扩展程序中打开开发者模式,然后导入已下载的插件文件即可 3.2...原因就写在图中,那我们要怎么处理才能让该方法拿到该组件的实例对象呢?来,看下面。。 在构造函数中加一句这个语句就可以了,那这行代码是什么意思呢?...构造函数中的this永远指向该组件的实例对象,所以=右侧意思就是该组件实例对象自身此时还没有该方法,他就会去原型对象上看有没有,显然这里是有的,然后调用bind方法,该方法做两件事,一、创建一个新的函数...) 组件render中的this指的是组件实例对象 状态数据不能直接赋值,需要用setState() 组件自定义方法中的this为undefined,怎么解决?...第一次在页面刚进来执行render渲染的时候,react会把当前节点当成参数赋值给组件实例,当组件更新的时候(状态改变时),它又会执行一次render,这个时候,react官方说明了这点,它会执行两次,

    1.8K20

    0202年了, Chrome DevTools 你还只会console.log吗 ?

    当你在元素面板选择一个元素或在分析器面板选择一个对象,记录都会存储在栈中。可以使用 $x来操作历史栈,x 是从 0 开始计数的,所以 $0 表示最近选择的元素, $4 表示最后选择的元素。 ?...事件监听器 monitorEvents(object[, events])/unmonitorEvents(object[, events]) monitorEvents(object[, events]),当指定的对象上发生指定的事件之一时...重写 Overrides 在 Chrome DevTools 上调试 css 或 JavaScript 时,修改的属性值在重新刷新页面时,所有的修改都会被重置。...workspaces 快捷键 访问 DevTools 访问 DevTools Windows Mac 打开 Developer Tools (上一次停靠菜单) F12、Ctrl + Shift + I...Cmd + Opt + I 打开/切换检查元素模式和浏览器窗口 Ctrl + Shift + C Cmd + Shift + C 打开 Developer Tools 并聚焦到控制台 Ctrl + Shift

    1.2K20

    【软件设计】TypeScript 中的 SOLID 原则

    在以下不好的示例中,您会看到如何存在多重责任。首先,我们为一本书建模,而且,我们将这本书保存为一个文件。...calculateArea(shape: Shape): number { return shape.calculateArea(); } } 里氏替换原则 (LSP) “使用指向基类的指针或引用的函数必须能够在不知情的情况下使用派生类的对象...使用指向上层类的指针或引用的下层类必须能够在不知情的情况下使用派生类的对象。这些低级类应该只是扩展上级类,而不是改变它。 那么我们在下一个坏例子中看到了什么?我们上了两节课。...这到底是什么意思,对吧?嗯,其实很简单。让我们揭开它的神秘面纱!...我们不是在 SoftwareProject 类中以单一方式初始化 FrontendDeveloper 和 BackendDeveloper,而是将它们作为一个列表来遍历它们,以便调用每个 develop

    30720

    渐进式Web应用入门-ServiceWorker

    即使在比较糟糕的网络环境下,也能够快速地加载,且能够推送相关消息, 也可以像原生应用那样添加至桌面或浏览器主屏,能够有全屏浏览的体验。 PWA 和 Service Worker 是什么关系?...在activate中,判断当前页面是否在上文声明的 filesToCache 列表中,如果是则接管网页的显示。...这两个事件一个是当网络请求时,或者其他网页发出了消息时。 本文只讲如何让你的网页无网络也能访问,没有讲这两个事件,下一篇文章再给大家讲讲 service worker 深度使用。...调试 用 Chrome Developer Tools 调试 Service Worker 非常方便。...首先 run 起你本地的 server(我博客是 jekyll 生成的,所以直接用了 jekyll 服务),然后 Chrome 右上角三个点,More Tools,Developer Tools。

    68630
    领券