【澳门葡京】React调试技巧,Native调试技巧与体会

Chrome开发者工具不完全指南(二、进阶篇)

【澳门葡京】React调试技巧,Native调试技巧与体会。2015/06/23 · HTML5 · 3
评论 ·
Chrome

原文出处:
卖烧烤夫斯基   

上篇向我们介绍完了基础功用篇,本次分享的是Chrome开发工具中最有效的面板Sources
 Sources面板几乎是自个儿最常用到的Chrome效率面板,也是在我看来决解一般问题的最重要职能面板。平日即使是开发境遇了js报错或者其他代码问题,在审美三次自己的代码而一无所获之后,我第一就会打开Sources拓展js断点调试,而它也几乎能解决自己80%的代码问题。Js断点那些效应令人兴奋不已,在并未js断点效率,只可以在IE(万恶的IE)中靠alert弹出窗口调试js代码的一时(特别alert一个object根本不会理你),这样的开销环境对于前端程序员来说简直是一场噩梦。本篇作品讲会介绍Sources的切切实实用法,帮衬各位在开发进程中够欢乐地调试js代码,而不是因它而疯狂。首先打开F12开发工具切换来Sources面板中:

澳门葡京 1

Sources功用面板是资源面板,他重点分为多少个部分,六个部分并不是单独的,他们相互关联,互动共同促成一个根本的效益:监控js在执行期的移位。简单的话就是断点啊。

率先我们来看区域1,它的效率有些近乎于Resources面板,紧假若突显网页加载的台本文件:例如css,
js等资源文件(它不分包cookie,img等静态资源文件)。

 

澳门葡京 2

 

 

 

区域1的导航条上有四个tab切换选项,他们都存有两样域名和条件下的js和css文件,大家首先来证实Sources(资源)选项的效劳:

Sources:
包含该品种的静态资源文件。双击选闽南语件,该公文内容会在区域2中显示,假诺您选中的是js文件,那么你可以在区域2种单击行号举办断点调试,只要js执行到了您所标记的这一行,它会终止向下举行并且等待你的一声令下:

澳门葡京 3

从上图可以看到js执行到断点处时各类区域的扭转,首先是区域3中的Breakpoints记录音信会变高亮,然后是区域4中Scope 分选中列出了断点处私有和国有的变量音信,这样,我可以很直观地领略,此时此刻js的实施情状。同样的,你可以把鼠标放到区域2种的某个变量上,浏览器会弹出一个小框框,框框里面则是您悬浮其上的变量所有音讯:

 

澳门葡京 4

然后,你能够按F10随之js执行的路子一步一步地走下来,如若你相逢了一个函数包含着此外一个函数,那么您可以按F11进入到个函数中去阅览它的代码执行活动。你也足以由此点击区域1底部的一一图标对js代码举办跟踪。但是自己指出您使用急迅键,故名思义,因为它相比高效便宜。不过怎么用完全遵照个人习惯来啊。下图是逐一按钮的效能效果。

 

澳门葡京 5

 

 在上图绿色圆圈中数字,它们分别表示:

  1、截至断点调试

  2、不跳入函数中去,继续执行下一行代码(F10)

  3、跳入函数中去(F11)

  4、从执行的函数中跳出

  5、禁用所有的断点,不做任何调试

  6、程序运行时遇上特别时是否中断的开关

接下去在区域4种切换来Watch
Expressions
 选项,它的坚守是为眼前断点添加说明式,使得每回断点往下走一步都会实施你写下的js代码。需要留意的是其一效用必须谨言慎行使用,因为这恐怕会导致你写下的监控代码段会不断地被执行。

澳门葡京 6

 

为了防止你的调试代码重复执行,我们可以在调试时一向在console控制台上两次性地出口当前断点处的音讯(推荐这样做)。为了证实我们在console面板中持有的是方今断点环境,我门可以对照断点执行前后的this值变化。

澳门葡京 7   
  澳门葡京 8

倘诺你觉得在断点的时候为了看一个变量必须借用console面板输出的方法来查看会相比麻烦,那么您可以革新最新版的Chrome,它已经为大家缓解了那多少个烦恼。为了有利于开发者调试,在这点上Google曾经完结了极端,就在前几日更新过Chrome未来,卤煮意外地觉察了断点时监控环境变量的其它一种艺术,这种措施极为清晰,在断点调试的时候,区域2中会自动呈现每个变量的值,每一遍代码往下走的时候这一个值都回时时更新。那让开发者对当前环境变量几乎可以说是侦破。(此成效有一个小瑕疵,这就是无能为力查看数组或者目的的现实索引和值,然而自己信任google会立异它的。)

澳门葡京 9

 

