前端程序猿的天花板?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 开发者
颠覆传统:React框架如何引领前端开发的革命性变革
【10月更文挑战第32天】本文以问答形式探讨了React框架的特性和应用。React是一款由Facebook推出的JavaScript库,以其虚拟DOM机制和组件化设计,成为构建高性能单页面应用的理想选择。文章介绍了如何开始一个React项目、组件化思想的体现、性能优化方法、表单处理及路由实现等内容,帮助开发者更好地理解和使用React。
91 9
|
2月前
|
监控 前端开发 数据可视化
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
@icraft/player-react 是 iCraft Editor 推出的 React 组件库,旨在简化3D数字孪生场景的前端集成。它支持零配置快速接入、自定义插件、丰富的事件和方法、动画控制及实时数据接入,帮助开发者轻松实现3D场景与React项目的无缝融合。
191 8
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
|
3月前
|
JavaScript 前端开发 Docker
前端全栈之路Deno篇(二):几行代码打包后接近100M?别慌,带你掌握Deno2.0的安装到项目构建全流程、剖析构建物并了解其好处
在使用 Deno 构建项目时,生成的可执行文件体积较大,通常接近 100 MB,而 Node.js 构建的项目体积则要小得多。这是由于 Deno 包含了完整的 V8 引擎和运行时,使其能够在目标设备上独立运行,无需额外安装依赖。尽管体积较大,但 Deno 提供了更好的安全性和部署便利性。通过裁剪功能、使用压缩工具等方法,可以优化可执行文件的体积。
174 3
前端全栈之路Deno篇(二):几行代码打包后接近100M?别慌,带你掌握Deno2.0的安装到项目构建全流程、剖析构建物并了解其好处
|
2月前
|
前端开发 JavaScript 开发者
使用React和Redux构建高效的前端应用
使用React和Redux构建高效的前端应用
49 1
|
2月前
|
前端开发 测试技术
前端工程化的分支策略要如何与项目的具体情况相结合?
前端工程化的分支策略要紧密结合项目的实际情况,以实现高效的开发、稳定的版本控制和顺利的发布流程。
34 1
|
2月前
|
前端开发 数据可视化 搜索推荐
深入剖析极态云优雅的前端框架设计方案(上)
最近在体验极态云,这款低代码软件开发产品,发现其前端框架设计方案很优雅很强大! 在接下来的学习过程中,我将持续输出自己对极态云前端框架设计方案的深入理解,包括具体的使用技巧、优势分析以及可能的应用场景等方面的内容,希望能为大家提供有价值的参考。
|
2月前
|
前端开发 Unix 测试技术
揭秘!前端大牛们如何高效管理项目,确保按时交付高质量作品!
【10月更文挑战第30天】前端开发项目涉及从需求分析到最终交付的多个环节。本文解答了如何制定合理项目计划、提高团队协作效率、确保代码质量和应对项目风险等问题,帮助你学习前端大牛们的项目管理技巧,确保按时交付高质量的作品。
45 2
|
2月前
|
前端开发 JavaScript Android开发
前端框架趋势:React Native在跨平台开发中的优势与挑战
【10月更文挑战第27天】React Native 是跨平台开发领域的佼佼者,凭借其独特的跨平台能力和高效的开发体验,成为许多开发者的首选。本文探讨了 React Native 的优势与挑战,包括跨平台开发能力、原生组件渲染、性能优化及调试复杂性等问题,并通过代码示例展示了其实际应用。
75 2
|
2月前
|
前端开发 JavaScript 开发者
React与Vue:前端框架的巅峰对决与选择策略
【10月更文挑战第23天】React与Vue:前端框架的巅峰对决与选择策略
|
2月前
|
前端开发 JavaScript
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
手敲Webpack 5:React + TypeScript项目脚手架搭建实践