前端程序猿的天花板?react-native开发及调试方案(真实项目,建议收藏)

简介: 笔记

1. React Native 概述


将原生开发的最佳部分与 React 相结合。

酌量添加,多少随意。随时都可以把 React Native 无缝集成到你已有的 Android 或 iOS 项目,当然也可以完全从头焕然一新地重写。

这是目前很好的一款做APP的框架。(上手也有一定难度)

个人认为,使用此框架和你的技术深浅关系不大,主要是要自己通过真实开发去踩坑,真正的程序猿勇士,都是踩坑过来的~

接下来把本人踩的坑分享给大家:

image.png


2. 开发与调试工具


  • 开发工具:vscode(这个不用多说了)
  • 调试工具:mumu模拟器(模拟器是必不可少的,APP无法在浏览器运行

2.1 mumu模拟器操作步骤:

  • 科学上网,安装它
  • 导入APP包(当前项目)

image.png

2.2 运行与调试

需要开启两个服务

  • node依赖
node ./node_modules/react-native/local-cli/cli.js start --reset-cache


image.png


  • 运行项目
npm run dev:rn

image.png


  • 项目启动后,刷新mumu浏览器(双击R,手速要快—— 单身程序猿的福音)
  • 接下来就会看到控制台编译此项目,如下:

image.png


编译成功是这样的(会看到APP运行)

image.png



效果

image.png



摇一摇配置本地IP地址

image.png



接下来会看到如下页面:

image.png


本地IP地址 + 端口

image.png


  • 谷歌打开调试控制台(打印,以及日志会在这里出现)
  • 只能以这种方式调试,你没得选

image.png


3.package.json 文件


此文件仅供参考,具体看项目去的,重点看服务配置等

{
  "name": "demo",
  "version": "1.0.0",
  "private": true,
  "description": "项目描述",
  "templateInfo": {
    "name": "default",
    "typescript": false,
    "css": "sass"
  },
  "scripts": {
    "build:weapp": "taro build --type weapp",
    "build:swan": "taro build --type swan",
    "build:alipay": "taro build --type alipay",
    "build:tt": "taro build --type tt",
    "build:h5": "taro build --type h5",
    "build:rn": "taro build --type rn",
    "build:qq": "taro build --type qq",
    "build:quickapp": "taro build --type quickapp",
    "dev:weapp": "npm run build:weapp -- --watch",
    "dev:swan": "npm run build:swan -- --watch",
    "dev:alipay": "npm run build:alipay -- --watch",
    "dev:tt": "npm run build:tt -- --watch",
    "dev:h5": "npm run build:h5 -- --watch",
    "dev:rn": "node scripts/polyfill/index.js && npm run build:rn -- --watch",
    "dev:qq": "npm run build:qq -- --watch",
    "dev:quickapp": "npm run build:quickapp -- --watch",
    "tep": "node scripts/template",
    "iconfont": "npx iconfont-taro"
  },
  "author": "",
  "license": "MIT",
  "dependencies": {
    "@react-native-community/viewpager": "^4.1.0",
    "@tarojs/async-await": "2.0.1",
    "@tarojs/cli": "2.0.1",
    "@tarojs/components": "2.0.1",
    "@tarojs/components-rn": "2.0.1",
    "@tarojs/redux": "2.0.1",
    "@tarojs/redux-h5": "2.0.1",
    "@tarojs/router": "2.0.1",
    "@tarojs/taro": "2.0.1",
    "@tarojs/taro-alipay": "2.0.1",
    "@tarojs/taro-h5": "2.0.1",
    "@tarojs/taro-qq": "2.0.1",
    "@tarojs/taro-quickapp": "2.0.1",
    "@tarojs/taro-redux-rn": "2.0.1",
    "@tarojs/taro-rn": "2.0.1",
    "@tarojs/taro-router-rn": "2.0.1",
    "@tarojs/taro-swan": "2.0.1",
    "@tarojs/taro-tt": "2.0.1",
    "@tarojs/taro-weapp": "2.0.1",
    "babel-runtime": "^6.26.0",
    "crypto-js": "3.1.2",
    "dva-core": "^2.0.1",
    "dva-loading": "^3.0.18",
    "global": "^4.4.0",
    "nerv-devtools": "^1.5.6",
    "nervjs": "^1.5.6",
    "node-sass": "^6.0.0",
    "react": "16.8.0",
    "react-native": "0.59.9",
    "react-native-ali-onepass": "2.0.1",
    "react-native-amap-geolocation": "^1.0.4",
    "react-native-amap3d": "^1.1.1",
    "react-native-camera": "2.9.0",
    "react-native-exit-app": "^1.1.0",
    "react-native-fs": "^2.16.6",
    "react-native-qrcode": "^0.2.7",
    "react-native-root-modal": "^3.0.1",
    "react-native-shadow": "^1.2.2",
    "react-native-side-menu": "^1.1.3",
    "react-native-splash-screen": "^3.2.0",
    "react-native-svg": "^9.13.6",
    "react-native-view-shot": "2.6.0",
    "react-native-webview": "5.8.1",
    "react-native-wechat": "^1.9.12",
    "react-native-wechat-lib": "^1.1.26",
    "redux": "^4.0.0",
    "redux-thunk": "^2.3.0",
    "taro-ui": "^2.2.4",
    "tslib": "^1.8.0",
    "vconsole": "^3.3.4",
    "webpack-bundle-analyzer": "^3.6.0",
    "weixin-js-sdk": "1.2.0",
    "wx-base64-qrcode": "^1.0.4"
  },
  "devDependencies": {
    "@tarojs/mini-runner": "^2.0.1",
    "@tarojs/plugin-babel": "2.0.1",
    "@tarojs/plugin-csso": "2.0.1",
    "@tarojs/plugin-sass": "2.0.1",
    "@tarojs/plugin-uglifyjs": "2.0.1",
    "@tarojs/webpack-runner": "2.0.1",
    "@types/react": "^16.4.6",
    "@types/webpack-env": "^1.13.6",
    "babel-eslint": "^8.2.3",
    "babel-plugin-transform-class-properties": "^6.24.1",
    "babel-plugin-transform-decorators-legacy": "^1.3.4",
    "babel-plugin-transform-jsx-stylesheet": "^0.6.5",
    "babel-plugin-transform-object-rest-spread": "^6.26.0",
    "babel-plugin-transform-remove-console": "^6.9.4",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-env": "^1.6.1",
    "eslint": "^5.16.0",
    "eslint-config-taro": "2.0.1",
    "eslint-plugin-import": "^2.12.0",
    "eslint-plugin-react": "^7.8.2",
    "eslint-plugin-react-hooks": "^1.6.1",
    "eslint-plugin-taro": "2.0.1",
    "redux-logger": "^3.0.6",
    "stylelint": "9.3.0",
    "stylelint-config-taro-rn": "2.0.1",
    "stylelint-taro-rn": "2.0.1",
    "taro-iconfont-cli": "^1.2.0"
  }
}
目录
相关文章
|
2月前
|
前端开发 JavaScript API
React开发需要了解的10个库
本文首发于微信公众号“前端徐徐”,介绍了React及其常用库。React是由Meta开发的JavaScript库,用于构建动态用户界面,广泛应用于Facebook、Instagram等知名网站。文章详细讲解了Axios、Formik、React Helmet、React-Redux、React Router DOM、Dotenv、ESLint、Storybook、Framer Motion和React Bootstrap等库的使用方法和应用场景,帮助开发者提升开发效率和代码质量。
125 4
React开发需要了解的10个库
|
2月前
|
JavaScript 前端开发 Docker
前端全栈之路Deno篇(二):几行代码打包后接近100M?别慌,带你掌握Deno2.0的安装到项目构建全流程、剖析构建物并了解其好处
在使用 Deno 构建项目时,生成的可执行文件体积较大,通常接近 100 MB,而 Node.js 构建的项目体积则要小得多。这是由于 Deno 包含了完整的 V8 引擎和运行时,使其能够在目标设备上独立运行,无需额外安装依赖。尽管体积较大,但 Deno 提供了更好的安全性和部署便利性。通过裁剪功能、使用压缩工具等方法,可以优化可执行文件的体积。
127 3
前端全栈之路Deno篇(二):几行代码打包后接近100M?别慌,带你掌握Deno2.0的安装到项目构建全流程、剖析构建物并了解其好处
|
27天前
|
前端开发 数据可视化 搜索推荐
深入剖析极态云优雅的前端框架设计方案(上)
最近在体验极态云,这款低代码软件开发产品,发现其前端框架设计方案很优雅很强大! 在接下来的学习过程中,我将持续输出自己对极态云前端框架设计方案的深入理解,包括具体的使用技巧、优势分析以及可能的应用场景等方面的内容,希望能为大家提供有价值的参考。
|
25天前
|
前端开发 JavaScript 安全
揭秘!前端大牛们如何高效解决跨域问题,提升开发效率!
【10月更文挑战第30天】在Web开发中,跨域问题是一大挑战。本文介绍前端大牛们常用的跨域解决方案,包括JSONP、CORS、postMessage和Nginx/Node.js代理,对比它们的优缺点,帮助初学者提升开发效率。
46 4
|
25天前
|
前端开发 Unix 测试技术
揭秘!前端大牛们如何高效管理项目,确保按时交付高质量作品!
【10月更文挑战第30天】前端开发项目涉及从需求分析到最终交付的多个环节。本文解答了如何制定合理项目计划、提高团队协作效率、确保代码质量和应对项目风险等问题,帮助你学习前端大牛们的项目管理技巧,确保按时交付高质量的作品。
33 2
|
2月前
|
负载均衡 前端开发 JavaScript
前端研发链路之开发
本文首发于微信公众号“前端徐徐”,作者徐徐。文章介绍了前端研发链路中的开发部分,重点探讨了开发服务器(dev-server)、热更新(hot-reload)、数据模拟(mock)和代理(proxy)等关键技术,帮助开发者理解其基本原理和应用场景,提升开发效率和代码质量。
37 2
前端研发链路之开发
|
1月前
|
前端开发 JavaScript
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
|
2月前
|
人工智能 前端开发 测试技术
探索前端与 AI 的结合:如何用 GPT-4 助力开发效率
本文介绍了 GPT-4 如何成为前端开发者的“神队友”,让开发变得更加高效愉快。无论是需求到代码的自动生成、快速调试和性能优化,还是自动化测试和技术选型,GPT-4 都能提供极大的帮助。通过智能生成代码、捕捉 BUG、优化性能、自动化测试生成以及技术支持,GPT-4 成为开发者不可或缺的工具,帮助他们从繁重的手动任务中解脱出来,专注于创新和创意。GPT-4 正在彻底改变开发流程,让开发者从“辛苦码农”转变为“效率王者”。
36 0
探索前端与 AI 的结合:如何用 GPT-4 助力开发效率
|
2月前
|
前端开发 JavaScript 开发者
React 组件化开发最佳实践
【10月更文挑战第4天】React 组件化开发最佳实践
50 4
|
2月前
|
缓存 前端开发 JavaScript
前端架构思考:代码复用带来的隐形耦合,可能让大模型造轮子是更好的选择-从 CDN 依赖包被删导致个站打不开到数年前因11 行代码导致上千项目崩溃谈谈npm黑洞 - 统计下你的项目有多少个依赖吧!
最近,我的个人网站因免费CDN上的Vue.js包路径变更导致无法访问,引发了我对前端依赖管理的深刻反思。文章探讨了NPM依赖陷阱、开源库所有权与维护压力、NPM生态问题,并提出减少不必要的依赖、重视模块设计等建议,以提升前端项目的稳定性和可控性。通过“left_pad”事件及个人经历,强调了依赖管理的重要性和让大模型代替人造轮子的潜在收益