当你的体系曾经线上,现身了一个bug,你修复了之后无法见到它实在在线上的功用,那么您可以在开辟线上的花色,直接在浏览器中修改代码然后看到功效。这样的效率往往是最直白的,那种措施也能帮你省去频繁验证发布的劳动,毕竟身为前端码农的您也必将会听到过后台(通常状态下是后台发表)二哥的抱怨:“XXX,测试通过了没,不要出现了哈,公布两回很麻烦的!”。而在Chrome里面,只需要在区域2种直接改动,你就可以印证你的代码在线上是不是管用。卤煮在这里只是提议该功效的用法之一。其他的就凭诸位的才智去想了。

澳门葡京 10   
 
  澳门葡京 11

即使在断点时,你也可以编制代码,按ctrl+S保存之后,你会看到区域2的背景由白色变为浅色,而断点会重新起头举办。

回来区域1,Content
script
 选项开里面包含着部分第三方插件或者浏览器自身的js代码,平时它是被忽视的,实际上它的功力很少。我们得以更多关心一下Snippets选料。还记得基础篇里面介绍的style呢?在内部我们得以编制界面的css代码并且即时观望它们的投射效果,同样地,在Sinppets中,我们也
可以编写(重写)js代码片段。那些有些其实就一定于您的js文件一律,不同的是本土的js文件在编辑器里面编辑的,而这里,你是在浏览器中编辑的。这多少个代码片段在浏览器刷新的时候既不会磨灭,也不会实施,除非是你手动执行它。它可以存在你的地面浏览器中,尽管关闭浏览器,再一次打开时它依然还在这边。它的紧要性功效可以使得大家编辑一些门类的测试代码时提供方便,你通晓,假若你在编辑器上编制这些代码,在布告时你不能够不为它们增长注释符号或者手动删除它们,而在浏览器上编制就不需要那样麻烦了。

Snippets挑选的空白点右键后选拔弹出的new选项,建立一个您自己的新的文本,然后在区域2种编辑它。

澳门葡京 12

 

Snippets 的那一个功效强大,它的许多藏身功效还有待挖掘。近日卤煮使用它是在挥之不去调试片段、单元测试、少量的功效代码编写效率上。

说到底我们看看js中时间增长的督查效能,同上篇著作介绍的一致,Sources面板和Elements面板一样有监督事件的机能,而且Sources中效能更加丰裕,也越加强硬。它的这有的职能集中在区域3中。我以下图为例,观看其效劳。

澳门葡京 13

 

从上到下,灰色圈内的数字的意义:

1、断点处的债堆栈,就是从该函数起,逐级追寻调用到她的函数名。例如:

JavaScript

