[书籍精读]《React Native精解与实战》精读笔记分享

书籍介绍:本书由架构师撰写,包含ReactNative框架底层原理,以及与iOS、Android混合开发案例,精选了大量实例代码,方便读者快速学习。主要内容分为两大部分,第1部分“入门”包括第19章,介绍ReactNative框架的基本原理与使用方法;第2部分“进阶”包括第1015章,介绍ReactNative框架的高阶开发与App部署相关知识。附录部分剖析了ReactNative的源码,可帮助读者研究ReactNative底层本质,还分享了一些ReactNative框架学习的相关资源。

我的简评:我是去年年底才开始学习使用React和React Native进行开发的,之前用的都是Vue的技术栈。这本书给我的感受就是逻辑清晰,通俗易懂,从基础入门到原理进阶,一一道来。但我想如果作者能再附带一个完整的项目实战可能效果更好,不过作者ParryQiu本人也写过很多技术教程以及录制了几套视频教程,有兴趣的可以去他个人的技术博客看看。

!!福利:文末有pdf书籍笔记思维导图、随书代码打包下载地址。觉得有用,记得点赞或收藏哦!

[书籍精读]《React Native精解与实战》精读笔记分享

1.React Native简介 React简介

最早孵化于Facebook内部

Jordan Walke是框架的创始人

底层核心是Virtual DOM

React Native简介

在React框架的基础之上

底层通过对IOS平台和Android平台原生代码的封装与调用

JavaScript Core底层

React Native学前知识

HTML5的基础知识

CSS布局的基本知识

JavaScript的基础知识

Ios和Android两个平台的App打包、部署与上线

Node.js以及npm包管理的知识

2.开发环境配置

安装nodejs

安装React Native

编辑器Vscode

推荐插件

React Native Tools

react-beautify

3.React Native工作原理与生命周期 3.1.框架工作原理

JSX源码通过React Native框架编译后,通过对应平台的Bridge实现了与原生框架的通信

UI层变更就映射为虚拟DOM后调用diff算法计算出变动后的JSON映射文件,最终由Native层将此JSON文件映射渲染到原生App的页面元素上,实现了项目中只需控制state以及props的变更来引起IOS与Android平台的UI变更

3.2.与原生平台通信

与原生框架通信中,采用了JavaScriptCore作为JS VM,中间通过JSON文件与Bridge进行通信

Chrome浏览器进行调试,那么所有的JavaScript代码都将运行在Chrome的V8引擎中,与原生代码通过WebSocket进行通信

3.3.组件间通信

父子组件通信:props

子父组件通信:传入函数

多级组件之间的通信:context对象或global等方式

无直接关系组件间通信:AsyncStorage或JSON文件,EventEmitter/EventTarget/EventDispatcher继承或实现的接口,Signals模式,Publish/Suubscribe广播形式

3.4.React Native生命周期

初始化阶段:constructor

加载阶段:componentWillMount、render、componentDidMount

更新阶段:componentWillReceiveProps、shouldComponentUpdate、componentWillUpdate、componentDidUpdate

卸载阶段:componentWillUnmount

4.React Native页面布局 4.1.CSS3

选择器、2D/3D转换、盒子模型、动画、背景和边框、多列布局、文字特效、用户界面

引入新的模块:Flex布局,通俗称为弹性盒模型。为了更加有效的去布局、对其元素

4.2.Flex弹性盒模型

元素以两个坐标方向进行布局,分别称为主轴和交叉轴

元素都存在于Flex容器中

以Flex Container的起始与结束作为坐标的起始与结束点

可以自动伸缩,默认可以填充剩余的空间

4.3.Flex详解

justify-content

align-items

align-self

flex-direction

flex-basis

flex-wrap

align-content

flex-grow

flex-shrink

order

flex-flow

flex

4.4.React Native中Flex

因为在React Native框架中直接使用JavaScript来实现属性的定义,所以所有属性都按照React Native中定义的写法来写,只是属性名称部分有连接符的,在React Native中变成了驼峰拼写的形式,并且某些属性的默认值进行了变更,但是本质的原理与作用是不变的

5.React Native开发调试技巧与工具 5.2.常用调试属性(开发者菜单)

重新加载刷新应用

启动实时重新加载刷新

启用调试跟踪

启用热加载

显示审查元素工具

显示性能监控工具

5.3.Chrome中远程调试

在 React Native 开发调试时,打开模拟器或真机设备上的开发者菜单,选择“ Debug JS Remotely ”后,本地的 Chrome 浏览器会自动打开一个 tab,URL 地址
为 :8081/debugger-ui

5.4.React Developer Tools工具

树形结构查看

源码搜索

边栏工具

6.React Native组件详解 6.1.组件简介

提供一系列的内置组件供开发者使用

依托开源社区强大的生态系统,更有无穷无尽的开发组件可供使用

6.2.视图组件View

用于布局的基础组件是View组件,其他所有的组件都可以布局在View组件中,类似网页布局中的div

支持Flex CSS属性,还支持React Native中的样式、一些触摸事件以及一些可访问性的属性设置

View组件对应iOS平台的UIView,Android平台的Android.view以及HTML中的div

6.3.底部导航组件TabBar

iOS平台下的TabBarIOS

Android平台没有官方提供的TabBar组件,推荐使用开源组件react-native-tab-navigator

6.4.页面跳转组件

iOS平台下的NavigatorIOS

Android没有官方的页面导航组件,推荐使用react-native-navigation

6.5.图片组件Image

提供多种方式加载图片资源,如加载网络图片、静态资源、本地图片、或读取用户相册中的图片

Android平台下还可以支持GIF和WebP图片格式,iOS平台上支持psd

在iOS平台下,加载的资源必须是HTTPS协议资源

6.6.文本组件Text

React Native中不可以直接将文字放置在View组件之下

可以进行文字的嵌套处理

React Native没有直接定义元素级别样式的能力,所以不能让所有的Text等组件直接通过继承的方式获取到统一的样式定义

6.7.输入框组件TextInput

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsfpxg.html