按需打包
在vue中,使用组件之前,建议全部安装,这样使用更方便。 在react中,为了优化,建议我们使用什么组件,引入什么组件。 所以react提供了一个按需打包的技术,与按需加载类似,都是为了性能优化。 按需加载
- 在浏览器端,需要什么资源,加载什么资源(如:require.js, sea.js). 按需打包(react提供了一个按需打包插件:babel-plugin-import插件)
- 在编译阶段,需要什么资源,打包什么资源
- 在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 浏览器 打开开发的应用程序界面 点击 三个点-->更多工具-->创建快捷方式
混合开发
- react要实现多端适配,因此为不同的端提供了不同的渲染器。
- 在不同的端渲染同一个应用程序,这个技术叫混合开发(跨平台开发)
- 常见的混合开发有三类:
- 1 类小程序开发。如:微信小程序
- 2 基于hybird,cordova等技术实现的开发。例如:angular
- 3 基于reactnative,flutter等技术的开发。
- 将前端语言编译成各自端中的语言。
- GitHub地址:github.com/reactnative
- 中文网站:reactnative.cn/docs/gettin…
ReactNative
- 我们要安装react-native指令 npm install -g react-native-cli
- 创建项目 react-native init 项目名称
- 启动项目的指令(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模块
- 注意:安装软件的时候,要勾选“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
- 第一次运行要链接网络,需要下载东西,需要很长时间
手机调试
- 清除缓存
- 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按钮,输入用户名和密码。
配置genymotion
- 点击adb选项,设置adb路径。 点击browse按钮,选择器sdk安装(解压)路径
- 注意:电脑配置不同,点击时候卡顿的时间不同。要耐心等待。
- 安装应用:点击 按钮,选择设备,安装设备(由于资源在国外的服务器上,因此常常会安装失败)
手动安装设备
- 在vbox中,
- 管理 => 导入虚拟电脑 => 选择ova文件 => 下一步安装
- 注意:建议安装低版本的模拟器。
- 安装完成,重启vbox和genymotion就可以调试项目了
启动项目
- 1 启动模拟器
- 2 输入adb devices查看是否存在设备。
- 3 进入项目目录中,运行react-native run-android
- 我们的项目开发完,就可以将其发布到手机上,电视机上,车载导航上等这些android系统中。
- 调试工具 (开发react-native项目,常用的调试工具有三个:)
- 模拟器调试,
- 日志输出,
- 调试虚拟DOM
模拟器调试
- 点击 菜单按钮,打开调试菜单:
- reload 重新载入应用
- enable | disable hot reloading 是否启动热加载
日志输出
- 有时候我们希望通过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的层级结构,层级关系,属性,状态,上下文,样式,盒模型等等。