function a () { b(); } function b() { c(); } function c() {
//在该处断点,查看call stack } a->b->c. call stack
从上到下的顺序就是 c b a

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function a () {
   b();
}
function b() {
   c();  
}
function c() {
  //在该处断点,查看call stack  
}
a->b->c.
call stack 从上到下的顺序就是
c
b
a

2、在区域2中你的断点调试信息。当某个断点在实施的时候对应的音信会高亮,双击该处音讯可以在区域2中快速稳定。

3、添加的Dom监控信息。

4、击+ 并输入 URL 包含的字符串即可监听该 URL 的 Ajax
请求,输入内容就一定于 URL 的过滤器。假若什么都不填,那么就监听所有 XHR
请求。一旦 XHR 调用触发时就会在 request.send() 的地点暂停。

5、为网页添加各个类型的断点新闻。如选中了Mouse中的某一项(click),当你在网页上出发这些动作(单击网页任意地点),你浏览器就是随即断点监控该事件。

 

值得再次重复一回,Sources是形似的效能开发中最常用到也是最管用的效率面板,它其中的居多意义对于大家开发前端工程以来是可怜有帮扶的。在web2.0时期的今日,我不引进依旧在融洽的代码里面写调试音讯的表现,因为这会然你的开支变得繁琐。Chrome开发工具给我们提供的强有力功用,我们理应可以利用之。这篇著作就到此结束,尽管有些麻烦,但毕竟基本发挥了卤煮使用经验和设法,希望对您有援助。假使你觉得不错,请推荐一下本文并继承关心卤煮在的博客。在下一篇中本人将向大家介绍Chrome开发工具中的性能方面的调剂。

1 赞 15 收藏 3
评论

澳门葡京 14

来源:

React Native / React调试技巧

做过原生APP开发的同室们都知道,我们在Xcode和studio中就足以一贯对编写的代码举办断点调试,很有益,可是web开发断点调试就不可以一向在开发工具中成就了,需要倚重浏览器来形成,React相关的开销断点调试和web开发大多一样,也是在浏览器上拓展调试,即便没有原生那么便宜,不过也还算简单。React
Native调试需要依靠官方的Developer Menu,下面我们就来概括聊聊那一个Developer Menu
Chrome Developer Tools

初稿链接:

上一篇大家学习了GoogleChrome浏览器开发者工具的底蕴效能,下边介绍的是Chrome开发工具中最实惠的面板Sources。 Sources面板几乎是最常用到的Chrome效用面板,也是解决一般问题的重要性意义面板。平时假若是支付境遇了js报错或者其他代码问题,在审美四遍代码而一无所获之后打开Sources进行js断点调试,几乎能解决8成的代码问题。

Developer Menu

模拟器开启Developer Menu

  • iOS模拟器
    • 可以透过Command⌘ + D快捷键来很快打开Developer Menu
  • android模拟器
    • 可以透过Command⌘ + M连忙键来飞速打开Developer
      Menu。也得以透过模拟器上的菜单键来打开

真机开启Developer Menu

  • iOS和Android真机通过摇出手机来开启Developer Menu

在做React Native开发时,少不了的内需对React
Native程序开展调剂。调试程序是每一位开发者的根底,高效的调试不仅能增强支付效用,也能降低Bug率。本文将向咱们分享React
Native程序调试的有些技能和体验。

js断点效用令人兴奋不已,以前只能在IE中靠alert弹出窗口调试js代码,这样的支出条件对于前端程序员来说简直是一场噩梦。本篇介绍Sources的切切实实用法,援助各位在支付过程中够欢乐地调试js代码,而不是因它而发狂。

Reloading JavaScript

在只是修改了js代码的情事下,要是要预览修改结果,你不需要再行编译你的施用。在这种场合下,你只需要告诉React
Native重新加载js即可。

注意:
假诺您改改了native的代码或修改了Images.xcassets、res/drawable中的文件,重新加载js是可怜的,这时你需要再一次编译你的花色了

Reload js

Reload js将您项目中js代码部分重新生成bundle文件,然后传输给模拟器或手机

在Developer Menu中单击Reload让React
Native重新加载js。对于iOS模拟器你也足以通过Command⌘ + R快速键来加载js,对于Android模拟器可以通过双击r键来加载js

注意:比方Command⌘ + R 不可以使你的iOS模拟器加载js,可以透过选中Hardware
menu中Keyboard选项下的 ‘Connect Hardware Keyboard’ 试试

Enable Live Reload

在 Developer Menu中有 ‘Enable Live Reload’ 选项,该采纳提供了React
Native动态加载的法力。当您的js代码爆发变化后,React
Native会自动生成bundle然后传输到模拟器或手机上

gif

Enable Hot Reloading

Developer Menu中还有一项需要特地介绍的,就是’Enable Hot
Reloading’热加载,假使说Enable Live Reload解放了您的双手的话,那么Hot
Reloading不但解放了您的双手而且还解放了你的时光。 当你每一趟保存代码时Hot
Reloading效能便会生成此次修改代码的增量包,然后传输到手机或模拟器上以实现热加载。相比Enable Live Reload需要每一遍都回去到起步页面,Enable Live
Reload则会在保障你的次序状态的场合下,就可以将流行的代码部署到装备上,当你做布局的时候启动Enable
Live Reload效率你就可以实时的预览布局功效了,方便省时

Developer Menu

Developer Menu是React
Native给开发者定制的一个开发者菜单,来协助开发者调试React Native应用。

提示:生产条件release (production) 下Developer Menu是不可用的。

率先打开F12开发工具切换来Sources面板中

Warning

React
Native程序运行时出现的Warnings也会被直接呈现在屏幕上,以风流的背景映现,并会打印出警示音讯,你也足以经过console.warn()来手动触发Warnings,你也可以经过console.disableYellowBox = true来手动禁用Warnings的体现,或者通过console.ignoredYellowBox = ['Warning: ...']来忽略相应的Warning

img

怎么着打开Developer Menu

澳门葡京 15

Error

React
Native程序运行时出现的Error会被一向显示在屏幕上,以革命的背景显示,并会打印出错误信息,
你也得以经过 console.error()来手动触发Error

img

注意: 在生养条件release下Error和Warning功用不在生效

在模拟器上打开Developer Menu

Sources功用面板是资源面板,他第一分为两个部分,五个部分并不是独自的,他们相互之间关联,互动共同促成一个生死攸关的职能:监控js在执行期的位移。一句话来说就是断点啊。

怎么真机调试

  • iOS上

布局好相应的调试证书,直接连接线连接到真机运行即可

  • android

摇晃手机,调出Developer Menu面板,在’Developer Menu’下的’Dev
Settings’中Debug server host & prot for
device配置自己路由器ip地址。端口使用8081即可

image

image

Android模拟器:

可以由此Command⌘ + M迅速键来快速打开Developer
Menu。也得以透过模拟器上的菜单键来开辟。

感受:高版本的模拟器平日没有菜单键的,不过Nexus
S上是有菜单键的,倘使想采用菜单键,可以创制一个Nexus S的模拟器。

率先咱们来看区域1,它的效应有些看似于Resources面板,首假诺显得网页加载的台本文件:例如css,
js等资源文件(它不分包cookie,img等静态资源文件)。

Chrome Developer Tools

Chrome 开发工具

GoogleChrome开发工具,是依照Google浏览器内含的一套网页制作和调剂工具。开发者工具允许网页开发者深切浏览器和网页应用程序的中间。该工具得以使得地追踪布局问题,设置
JavaScript
断点并可深刻驾驭代码的最优化策略。Chrome开发工具一共提供了8大组工具:

  • Element 面板: 用于查看和编排当前页面中的 HTML 和 CSS 元素
  • Network 面板:用于查看 HTTP
    请求的详细新闻,如请求头、响应头及重临内容等
  • Source 面板:用于查看和调剂当前页面所加载的本子的源文件
  • 提姆(Tim)eLine 面板: 用于查看脚本的履行时间、页面元素渲染时间等信息
  • Profiles 面板:用于查看 CPU 执行时间与内存占用等音讯
  • Resource 面板:用于查看当前页面所请求的资源文件,如 HTML,CSS
    样式文件等
  • Audits 面板:用于优化前端页面,加速网页加载速度等
  • Console 面板:用于呈现脚本中所输出的调试信息,或运行测试脚本等

注意: 对于调试React
Native应用来说,Sources和Console是应用频率最高的五个工具

您能够像调试JavaScript代码一样来调节你的React Native程序

iOS模拟器:

可以经过Command⌘ + D急速键来很快打开Developer Menu。

澳门葡京 16

何以通过Chrome调试React Native程序

  • 起步远程调试

在Developer Menu下单击’Debug JS
Remotely’启动JS远程调试效能,此时Chrome会被打开,同时会成立一个’http://localhost:8081/debugger-ui’网页

image

  • 开拓Chrome开发者工具

在该’http://localhost:8081/debugger-ui’网页下开辟开发者工具,打开Chrome菜单->拔取更多工具->采用开发者工具。你也得以透过神速键(Command⌘ + Option⌥ + I
on Mac, Ctrl + Shift + I on Windows)打开开发者工具

