react3

164 阅读7分钟

按需打包

在vue中,使用组件之前,建议全部安装,这样使用更方便。 在react中,为了优化,建议我们使用什么组件,引入什么组件。 所以react提供了一个按需打包的技术,与按需加载类似,都是为了性能优化。 按需加载

  • ​ 在浏览器端,需要什么资源,加载什么资源(如:require.js, sea.js). 按需打包(react提供了一个按需打包插件:babel-plugin-import插件)
  1. ​在编译阶段,需要什么资源,打包什么资源
  2. ​在babel的配置options.plugins中配置该插件。是一个数组,每一个成员代表一个插件。
  • ​ 成员可以是字符串,直接引入
  • ​ 成员还可以是数组:
  • ​ 第一个成员代表插件名称,
  • ​ 第二个成员代表插件配置
  • ​ libraryName 按需打包的模块
  • ​ style 按需打包的样式文件类型
  • ​ 注意:一旦使用按需打包的技术,样式就不需要手动引入了,会自动打包进来。 webpack.config.js
// 接口
module.exports = {
    // 模式
    mode: 'development',
    // 解决问题
    resolve: {
        // 默认拓展名
        extensions: ['.jsx', '.js']
    },
    // 入口
    entry: './modules/main.jsx',
    // 发布
    output: {
        // 发布位置
        filename: './main.js'
    },
    // 模块
    module: {
        // 加载机
        rules: [
            // jsx
            {
                test: /\.jsx$/,
                loader: 'babel-loader',
                // 配置
                options: {
                    // 编译器
                    presets: ['@babel/preset-env', '@babel/react'],
                    // 功能
                    plugins: [
                        ['import', {
                            libraryName: 'antd-mobile',
                            // 按需打包css
                            style: 'css'
                        }]
                    ]
                }
            },
            // css
            {
                test: /\.css$/,
                loader: 'style-loader!css-loader'
                // use
            },
            // less
            {
                test: /\.less$/,
                loader: 'style-loader!css-loader!less-loader'
            },
            // scss
            {
                test: /\.scss$/,
                loader: 'style-loader!css-loader!sass-loader'
            }
        ]
    }
}

脚手架安装

  • 全局安装指令 npm i -g creact-react-app
  • 开始创建项目 create-react-app 项目名称

create-react-app创建的项目也是通过yarn来管理和维护的,安装模块用yarn安装。 例如:yarn add react-router react-router-dom redux react-redux yarn add指令功能与npm install指令是一样的。

目录部署

  • node_modules 依赖模块
  • public 静态目录
  • ​ favicon.ico:logo
  • ​ index.html:模板入口文件
  • ​ manifest.json:离线缓存配置
  • src 开发目录
  • ​ App.css:应用程序样式
  • ​ App.js:应用程序脚本
  • ​ App.test.js:应用程序单元测试
  • ​ index.css:全局样式
  • ​ logo.svg:eact的logo
  • ​ registreServiceWorker.js:web workers
  • .gitignore git 配置
  • package.json npm 包配置
  • README.md 介绍文件
  • yarn.lock yarn锁文件

指令

  • create-react-app创建的项目提供了一些指令:
  • ​ start 启动项目,默认端口号是3000
  • ​ build 发布项目,默认发布到build目录下
  • ​ test 单元测试
  • ​ eject 输入webpack配置
  • 任务:
  • ​ 将静态资源发布到外面的dist目录下
  • ​ 将模板资源发布到外面的views目录下
  • 这些指令既可以使用yarn来启动,也可以使用npm来启动。

PWA 应用

PWA应用是一个渐进式的web应用,介于源生app与网站页面之间的一个应用。 其中

  • ​ manifest.json就是离线缓存的文件
  • ​ registreServiceWorker.js也是为pwa应用提供的web worker文件。 在浏览器中,点击“创建快捷方式”就可以在桌面上,创建一个离线应用。 使用方式 打开chrome 浏览器 打开开发的应用程序界面 点击 三个点-->更多工具-->创建快捷方式

image.png

混合开发

  • react要实现多端适配,因此为不同的端提供了不同的渲染器。
  • 在不同的端渲染同一个应用程序,这个技术叫混合开发(跨平台开发)
  • 常见的混合开发有三类:
  • ​ 1 类小程序开发。如:微信小程序
  • ​ 2 基于hybird,cordova等技术实现的开发。例如:angular
  • ​ 3 基于reactnative,flutter等技术的开发。
  • ​ 将前端语言编译成各自端中的语言。
  • GitHub地址:github.com/reactnative
  • 中文网站:reactnative.cn/docs/gettin…

ReactNative

  1. 我们要安装react-native指令 npm install -g react-native-cli
  2. 创建项目 react-native init 项目名称
  3. 启动项目的指令(react-native创建的项目既可以在ios上运行,也可以在android运行)
  • ios上启动: react-native run-ios
  • android上启动: react-native run-android

目录部署

  • _tests_ 单元测试目录
  • android android编译文件
  • ios ios编译文件
  • node_modules 依赖模块
  • 以点开头的都是配置文件
  • App.js 应用程序组件
  • app.json 应用程序配置
  • index.js 入口文件
  • package.json npm包配置
  • yarn.lock yarn锁文件

IOS 环境(只能在mac系统下,开发ios。)

  • 在mac系统下,配置环境只需要两步:
  • ​ 第一步 安装xcode
  • ​ 第二步 创建react-native项目,并运行

android 环境安装

安装步骤

  • ​ 1 安装python
  • ​ 2 安装java
  • ​ 3 安装sdk
  • ​ 4 配置环境变量

