之前做过一点前端的小项目所以前端还算熟练
因为最近在准备GRE所以想能不能写一个背单词软件
正好这学期有个Android开发课,就用来当大作业了

前端: webpack+react+redux
后端: sinatra+grape(API)+datamapper

Cordova

如何在Webpack Dev Server下调试AJAX?

当然是代理啦!
在之前两个项目中为了不用代理强行在后端启用了nodejs
事实证明这是个愚蠢的决定
因为nodejs完全不适合做后端,express的结构倒是易懂,但异步编程模式很容易产生难以预料的错误
比方说: 如果你传一个回调函数用来接受数据库的数据,如果这个函数抛出异常,express不会返回错误信息,整个后端会崩溃,因为真正运行这个函数的时候已经脱离express控制的范围了,而这一点很难注意到
另外sequelize就是一坨翔,命令行工具竟然和库不兼容,还没有任何提示

我选择Ruby

如果希望dev server和后端同时开启关闭的话,可以考虑concurrently

文件路径

在引用其他js/css/html文件的时候不能用"/xxx.js",因为cordova并不是开了一个本地服务器,cordova的webpack使用的是file://协议,也就是说路径应该长这样:"./xxx.js",在使用create-react-app创建的项目中,可以写一份新的paths.js和配置文件解决这个问题,更改%PUBLIC_PATH%就可以

图片路径

非常诡异的是图片并不能按照上述做法访问到
以至于我一度以为cordova不能加载本地文件

不过事实证明其实只是需要写完整路径而已

如果你的图片路径是www/image.png的话,应该用
cordova.file.applicationDirectory+"www/image.png"

可能需要安装插件

调试

因为我自己的手机是iOS的,只能用Android模拟器调试
网上给出的做法大部分是基于adb 的,查了很久没看到怎么直接看控制台输出

直到我看到这个: chrome://inspect/#devices

Chrome提供的调试工具,可以直接看到Cordova里Webview的控制台

可惜不支持Redux和React的dev tool

而且更新界面的时候好TM闪!

默认情况下AJAX是跨域的

纠结了很久如果禁止跨域的话就需要在cordova里弄个代理代理到我的服务器上(就像webpack那样)
不过这个问题是不存在的

不是所有HTML5的特性都可用

window.speechSynthesis不能用,结合下一条导致我查了4小时BUG

React

Redux的Reducer不报错?!

如果一个reducer崩溃的话控制台不会有任何输出,就是单纯的没反应了
我打了一堆console.log才确认这个问题

[笔记]React+Cordova踩坑相关推荐

  1. truffle unbox react 初始化踩坑

    truffle unbox react 初始化踩坑 1.文件位置引起的错误 一定要在package.json 所在文件夹下npm run start ,新版本一定要进入client文件夹再npm ru ...

  2. React Native之React Navigation踩坑

    自动重装系统之后,已经很长一段时间没有来写React Native了,今天空闲之余,决定重新配置React Native的开发环境,继续踩坑... React Native的开发环境配置狠简单,只要依 ...

  3. 集成Emscripten+wasm至React项目踩坑记录

    前言 需求是有一个C++写的工具包(负责大规模的数据运算). 需要用emscripten是把C/C++编译成WebAssembly,便于在JS环境之后执行. 最终在React项目中调用工具包. 数据类 ...

  4. HBase眼高手低从Shell到IDEA编程、心路笔记、踩坑过程

    HBase眼高手低从Shell到IDEA编程.心路笔记.踩坑过程 HBase眼高手低 通过shell操作Hbase Foundation 在terminal中输入hbase,就可以查看hbase命令的 ...

  5. iphone se 一代 不完美越狱 14.6 视频壁纸教程(踩坑笔记)

    iphone se 一代 不完美越狱 14.6 加 视频壁纸教程-踩坑笔记 越狱流程 1.爱思助手制作启动u盘 坑点: 2.越狱好后 视频壁纸软件 1.源 2.软件安装 越狱流程 1.爱思助手制作启动 ...

  6. 【Java笔记+踩坑】SpringBoot基础3——开发。热部署+配置高级+整合NoSQL/缓存/任务/邮件/监控

      导航: [黑马Java笔记+踩坑汇总]JavaSE+JavaWeb+SSM+SpringBoot+瑞吉外卖+SpringCloud/SpringCloudAlibaba+黑马旅游+谷粒商城 目录 ...

  7. Linux内核踩坑笔记

    systemtap embedded C踩坑笔记戳这: https://blog.csdn.net/qq_41961459/article/details/103093912 task_struct的 ...

  8. 谷粒商城笔记+踩坑(17)——【认证模块】登录,用户名密码登录+微博社交登录+SpringSession+xxl-sso单点登录

    导航: 谷粒商城笔记+踩坑汇总篇 目录 5. 用户名密码登录 5.1[认证模块]登录业务 5.1.1 模型类,接收用户名密码 5.1.2 feign客户端新增登录功能 5.1.3 LoginContr ...

  9. 谷粒商城笔记+踩坑(18)——购物车

    导航: 谷粒商城笔记+踩坑汇总篇 目录 一.环境搭建 1.1.购物车模块初始化 1.2.动静资源处理 1.3.页面跳转配置 二.数据模型分析 2.1.购物车需求 2.1.1.离线购物车和在线购物车需求 ...

最新文章

  1. 如何使用Nodejs爬虫看漫画
  2. 第十三章 簇-机器学习老师板书-斯坦福吴恩达教授
  3. Python使用lxml模块和Requests模块抓取HTML页面的教程
  4. 服务器性能瓶颈分析方法
  5. How data type handler is got for AET extension field
  6. php 修改文件属性命令行,Linux_linux中如何通过命令修改文件属性,ls -l即可查看目录信息-rw - phpStudy...
  7. 2021年考计算机考研三战,考研越来越难,2021考研人将会面临哪三大挑战?
  8. 花前月下网易云等级代挂多功能助手程序v1.2
  9. eclipse error
  10. 十二生肖配对表查询_天蝎座:分手后最容易复合的星座配对,一生分不开,最终重新走到一起...
  11. Nginx概述(1)----应用场景,出现原因,优点,组成
  12. 剑指offer 面试26题
  13. python做考勤表_500行Python代码打造刷脸考勤系统,其实也就那么简单
  14. java 工作簿_将多个Excel工作簿合并到一个工作簿中
  15. 按拼音首字母排列的地区选择代码 中文和拼音已配好链接
  16. csapp lab环境搭建及lab1wp
  17. html字体制作,用@font-face实现网页特殊字符(制作自定义字体)
  18. 金山wps的面试经历
  19. 数据分析(2)——数据分析的流程 数据类型及数据收集和整理方法
  20. 深度学习花朵识别系统的设计与实现

热门文章

  1. 人工不智能,AI产品经理要帮助用户认清这一现实
  2. 微软获GPT-3独家授权,OpenAI创始人马斯克:与初衷相悖
  3. 「AI不惑境」残差网络的前世今生与原理
  4. [图]吴恩达AI公司Drive.ai或已找到新买家--苹果
  5. SAP MM MB5L事务代码'仅总计'选项初探
  6. 在AI领域每月投资一次,全面解析腾讯的人工智能奇招
  7. 图解梯度下降背后的数学原理
  8. Uber发布了Ludwig,一款不使用代码的人工智能开发工具
  9. 机器学习中的方法技术与应用场景
  10. 人工智能起源于这三家学派?