开拓Chrome开发着工具之后您碰面到如下界面

image

在真机上打开Developer Menu:

在真机上您可以通过摇入手机来拉开Developer Menu。

区域1的导航条上有多少个tab切换选项,他们都存有例外域名和环境下的js和css文件,大家第一来验证Sources(资源)选项的效应:

Sources面板

Sources面板提供了调节 JavaScript 代码的效率

image

Sources面板可以让您见到你所要检查的页面的保有脚本代码,并在面板选取栏下方提供了一组正式控件,提供了刹车,苏醒,步进等效果。在窗口的最下方的按钮可以在遭受特别(exception)时强制中止。源码突显在单独的标签页,通过点击
打开文件导航面板,导航栏中会突显所有已开拓的台本文件

Chrome开发着工具中的Sources面板几乎是最常用的法力面板。平常假诺是开发遭逢了js报错或者其他代码问题,在审美五次自己的代码而一无所获之后,首先就会打开Sources举办js断点调试

施行控制工具

从上图能够见到’执行控制工具’按钮在侧板顶部,让您可以按步执行代码,当您举行调剂的时候这一个按钮非凡管用:

  • 继承(Continue): 继续执行代码直到遭逢下一个断点
  • 单步执行(Step over):
    步进代码以查看每一行代码对变量作出的操作,当代码调用另一个函数时不会进去这些函数,使您可以小心于最近的函数
  • 跳入(Step into): 与 Step over
    类似,可是当代码调用函数时,调试器会跻身这一个函数并跳转到函数的第一行
  • 跳出(Step out): 当你进入一个函数后,你可以点击 Step out
    执行函数余下的代码并跳出该函数
  • 断点切换(Toggle breakpoints): 控制断点的敞开和倒闭,同时保持断点完好

查看js文件

一旦你想在开发者工具上预览你的js文件,可以在打开Sources
tab下的debuggerWorker.js选项卡,该选项卡下会呈现当前调试项目标富有js文件,或者是用高速键
cmd + o 调出文件搜索直接举办检索,这一个更是便民快捷

预览图

澳门葡京 17

Sources:
包含该项目的静态资源文件。双击选中文件,该公文内容会在区域2中显得,尽管您选中的是js文件,那么你可以在区域2种单击行号进行断点调试,只要js执行到了您所标记的这一行,它会终止向下举办并且等待你的授命:

断点

断点(Breakpoint)是在剧本中安装好的暂停处,在DevTools中应用断点可以调试JavaScript代码

  • 丰硕和移除断点

在 Sources
面板的文书导航面板中开拓一个JavaScript文件来调节,点击边栏(line gutter)
为当前行设置一个断点,已经安装的断点处会有一个黄色的标签,单击绿色标签,断点即被移除

image

右键点击肉色标签会打开一个食谱,菜单包含以下选项:执行到此(Continue to
Here),黑盒脚本(布莱克(Black)box scripts),移除断点(Remove Breakpoint),
编辑断点(Edit Breakpoint),和 禁用断点(Disable
Breakpoint)。在此间您可以对断点举行更尖端的操作

image

高等操作

  • Continue to Here

