在实际开发中,还有一个影响开发效率的重要因素:调试。

在1.4.3节中已经介绍了Enable Live Debugger的使用。本节来介绍另一个非常重要的调试选项:Debug JSRemotely选项。

(1)晃动设备或使用模拟器上的快捷键(iOS模拟器快捷键command + d,Android模拟器快捷键command + m)打开调试选项,效果如图2.15所示。

图2.15  React Native调试选项

(2)单击Debug JS Remotely选项。此时,React Native会自动打开Chrome浏览器作为调试工具。

(3)按照如图2.16所示的顺序操作,这样就进入了React Native应用的调试状态。

图2.16  使用Chrome浏览器调试ReactNative应用

(4)在调试状态下,单击index.ios.js文件第12行的行数来添加一个断点,如图2.17所示。

【问题】软件开发中的断点是什么?

【回答】断点(Breakpoint)是调试器的功能之一,调试时设定断点可以让程序执行到该行程序时停住,借此观察程序到断点位置时,其变量、暂存器、I/O等相关的变数内容,有助于深入了解程序运作的机制,发现、排除程序错误的根源。

图2.17  React Native调试时添加断点

(5)最后,重新加载运行的应用(iOS模拟器快捷键command + r,Android模拟器快捷键r + r)。此时,应用运行到刚才添加断点的第12行时就停止了,如图2.18所示。

图2.18  React Native调试时在断点处暂停运行

此时,可以在右侧的调试区域查看到这些信息:当前应用执行的线程状态(Threads)、变量值、调用栈(Call Stack)等信息。而且,还可以使用调试区域上方的指令来实现单步执行、跳过执行、继续执行等调试操作,如图2.19所示。

图2.19  React Native调试时的调试指令

调试技巧和经验是需要开发过程中不断积累的,读者在掌握了这些基本用法之后,可以通过后面的例子不断练习,积累开发经验,提高自己的调试能力和开发效率。

和我一起学吧,《React Native移动开发实战》

React Native移动开发实战-2-如何调试React Native项目的更多相关文章

  1. React Native移动开发实战-5-Android平台的调试技巧

    Android平台的调试和其他平台的调试也很类似,例如:在Android Studio打开的工程中,打开源码MainActivity.java,然后,将鼠标移至代码编辑区的左侧后,单击鼠标即可添加断点 ...

  2. React Native移动开发实战-4-Android平台的适配原理

    打开Android开发工具Android Studio,选择菜单 Open an existing AndroidStudio project,打开ch04项目的android文件夹,如图5.8所示. ...

  3. React Native移动开发实战-3-实现页面间的数据传递

    React Native使用props来实现页面间数据传递和通信.在React Native中,有两种方式可以存储和传递数据:props(属性)以及state(状态),其中: props通常是在父组件 ...

  4. <React Native移动开发实战>-1-React Native的JSX解决方案

    JSX并不是一门新的开发语言,而是Facebook提出的语法方案:一种可以在JavaScript代码中直接书写HTML标签的语法糖,所以,JSX本质上还是JavaScript语言. 小知识:语法糖(S ...

  5. 《React+Redux前端开发实战》笔记3:基于Webpack构建的Hello World案例(下)

    2.使用React编码 下面正式开始使用React来编写前端代码. (1)npm安装react和react-dom: npm install react react-dom -S (2)用下面代码替换 ...

  6. React前端有钱途吗?《React+Redux前端开发实战》学起来

    再不学React就真的跟不上大前端的形式了,目前几乎所有前端的招聘条件都是精通React者优先,看看拉勾网的React薪资,都是15K-20K,这个暑假,必须动起来了. 如果你熟悉JavaScript ...

  7. 《React+Redux前端开发实战》笔记2:基于Webpack构建的Hello World案例(上)

    这次搭建分为两部分:一部分是前期必要配置,一部分是开发React代码. [基于Webpack的React Hello World项目] 1.前期必要配置 (1)首先要确保读者的开发设备上已经安装过No ...

  8. 《React+Redux前端开发实战》笔记1:不涉及React项目构建的Hello World案例

    本小节实现一个不涉及项目构建的Hello World. [React的第一个Hello World网页] 源码地址:https://jsfiddle.net/allan91/2h1sf0ky/8/ & ...

  9. 测试开发实战[提测平台]19-Echarts图表在项目的应用

    微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 在图表统计展示方面,笔者目前使用过的两种开源,分别是 Echats 和 G2Plot 组件,从个人使用上来讲前者应用更广.自定义开发更灵活 ...

随机推荐

  1. 【模板】.bat对拍

    对拍是个很有用的东西,比如在验证贪心策略是否正确时,可以写上个暴力然后和贪心程序对拍上几个小时. 在c++里用system写对拍总是会出现一些莫名其妙的问题.. 比如my.out明明是1 fc的时候却 ...

  2. docker 不同版本 添加--insecure-registry

    docker  17.0.3 vim /lib/systemd/system/docker.service 然后重启 systemctl  daemon-reload , systemctl rest ...

  3. 深入理解C/C++混合编程优秀博文赏析与学习

    1.深入理解C/C++混合编程 2.C/C++ 混合编程 互相调用 3.C代码中如何调用C++ C++中如何调用C 4.C和C++混合编程

  4. 443 D. Teams Formation

    http://codeforces.com/contest/879/problem/D This time the Berland Team Olympiad in Informatics is he ...

  5. RabbitMQ如何保证发送端消息的可靠投递-发生镜像队列发生故障转移时

    上一篇最后提到了mandatory这个参数,对于设置mandatory参数个人感觉还是很重要的,尤其在RabbitMQ镜像队列发生故障转移时. 模拟个测试环境如下: 首先在集群队列中增加两个镜像队列的 ...

  6. MySQL的安装步骤

    MySQL5.6.43下载地址:链接: https://pan.baidu.com/s/1v0HZU_OnDClNxd5QIKDRMg 提取码: jy9s 1.解压mysql-5.6.43-winx6 ...

  7. MongoDB初学笔记(1)

    学习目标 理解MongoDb的特点和体系结构 掌握常用的MongoDB命令 MongoDB是一种介于关系数据库和非关系数据库中的一种数据库.它支持的数据结构非常松散,类似于JSON的BJSOn格式,所 ...

  8. 你的程序运行使用了多少CPU,秒知!

    朋友们,相信大家日夜操练,代码已经撸了不少了,在跟代码打交道的时候,大家有没有思考过一个问题,想过你的代码完成一个循环或者处理其它事件它到底花了多少时间吗? “什么,你不是装逼吧,居然还可以知道代码运 ...

  9. Oracle 在 多个Virtualbox 虚拟机间 跨不同物理宿主机进行通信

    因为单位网络管理的原因,不太方便使用 Virtualbox 的Bridge Adapter 模式,故此欲采用NAT模式,不对外不暴露虚拟机IP. 但是此时会有一个问题:采用NAT模式后,在通常情况下, ...

  10. 如何查看PostgreSQL的checkpoint 活动

    磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL基础知识与基本操作索引页    回到顶级页面:PostgreSQL索引页 作者:高健@博客园 luckyjackgao@g ...