Rongyan Chen

Results 9 issues of Rongyan Chen

- [x] 新增 `@uni/utils` :将 utils 中非测试函数依赖移到 packages/utils 中,原 utils 中的 `__test__` 保持不变 - [ ] 更新所有用到了 `@utils/` 能力的组件包,使其依赖 `@uni/utils` 其中大包中不导出 utils

目前 Rax 小程序使用了 @ice/store 作为状态管理方案,对于全局状态而言存在一些问题: 在小程序中,打开一个页面在处理上更接近 MPA 的新建页面,即需要渲染整个页面。@ice/store 依赖了 react-redux,并将 Provider 放在页面组件的父亲节点上。这样会导致 Provider 节点会被重新创建,如果用户在 src/app.ts 中声明了全局的初始状态,那么新打开的页面会被重新初始化一次,导致全局状态管理失效。 解决方案: 初步想法是将状态挂在到 App 或 Page 上,用小程序的全局和页面属性来保存状态。这套方案在对外接口上保持与 @ice/store 保持一致。

rax-componentwrapper: https://github.com/raxjs/rax-components/pull/399 在运行时小程序中,默认所有的数据更新都使用 `Page` 的 `setData` 方法。对于部分需要频繁更新数据的元素来说,可以在元素外包裹 `rax-componentwrapper` 的方式,自动将该元素转成自定义组件,当元素数据发生变化时,使用组件的 `setData`,来起到性能优化的目的。 需要注意:在阿里小程序中,需要开启基础库 2.0 构建或开启 component2 功能时,才能正常使用该组件,否则将降级使用 `Page` 的 `setData` 方法。

运行时小程序的 eslint plugin

重构运行时小程序和web的 rax-recyclerview 组件:在 rax-scrollview 的基础上实现元素回收,按需渲染视口和缓冲区内的元素,回收视口和缓冲区外元素。通过减少页面元素,已达到优化页面性能的目的。 ![](https://img.alicdn.com/imgextra/i2/O1CN01jYJL7E1qDBbvGLdVx_!!6000000005461-0-tps-1096-1676.jpg) 针对业务场景中,部分 Tab 标签需要置顶的情况,被 `RecyclerView.Header` 包裹的子元素不会参与回收。 详细文档:https://github.com/raxjs/rax-components/tree/refactor/recyclerview/packages/rax-recyclerview

## 支持 阿里小程序(运行时) / 微信小程序(运行时) ## 描述 在运行时小程序中,默认所有的数据更新都使用 `Page` 的 `setData` 方法。对于部分需要频繁更新数据的元素来说,可以在元素外包裹 `rax-componentwrapper` 的方式,自动将该元素转成自定义组件,当元素数据发生变化时,使用组件的 `setData`,来起到性能优化的目的。 需要注意:在阿里小程序中,需要开启基础库 2.0 构建或开启 component2 功能时,才能正常使用该组件,否则将降级使用 `Page` 的 `setData` 方法。 ## 安装 ``` $ npm install...

https://github.com/raxjs/rax-components/issues/386 - Remove `resetScroll` method - Add `resetEndReached` method: reset status to trigger `onEndReached` - Rename `onEndReachedThreshold`: `endReachedThreshold`

1)属性名: onEndReachedThreshold 修改为 endReachedThreshold,表示加载更多的偏移值 2)表现对齐: - onEndReached 在 Web 下,仅当 contentSize 发生变化时,滑动到底部才能触发 onEndReached 回调; 在小程序中,滑动到底部就能触发 onEndReached 回调; - resetScroll 在 Web、weex 和非微信小程序中,调用 resetScroll 时,不改变组件展示;在微信小程序中,会滚动到顶部; 在对齐各端表现的前提下,onEndReached 在业务中一般用来做加载更多内容的功能,如果只判断滑到底部就触发`onEndReached`回调可能会造成短时间内多次获取更多内容的情况,因此删除 `resetScroll`,增加 `resetEndReached`,用于重置触底事件,若业务需要滚动到顶部,可调用`scrollTo`。 - onEndReached...