假使您想让程序及时跳到某一行时,那多少个功能会帮到你。假如在该行以前还有其它断点,程序会相继通过后边的断点。其它索要提出的是这一个职能在肆意一行代码的边栏(gutter
line)前单击右键都会合到

  • Blackbox scripts

黑盒脚本会从您的调用堆栈中躲藏第三方代码

  • Edit Breakpoint

经过该效用你可以成立一个规范断点,你也得以在边栏(gutter line)
右键并采取充足条件断点(Add Conditional Breakpoint)
。在输入框中,输入一个可解析为真或假的表达式。仅当规则为真时,执行会在此刹车

image

假诺你想让程序在某处向来都毫无暂停,可以编写一个规格永远为false的规则断点。此外,你也足以在该行代码的边栏(gutter
line)前单击右键采纳“Never pause here”即可,你会意识“Never pause
here”其实就是在该行代码上设了一个永远为false的标准化断点

image

治本断点

你可以透过Chrome开发者工具的左边面板来归并保管你的断点

image

您能够经过断点前的复选框来启用和剥夺断点,也得以单击右键来进展更多的操作(如:移除断点,移除所有断点,启用禁用断点等)

大局断点

全局断点的效率是,当程序出现非常时,会在丰富的地点暂停,这对便捷定位异的常地方很方便。
做iOS开发的同室都清楚在Xcode中得以设置全局断点,其实在Chrome
开发者工具中也一致有与之相应的功效,叫’Pause On Caught
Exceptions’。假使勾选上此效率,则就是所发生运行时这一个的代码在 try/catch
范围内,Chrome 开发者工具也可以在错误代码处停住

image

Reloading JavaScript

在只是修改了js代码的情形下,倘诺要预览修改结果,你不需要重新编译你的选择。在那种意况下,你只需要报告React
Native重新加载js即可。

擢升:倘若您改改了native
代码或涂改了Images.xcassets、res/drawable中的文件,重新加载js是老大的,这时你需要再行编译你的序列了。

澳门葡京 18

控制台

DevTools控制台(Console)可以让你在近期已暂停的动静下开展考试。按 Esc
键打开/关闭控制台

您可以在控制台(Console)上打印变量,执行脚本等操作。在开发调试中最常用

image

Reload js

Reload
js即将你项目中js代码部分重新生成bundle,然后传输给模拟器或手机。
在Developer Menu中有Reload选项,单击Reload让React
Native重新加载js。对于iOS模拟器你也得以经过Command⌘ + R神速键来加载js,对于Android模拟器可以经过双击r键来加载js。

提示:如果Command⌘ + R无法使你的iOS模拟器加载js,则足以因此选中Hardware
menu中Keyboard选项下的 “Connect Hardware Keyboard” 。

从上图可以看来js执行到断点处时各类区域的更动,首先是区域3中的Breakpoints记录音讯会变高亮,然后是区域4中Scope 选项中列出了断点处私有和国有的变量消息,这样,我得以很直观地了解,此时此刻js的执行情状。同样的,你可以把鼠标放到区域2种的某部变量上,浏览器会弹出一个小框框,框框里面则是你悬浮其上的变量所有音信:

惠及时间

  • 笔者React
    Native开源项目OneM地址(遵照集团开发规范搭建框架形成开发的):https://github.com/guangqiang-liu/OneM
    欢迎小伙伴们 star
  • 笔者React Native QQ技术沟通群:620792950 欢迎小伙伴进群交换学习
  • 末尾强调:**支付中有碰着RN相关的技能问题,欢迎小伙伴参加交换群,在群里提问、相互交流学习。交换群也定期更新最新的RN学习资料给大家,谢谢帮忙!
    **

小技巧:Automatic reloading

澳门葡京 19

Enable Live Reload

澳门葡京 20

React
Native意在为开发者带来一个更好的支付体验。假设您以为上文的加载js代码形式太low了或者不够便利,那么有没有一种更便利加载js代码的措施呢?
答案是必定的。 
在 Developer Menu中您会见到”Enable Live Reload” 选项,该采用提供了React
Native动态加载的职能。当你的js代码暴发变化后,React
Native会自动生成bundle然后传输到模拟器或手机上,是不是认为很有利。

下一场,你可以按F10随后js执行的路子一步一步地走下去,要是您遇见了一个函数包含着其它一个函数,那么你可以按F11进来到个函数中去观看它的代码执行活动。你也可以因此点击区域1底层的相继图标对js代码举办跟踪。不过自己指出您使用快速键,故名思义,因为它相比较高效方便。可是怎么用完全遵照个人习惯来啊。下图是逐一按钮的听从功用。

Hot Reloading

澳门葡京 21

除此以外,Developer Menu中还有一项需要特地介绍的,就是”Hot
Reloading”热加载,假设说Enable Live Reload解放了你的双手的话,那么Hot
Reloading不但解放了您的双手而且还解放了你的时日。 当你每一回保存代码时Hot
Reloading效能便会变卦此次修改代码的增量包,然后传输到手机或模拟器上以实现热加载。相比较Enable Live Reload需要每趟都回到到启动页面,Enable Live
Reload则会在维系你的次第状态的情形下,就足以将新型的代码部署到设备上,听起来是不是很疯狂啊。

