Skip to content

Commit

Permalink
docs(ios): add iOS 3.0 upgrade guide
Browse files Browse the repository at this point in the history
  • Loading branch information
wwwcg committed Apr 1, 2024
1 parent 6a0b95a commit fdece64
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 8 deletions.
2 changes: 1 addition & 1 deletion docs/api/hippy-react/components.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ import icon from './qb_icon_new.png';
| getHeaderStyle | 设置 `PullHeader` 容器的样式。当设置了 `horizontal=true` 启用横向 `ListView` 时,需显式设置 `PullHeader` 宽度。`最低支持版本2.14.1` | `() => styleObject` | `Android、iOS、Voltron` |
| getFooterStyle | 设置 `PullFooter` 容器的样式。当设置了 `horizontal=true` 启用横向 `ListView` 时,需显式设置 `PullFooter` 宽度。`最低支持版本2.14.1` | `() => styleObject` | `Android、iOS、Voltron` |
| getRowType | 指定一个函数,在其中返回对应条目的类型(返回Number类型的自然数,默认是0),List 将对同类型条目进行复用,所以合理的类型拆分,可以很好地提升 List 性能。`注意:同一 type 的 item 组件由于复用可能不会走完整组件创建生命周期` | `(index: number) => number` | `Android、iOS、hippy-react-web、Web-Renderer、Voltron` |
| horizontal | 指定 `ListView` 是否采用横向布局。`default: undefined` 纵向布局,Android `2.14.1` 版本后可设置 `false` 显式固定纵向布局;iOS 暂不支持横向 `ListView`| `boolean \| undefined` | `Android、hippy-react-web、Voltron` |
| horizontal | 指定 `ListView` 是否采用横向布局。`default: undefined` 纵向布局,Android `2.14.1` 版本后可设置 `false` 显式固定纵向布局;iOS `3.0` 开始支持横向 `ListView`| `boolean \| undefined` | `Android、iOS、hippy-react-web、Voltron` |
| initialListSize | 指定在组件刚挂载的时候渲染多少行数据。用这个属性来确保首屏显示合适数量的数据,而不是花费太多帧时间逐步显示出来。 | `number` | `Android、iOS、Web-Renderer、Voltron` |
| initialContentOffset | 初始位移值。在列表初始化时即可指定滚动距离,避免初始化后再通过 scrollTo 系列方法产生的闪动。Android 在 `2.8.0` 版本后支持 | `number` | `Android、iOS、Web-Renderer、Voltron` |
| onAppear | 当有`ListViewItem`滑动进入屏幕时(曝光)触发,入参返回曝光的`ListViewItem`对应索引值。 | `(index) => void` | `Android、iOS、hippy-react-web、Web-Renderer、Voltron` |
Expand Down
14 changes: 9 additions & 5 deletions docs/development/3.0-upgrade-guidelines.md
Original file line number Diff line number Diff line change
Expand Up @@ -186,12 +186,16 @@ Hippy-Vue-Next 在升级3.0可以完全兼容之前的版本,除了升级如

从设计上,`Hippy3.0`尽可能保持了与`Hippy2.0`的兼容性。大部分`Hippy2.0`的自定义组件和自定义模块均可无需任何修改,兼容`Hippy3.0`。

同时在SDK接入API方面,`Hippy3.0`也与`Hippy2.17`版本尽可能保持了一致。因此,如果您在业务中未曾深度扩展`Hippy内置组件`或模块,升级SDK的过程将非常简单,一般情况下仅会遇到少许编译问题甚至无需修改任何代码
同时在SDK接入API方面,`Hippy3.0`也尽可能保持了一致。因此,如果您未曾在业务中深度扩展`Hippy内置组件`或模块,升级SDK的过程将非常简单,一般情况下仅会遇到少许编译问题,甚至无需修改任何代码

然而由于适配新架构和优化一致性等原因,部分内在实现会不可避免的发生变化。如果您在业务中存在较多深度定制的自定义组件,如对ListView组件、Image组件进行了深度扩展,那可能会遇到一些编译问题,本文将做详细说明。
然而由于3.0的架构改进和一致性优化等原因,部分内在实现会不可避免的发生变化。如果您在业务中存在较多深度定制的自定义组件,如对ListView组件、Image组件进行了深度扩展,那将可能会遇到一些编译问题,本文将做详细说明。

改动较大的组件/模块的说明如下:

- 删除了`HippyVirtualNode`、`HippyVirtualList`、`HippyVirtualCell`等相关类和API:`HippyVirtualNode`在2.0中作为列表等组件的虚拟对象和数据源,其作用与`HippyShadowView`存在重复,因此`Hippy3.0`删除了这一冗余虚拟对象。
- ListView组件:为支持横滑相关特性,ListView的渲染实现从`UITableView`切换为了`UICollectionView`。相应的,列表中Cell的基类也由`UITableViewCell`变更为了`UICollectionViewCell`。
- Image相关:删除了2.0中内置的背景图片缓存管理类,即`HippyBackgroundImageCacheManager`,图片缓存逻辑交由业务方自行定制。
1. 删除了`HippyVirtualNode`、`HippyVirtualList`、`HippyVirtualCell`等相关类和API:`HippyVirtualNode`在2.0中作为列表等组件的虚拟对象和数据源,其作用与`HippyShadowView`存在重复,因此`Hippy3.0`删除了这一冗余虚拟对象。

2. ListView组件:为支持横滑(`horizontal: true`)相关特性,ListView的渲染实现从`UITableView`切换为了`UICollectionView`。相应的,列表中Cell的基类也由`UITableViewCell`变更为了`UICollectionViewCell`。

3. Image组件source属性:由于3.0中关于image source的调用约定发生了变化(从 `NSArray` 类型的 `source` 调整为了 `NSString` 类型的 `src`),因此,如自定义了Image组件,请注意在对应的ViewManager中补充实现 `src` 属性,否则图片可能无法正常显示。

4. Image组件内置图片缓存:删除了2.0中内置的背景图片缓存管理类,即`HippyBackgroundImageCacheManager`,图片缓存逻辑交由业务方自行定制。
4 changes: 2 additions & 2 deletions docs/development/native-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,15 +122,15 @@
end
```

> 默认配置下,Hippy SDK使用布局引擎是[Taitank](https://github.com/Tencent/Taitank),JS引擎是系统的`JavaScriptCore`,如需切换使用其他引擎,请参照下文[《引擎切换(可选)》](#四引擎切换可选)一节调整配置。

!> 请注意,由于hippy3.x中大量使用了 #include"path/to/file.h" 的方式引用C++头文件,因此如果开启了 CocoaPods 的 framework 格式集成选项(即Podfile中 `use_frameworks!` 配置为开启状态),则必须在 Podfile 文件中加入如下配置:

```text
# 工程开启 use_frameworks! 后需添加此环境变量,用于hippy使用正确设置项
ENV["use_frameworks"] = "true"
```

> 默认配置下,Hippy SDK使用布局引擎是[Taitank](https://github.com/Tencent/Taitank),JS引擎是系统的`JavaScriptCore`,如需切换使用其他引擎,请参照下文[《引擎切换(可选)》](#四引擎切换可选)一节调整配置。

3. 最后,在命令行中执行

```shell
Expand Down

0 comments on commit fdece64

Please sign in to comment.