注意: 今天安装的所有软件,解压的所有项目,路径中不要出现中文。今天所有的软件安装在默认目录下。

安装软件

  • 安装python 双击安装程序,进行下一步安装
  • 安装java 双击安装程序,进行下一步安装。
  • 安装sdk 常用的安装方式有两种
  • ​ 1 安装sdk manager (工作中常用)
  • ​ 2 直接解压已经安装好的sdk压缩包 (学习中常用)
  • ​ 例如:解压到: d:/android-sdk

安装SDK模块

image.png

image.png

image.png

image.png

image.png

image.png

  • 注意:安装软件的时候,要勾选“accept license”选项。
  • 配置环境变量
  • 计算机 => 右键 => 属性 => 高级系统设置 => 环境变量
  • 环境变量分为两类
  • ​ 一类是:用户环境变量
  • ​ 一类是:系统环境变量
  • 对环境变量的操作有三类:
  • ​ 创建环境变量
  • ​ 编辑环境变量
  • ​ 删除环境变量

配置 Java

  • 新建JAVA_HOME环境变量
  • ​ 变量名:JAVAHOME 变量值:C:\Program Files (x86)\Java\jdk1.8.0144
  • 编辑path环境变量
  • ​ 添加bin路径
  • ​ 第一种: C:\Program Files (x86)\Java\jdk1.8.0_144\bin
  • ​ 第二种:%JAVA_HOME%\bin
  • ​ 添加jre\bin路径
  • ​ 第一种:C:\Program Files (x86)\Java\jdk1.8.0_144\jre\bin
  • ​ 第二种:%JAVA_HOME%\jre\bin
  • 注意:今天统一使用第一种添加方式。
  • 配置 SDK
  • 新建ANDROID_HOME环境变量
  • ​ 变量名:ANDROID_HOME
  • ​ 变量值(解压方式):D:\android-sdk
  • ​ 变量值(安装sdk manager方式):C:\Program Files (x86)\Android\android-sdk
  • 注意:
  • ​ 1 进入该路径要看到很多文件
  • ​ 2 如果是解压的,要写成解压的路径
  • 编辑path环境变量
  • ​ 添加tools目录
  • ​ 第一种:D:\android-sdk\tools
  • ​ 第二种:%ANDROID_HOME%\tools
  • ​ 添加platform-tools目录
  • ​ 第一种:D:\android-sdk\platform-tools
  • ​ 第二种:%ANDROID_HOME%\platform-tools
  • 验证环境变量
  • 保存环境变量后,重启cmd
  • ​ 验证java: javac
  • ​ 验证sdk: android, adb

手机测试

  • 测试步骤
  • ​ 1 手机链接电脑
  • ​ 2 打开手机上的开发者模式
  • ​ 设置 => 其他设置 => 开发者选项 => 打开usb调试
  • ​ 3 cmd中,输入adb devices,要看到链接的设备
  • ​ 4 进入react-native项目目录,执行react-native run-android
  • ​ 第一次运行要链接网络,需要下载东西,需要很长时间

image.png

手机调试

  • 清除缓存
  • ​ cd android 进入andorid目录
  • ​ gradlew clean 清除缓存
  • ​ cd .. 返回上一级目录
  • 手机调试
  • ​ 在cmd中,输入adb shell input keyevent 82指令,既可以打开调试面板
  • ​ reload 重新加载页面
  • ​ enable|disabled hot reloading 是否启动热加载

模拟器测试

  • 安装genymotion
  • ​ 双击安装程序,进行下一步安装。学习中,建议安装低版本的。
  • 安装vbox
  • ​ 双击安装程序,进行下一步安装
  • 启动应用
  • ​ 先启动vbox,再启动genymotion
  • 登录genymotion
  • ​ 注册地址:www.genymotion.com/account/cre…
  • ​ 点击setting按钮,输入用户名和密码。

image.png

配置genymotion

  • 点击adb选项,设置adb路径。 点击browse按钮,选择器sdk安装(解压)路径
  • ​ 注意:电脑配置不同,点击时候卡顿的时间不同。要耐心等待。
  • 安装应用:点击 按钮,选择设备,安装设备(由于资源在国外的服务器上,因此常常会安装失败)

image.png

image.png

image.png

手动安装设备

  • 在vbox中,
  • ​ 管理 => 导入虚拟电脑 => 选择ova文件 => 下一步安装
  • ​ 注意:建议安装低版本的模拟器。
  • 安装完成,重启vbox和genymotion就可以调试项目了

image.png

image.png

启动项目

  • 1 启动模拟器
  • 2 输入adb devices查看是否存在设备。
  • 3 进入项目目录中,运行react-native run-android
  • 我们的项目开发完,就可以将其发布到手机上,电视机上,车载导航上等这些android系统中。
  • 调试工具 (开发react-native项目,常用的调试工具有三个:)
  1. 模拟器调试,
  2. ​ 日志输出,
  3. ​ 调试虚拟DOM

模拟器调试

  • 点击 菜单按钮,打开调试菜单:
  • ​ reload 重新载入应用
  • ​ enable | disable hot reloading 是否启动热加载

image.png

日志输出

  • 有时候我们希望通过console.log打印一些内容。
  • 进入项目目录,运行以下指令:
  • ​ 在android中运行 react-native log-android
  • ​ 在ios中运行 react-native log ios

react 工具

  • 调试虚拟DOM
  • react-native为了调试DOM,也提供了可视化工具。但是我们需要安装 npm install -g react-devtools@3.6
  • 调试界面:
  • 我们可以看到虚拟DOM的层级结构,层级关系,属性,状态,上下文,样式,盒模型等等。

image.png