提示:当您做布局的时候启动Enable Live
Reload功效你就可以实时的预览布局效能了,这足以和用AndroidStudio或AutoLayout做布局的实时预览相媲美。

澳门葡京 22

Errors and Warnings

在development格局下,js部分的Errors 和
Warnings会直接打印在手机或模拟器屏幕上,以红屏和黄屏体现。

在上图粉红色圆圈中数字,它们各自代表:

Errors

React
Native程序运行时现身的Errors会被直接突显在屏幕上,以黄色的背景展示,并会打印出错误音讯。
你也得以由此console.error()来手动触发Errors。

澳门葡京 23

1、截至断点调试

Warnings

React
Native程序运行时出现的Warnings也会被平昔体现在屏幕上,以风流的背景显示,并会打印出警示信息。
你也可以通过console.warn()来手动触发Warnings。
你也可以透过console.disableYellowBox = true来手动禁用Warnings的呈现,或者经过console.ignoredYellowBox = ['Warning: ...'];来忽略相应的Warning。

澳门葡京 24

唤醒:在生产条件release (production)下Errors和Warnings效用是不可用的。

2、不跳入函数中去,继续执行下一行代码(F10)

Chrome Developer Tools

3、跳入函数中去(F11)

Chrome 开发工具

Google Chrome
开发工具,是依据Google浏览器内含的一套网页制作和调节工具。开发者工具允许网页开发者深入浏览器和网页应用程序的里边。该工具得以有效地追踪布局问题,设置
JavaScript 断点并可浓密通晓代码的最优化策略。 Chrome
开发工具一共提供了8大组工具:

  • Element 面板: 用于查看和编辑当前页面中的 HTML 和 CSS 元素。
  • Network 面板:用于查看 HTTP
    请求的详细新闻,如请求头、响应头及再次回到内容等。
  • Source 面板:用于查看和调试当前页面所加载的脚本的源文件。
  • 提姆(Tim)eLine 面板: 用于查看脚本的履行时间、页面元素渲染时间等音信。
  • Profiles 面板:用于查看 CPU 执行时间与内存占用等消息。
  • Resource 面板:用于查看当前页面所请求的资源文件,如 HTML,CSS
    样式文件等。
  • Audits 面板:用于优化前端页面,加速网页加载速度等。
  • Console 面板:用于展示脚本中所输出的调试音讯,或运行测试脚本等。

唤醒:对于调试React
Native应用来说,Sources和Console是利用频率很高的四个工具。

您可以像调试JavaScript代码一样来调节你的React Native程序。

4、从实施的函数中跳出

何以通过 Chrome调试React Native程序

您可以通过以下步骤来调节你的React Native程序:

澳门葡京 ,5、禁用所有的断点,不做其它调试

首先步:启动远程调试

在Developer Menu下单击”Debug JS Remotely”
启动JS远程调试功用。此时Chrome会被打开,同时会创制一个“
Tab页。
澳门葡京 25

6、程序运行时遇到特别时是不是中断的开关

第二步:打开Chrome开发者工具

在该“

  • Option⌥ + I on Mac, Ctrl + Shift + I on Windows)打开开发者工具。

澳门葡京 26

开拓Chrome开发着工具之后你会看到如下界面:
澳门葡京 27

接下去在区域4种切换来沃特(Wat)ch
Expressions 选项,它的功能是为眼前断点添加表明式,使得每趟断点往下走一步都会实施你写下的js代码。需要专注的是其一意义必须审慎选择,因为这说不定会招致您写下的监督代码段会不断地被执行。

真机调试

澳门葡京 28

在iOS上

开拓”RCTWebSocketExecutor.m
“文件,将“localhost”改为您的微处理器的ip,然后在Developer Menu下单击”Debug
JS Remotely” 启动JS远程调试效率。

为了制止你的调节代码重复执行,我们得以在调试时一直在console控制台上几遍性地出口当前断点处的音讯(推荐这样做)。为了证实大家在console面板中有所的是眼前断点环境,我门能够对照断点执行前后的this值变化。

在Android上

方式一: 
在Android5.0以上设备上,将手机通过usb连接到你的微机,然后通过adb命令行工具运行如下命令来设置端口转发。 
adb reverse tcp:8081 tcp:8081

方式二:
您也足以经过在“Developer Menu”下的“Dev
Settings”中安装你的微处理器ip来展开调节。

体验:在行使真机调试时,你需要保证您的无绳电话机和处理器处在同一个网段内,即它们其实同一个路由器下。

澳门葡京 29

小技巧:


澳门葡京 30

巧用Sources面板

Sources 面板提供了调剂 JavaScript 代码的效应。它提供了图形化的V8
调试器。

 澳门葡京 31

Sources
面板可以让你见到你所要检查的页面的有着脚本代码,并在面板选取栏下方提供了一组正式控件,提供了刹车,復苏,步进等效果。在窗口的最下方的按钮可以在遭受特别(exception)时强制中止。源码呈现在独立的标签页,通过点击
打开文件导航面板,导航栏中会展现所有已开辟的本子文件。

感受:Chrome开发着工具中的Sources面板几乎是本身最常用的效益面板。通常倘使是支付境遇了js报错或者其他代码问题,在审视一回自己的代码而一无所获之后,我先是就会打开Sources举行js断点调试。

比方你觉得在断点的时候为了看一个变量必须借用console面板输出的措施来查看会相比勤奋,那么你能够改进最新版的Chrome,它早已为我们解决了那一个烦恼。为了方便开发者调试,在这一点上Google曾经成功了最好,就在明天更新过Chrome将来,卤煮意外地发现了断点时监控环境变量的其余一种艺术,这种办法极为清晰,在断点调试的时候,区域2中会自动显示每个变量的值,每一趟代码往下走的时候那多少个值都回时时更新。这让开发者对如今环境变量几乎可以说是了如指掌。(此效用有一个小瑕疵,这就是心有余而力不足查看数组或者目的的现实索引和值,但是自己相信google会创新它的。)

施行控工具

从上图可以见到“执行控工具”按钮在侧板顶部,让你可以按步执行代码,当您举办调节的时候这些按钮非凡实用:

  • 此起彼伏(Continue): 继续执行代码直到境遇下一个断点。
  • 单步执行(Step over):
    步进代码以查看每一行代码对变量作出的操作,当代码调用另一个函数时不会进来这些函数,使你可以小心于当下的函数。
  • 跳入(Step into): 与 Step over
    类似,可是当代码调用函数时,调试器会进来这些函数并跳转到函数的首先行。
  • 跳出(Step out): 当你进来一个函数后,你可以点击 Step out
    执行函数余下的代码并跳出该函数。
  • 断点切换(Toggle breakpoints):
    控制断点的拉开和倒闭,同时保持断点完好。

澳门葡京 32

查看js文件

一旦你想在开发者工具上预览你的js文件,可以在开拓Sources
tab下的debuggerWorker.js选项卡,该选项卡下会显示当前调试项目标有着js文件。

澳门葡京 33

当你的项目早就线上,出现了一个bug,你修复了随后无法看出它实在在线上的效果,那么您可以在打开线上的连串,直接在浏览器中修改代码然后看到功用。那样的效应往往是最直接的,这种模式也能帮您省去频繁验证宣布的麻烦,毕竟身为前端码农的您也必将会听到过后台(平日状态下是后台发表)三弟的埋怨:“XXX,测试透过了没,不要出现了哈,发表两遍很麻烦的!”。而在Chrome里面,只需要在区域2种直接修改,你就足以表达你的代码在线上是不是管用。卤煮在这里只是指出该效能的用法之一。其他的就凭诸位的聪明才智去想了。

断点其实很简短

断点(Breakpoint)
是在剧本中设置好的暂停处。在DevTools中接纳断点可以调试JavaScript代码,DOM更新和
network calls。

经验:你可以像使用Xcode/AndroidStudio调试Native应用相同,来行使Chrome开发者工具通过断点对先后开展调剂。

澳门葡京 34

充足和移除断点

在 Sources
面板的公文导航面板中开拓一个JavaScript文件来调节,点击边栏(line gutter)
为当前行设置一个断点,已经安装的断点处会有一个粉色的竹签,单击红色标签,断点即被移除。

澳门葡京 35

心得:右键点击棕色标签会打开一个菜系,菜单包含以下选项:执行到此(Continue
to Here),黑盒脚本(布莱克(Black)box scripts),移除断点(Remove Breakpoint),
编辑断点(Edit Breakpoint),和 禁用断点(Disable
Breakpoint)。在此间您可以对断点举行更尖端的定制化的操作。澳门葡京 36

澳门葡京 37

尖端操作

上文讲到右键点击粉红色标签会打开一个菜单,下边就介绍一下该菜单下的高等操作。

执行到此(Continue to Here):

假使你想让程序及时跳到某一行时,这一个效用会帮到你。假如在该行从前还有此外断点,程序会挨个通过前边的断点。此外需要指出的是其一效能在随心所欲一行代码的边栏(gutter
line)前单击右键都汇合到。

黑盒脚本(布莱克box scripts):

黑盒脚本会从您的调用堆栈中潜藏第三方代码。

编纂断点(Edit Breakpoint):

由此该意义你可以成立一个条件断点,你也得以在边栏(gutter line)
右键并采用充裕条件断点(Add Conditional Breakpoint)
。在输入框中,输入一个可解析为真或假的表明式。仅当条件为真时,执行会在此中断。 
澳门葡京 38

经验:假设你想让程序在某处一直都毫不暂停,可以编制一个规则永远为false的规格断点。此外,你也可以在该行代码的边栏(gutter
line)前单击右键选用“Never pause here”即可,你会意识“Never pause
here”其实就是在该行代码上设了一个永远为false的基准断点。澳门葡京 39

就是在断点时,你也得以编写代码,按ctrl+S保存之后,你会看到区域2的背景由白色变为浅色,而断点会重新开首进行。

管住你的断点

您可以通过Chrome开发者工具的右侧面板来归并管理你的断点。

澳门葡京 40

感受:你可以通过断点前的复选框来启用和剥夺断点,也可以单击右键来举办更多的操作(如:移除断点,移除所有断点,启用禁用断点等)。

回去区域1,Content
script 选项开里面包含着有些第三方插件或者浏览器自身的js代码,通常它是被忽视的,实际上它的职能很少。大家得以更多关注一下Snippets选项。还记得基础篇里面介绍的style吗?在内部我们得以编制界面的css代码并且即时见到它们的照耀效果,同样地,在Sinppets中,大家也
可以编写(重写)js代码片段。这么些部分其实就一定于您的js文件一律,不同的是地方的js文件在编辑器里面编辑的,而这边,你是在浏览器中编辑的。那几个代码片段在浏览器刷新的时候既不会不复存在,也不会实施,除非是您手动执行它。它可以存在你的本土浏览器中,即便关闭浏览器,再度打开时它依然还在这里。它的重大效率可以使得我们编辑一些门类的测试代码时提供便利,你知道,即便您在编辑器上编制这么些代码,在公布时你必须为它们增长注释符号或者手动删除它们,而在浏览器上编制就不需要如此麻烦了。

有一种断点叫全局断点

全局断点的法力是,当程序出现非凡时,会在特另外地方暂停,这对便捷定位异的常地点很便宜。
做iOS开发的同窗都知道在Xcode中得以安装全局断点,其实在Chrome
开发者工具中也一致有与之对应的功力,叫“Pause On Caught
Exceptions”。假使勾选上此效能,则就是所暴发运行时特其余代码在 try/catch
范围内,Chrome 开发者工具也能够在错误代码处停住。 
澳门葡京 41

在Snippets选项的空白点右键后接纳弹出的new选项,建立一个您自己的新的公文,然后在区域2种编辑它。

毫不大意控制台

DevTools 控制台(Console) 可以让你在如今已中断的情况下举办考试。按 Esc
键打开/关闭控制台。

澳门葡京 42

感受:你可以在控制台(Console)上打印变量,执行脚本等操作。在开发调试中万分实惠。

澳门葡京 43

参考

chrome-devtools
CN-Chrome-DevTools
Debugging

Snippets 的要命功效强大,它的过多隐身功能还有待打通。如今卤煮使用它是在挥之不去调试片段、单元测试、少量的机能代码编写功效上。

About

正文来源《React
Native学习笔记》数不胜数作品。 
刺探更多,能够关怀自身的GitHub 
@

最终我们看看js中时间增长的监察功用,同上篇小说介绍的均等,Sources面板和Elements面板一样有监督事件的效益,而且Sources中效果更是助长,也越加强有力。它的这有的职能集中在区域3中。我以下图为例,观望其意义。

澳门葡京 44

从上到下,肉色圈内的数字的意义:

1、断点处的债堆栈,就是从该函数起,逐级追寻调用到他的函数名。例如:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

function a () {

   b();

}

function b() {

   c(); 

}

function c() {

  //在该处断点,查看call stack 

}

a->b->c.

call stack 从上到下的顺序就是

c

b

a

2、在区域2中你的断点调试音信。当某个断点在推行的时候对应的音信会高亮,双击该处音讯方可在区域2中急迅稳定。

3、添加的Dom监控信息。

4、击+ 并输入 URL 包含的字符串即可监听该 URL 的 Ajax
请求,输入内容就相当于 URL 的过滤器。如若什么都不填,那么就监听所有 XHR
请求。一旦 XHR 调用触发时就会在 request.send() 的地点暂停。

5、为网页添加各种类型的断点信息。如选中了Mouse中的某一项(click),当你在网页上出发这么些动作(单击网页任意地方),你浏览器就是随即断点监控该事件。

值得再一次重新五回,Sources是一般的效用开发中最常用到也是最管用的效能面板,它里面的不少意义对于我们付出前端工程以来是老大有救助的。在web2.0时日的前些天,我不推荐如故在温馨的代码里面写调试音讯的一言一行,因为这会然你的支付变得繁琐。Chrome开发工具给大家提供的兵不血刃功效,大家应当可以利用之。这篇小说就到此停止,即使有些麻烦,但归根结底基本发挥了卤煮使用经验和想方设法,希望对您有赞助。如若你认为不错,请推荐一下本文并连续关注卤煮在的博客。在下一篇中我将向大家介绍Chrome开发工具中的性能方面的调节。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website