首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

鸿蒙实战:ArkTs 开发一个鸿蒙应用

WindowStage 为本地窗口管理器,用于管理窗口相关的内容,例如与界面相关的获焦/失焦、可见/不可见。Ability 的生命周期和 WindowStage 回调对应的关系,如下图所示。...这是为了确保 UI 代码的清晰性和维护性,同时遵循了关注点分离(Separation of Concerns)的原则。...而且注解 @state 在实际开发中用的非常频繁。注解 @state 主要用于刷新 UI, 当用注解  @state 标记的成员变量内容发生变化时,会自动重新渲染 UI。具体的表现如下图所示。...点击左图上的按钮,会获取数据, 当数据变化时,会自动刷新 UI,结果如右图所示。那么在代码中如何实现呢。我们可以在代码中,声明一个用注解 @State 标记的成员变量 listItems。...,转发,有你们的 『点赞和评论』,才是我创造的动力。

31020

利用云开发优化博客小程序(一)——浏览量统计

想了解我的博客搭建和小程序版博客可以参考下面两篇文章: 搭建Ghost 博客详细教程(总) 微信小程序版博客——开发汇总总结(附源码) 统计实现 最想实现的还是统计功能啦,每篇文章的浏览量,点评数,点赞数之类的...截图1 创建集合 接下来利用云开发的数据库创建一个集合,用于保存文章的统计数据,集合的字段如下: { "_id": W5y6i7orBK9ufeyD //主键id "comment_count...,由于可能第一次访问,集合中不存在该文章ID的数据,所以加了一段默认新增的动作,代码如下: // 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init...,小程序端就可以接入了,在列表页增加对应的UI及样式: 截图3 对应的代码也比较简单,在获取到文章信息之后,再调用下查询的云函数,获取到对应文章的统计数据渲染到页面,核心代码如下: //wxml部分 <...总结 目前还在开发评论功能,同时在开发的时候发现第一版的代码写的还是挺乱的,在开发新功能的同时也准备重构一下,有兴趣的小伙伴可以参考一下。

1.5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    我真的太爱 useOptimistic 这个新 hook 了

    而不会等待发送成功之后再更新页面 UI 如上图所示,普通的执行过程是 发送 -> 发起请求 -> 请求成功 -> 更新 UI 乐观更新的执行过程是 发送 -> 更新 UI 并发起请求 -> 请求成功 因此...它需要一些明确的前提条件 1、请求成功的概率非常大,几乎不会失败 2、不涉及到频繁的,密集的 UI 变化 3、可撤回的 UI 变化 4、与服务端的反馈时间短,不是一个长期的持续的响应过程 例如,在聊天软件中...,发送一条消息,在阅读文章时,点赞收藏按钮的交互,给文章发送一条评论,删除一条评论等都非常适合乐观更新。...5、案例一:消息发送 我们要实现的效果如下图所示。首先明确一点,消息发送是一个异步过程,因此我们把这个过程使用 Sending... 字符来表示,当每条消息的 Sending......7、案例三:点赞按钮 再来实现一个比较常见的点赞按钮的交互逻辑。演示效果如下图所示 当按钮处于灰色状态时,表示用户还未点赞该文章。点击之后,变成红色,表示点赞。

    65110

    程序员过关斩将-- 喷一喷坑爹的面向UI编程

    当产品把业务正确的用UI表达出来之后,业务便传到了客户端人员,至于服务端代码编写人员如果按照UI来理解业务,甚至设计数据库表,那多半是掉坑里了 无论是客户端人员还是服务端人员,写代码之前首先第一要做的,...不要让UI的显示内容,影响你的业务设计 错误3 动态的内容后续产生的数据(点赞,收藏,评论)这些业务在动态中都有量化,那这个具体的数据量化值很多人选择在动态表中添加对应的字段(点赞总量,收藏总量等等...其实我不建议这样做,原因如下: 1....public int ThumbUpNumber: //点赞数量 public int CommentNumber; //评论数量 ... } 需要注意一点:我以上代码代表的是业务对象...,可不是对应的DB中的表哦,这个业务对象也是我们要缓存的对象,当新加一条评论或点赞的时候,只不过是缓存数据的+1操作而已,至于这个数据值的初始化,完全可以由详情表来提供,在真实的业务中,点赞或者评论的数据量很少到达万级别

    48310

    常用精选面试题

    5、测试过程中遇到一个bug,开发不认为是bug如何解决? 6、微信朋友圈点赞功能如何设计测试用例? 7、如果在购物平台上选购了物品,并且成功支付,但在“我的订单”中没有查到该笔订单,此时怎么处理?...而且客户端能保证每位用户的客户端完全一致。但是App端一般是C/S架构,除非用户更新客户端,否则无法保证软件在每个人手机中的一致性。如果在App下修改了服务端,就意味着又需要进行回归测试。...5、点赞功能:UI检查,是否有点赞图标,点赞提示,评论图标,评论提示 6、点击点赞图标后,图标是否有点赞成功提示 7、点赞成功后点赞提示是否变为取消点赞 8、点赞成功后是否在该条朋友圈下有点赞人姓名及图标...,是否能够展示所有点赞人的图标,统计数量 12、若多个好友同时点赞,被点赞人收到赞时页面展示是否按照点赞时顺序排序 13、多个人同时点赞时,顺序如何排序 14、若其余几位点赞人之间不互为好友关系,是否能够看到对方点赞情况...,关闭朋友圈可见,那么被点赞人是否能够看到自己收获点赞统计,其点赞好友是否能够看到已点赞的信息 7、如果在购物平台上选购了物品,并且成功支付,但在“我的订单”中没有查到该笔订单,此时怎么处理?

    55110

    得物社区计数系统设计与实现

    1.前言 1.1 社区数字场景 社区业务有非常多的数字统计场景,基础的场景主要有以下这些: 用户维度:发布内容数、被点赞数、被收藏数、关注数、粉丝数、点赞内容数、收藏内容数等。...个人主页展示获赞与收藏总数、粉丝数、关注数、发布动态数(视频数、穿搭精选数、专栏数)。 图2. 他人主页展示获赞与收藏总数、粉丝数、关注数、点赞动态数(视频数、专栏数)。 图3....数据一致性问题:部分计数场景下是定时更新缓存的策略,缓存操作和MySQL操作无法在一个事务中完成,会产生不一致的问题,且在越频繁变更的场景下差异值就会越大。...整体情况大致如下: 3.1 写场景 该场景下计数中心内部主要干三件事,主要包括数据获取、数据处理、数据持久化。...数据获取到后我们做一些格基础校验,验证是否存在我们必要的一些字段是否完整,同时需要验证数据处理的幂等性防止数据重复消费等,通过消息ID和业务唯一ID做幂等,然后把每行业务数据的各字段格式化成变更前和变更后俩个值且可以区分出是新增还是更新

    56041

    使用Hexo搭建专属Blog

    开始个性折腾 折腾完之后,就需要定制一个属于自己的theme了;对于UI风格有近强迫症的男人,这些自然也是要折腾一番的,尝试了网上蛮多朋友觉得不错的theme,觉得还是没遇到自己心动哪一款;不断的折腾中在独立博客...中添加多说的配置即可: duoshuo_shortname: 你站点的short_name[在多说注册的那个名字] 参考传送门 Hexo你的博客 使用Hexo搭建Blog 如何将hexo部署到gitcafe...上 如何安装和设置 Git 为Hexo添加文章目录 Hexo添加多说评论框指南 独立博客—Github Pages与Hexo教程 ---- ——————-2015-10-02更新———————- 在使用...说起这Firebase,功能也算可以,对于其优缺点,有人做出了如此评判和对比: Firebase优点: Api简单,使用起来非常的方便,可大大减少代码量。 可通过网页对数据进行管理,很方便。...对比 ---- 搭建完毕会生成一篇 markdown 所写,如下所示的文章;大致可窥测待搭建完毕生成的一篇markdown缩写的文章;一起来领略下使用Hexo书写/测试/发表 Blog是一件都么简单优雅的事情

    2.3K50

    React-生命周期-其它方法

    打开之前 React 的生命周期文档网页,点击展开不常用的生命周期如下:图片getDerivedStateFromProps 函数:组件在被挂载或者更新时 (映射数据),就会回调shouldComponentUpdate...函数:组件在更新时,决定是否要更新UI,就会回调getSnapshotBeforeUpdate 函数:组件在更新时,最后能获取到更新之前数据的地方,就会回调挂载或更新时App.js:import React...div> ); }}export default App;更新时最后能获取到更新之前数据的地方...-最后能获取到更新之前数据的地方-getSnapshotBeforeUpdate'); console.log(prevProps, prevState); return null...图片最后本期结束咱们下次再见~ 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。

    18630

    IM开发干货分享:有赞移动端IM的组件化SDK架构设计实践

    在有赞产品中,存在大量需要交易双方沟通交流的场景,比如,客户咨询商家产品信息,售前售后简单的答疑和维权等。...4、整体结构 下图中简要描述了有赞客户端中IM系统的基本结构 :  如上图所示,各分层的职责分工如下: 1)消息通道层:维护Socket长连接作为消息通道,消息收发流程主要在这一层中完成; 2)持久化层...:主要将消息存入数据库中,富媒体文件存入文件缓存中,方便第二次展示消息时候,从本地加载,而不是网络层获取; 3)逻辑处理层:完成各种消息相关的逻辑处理,如排序,富媒体文件的预处理等; 4)UI显示层:将数据在...如上图所示,消息发送流程,需要先封装消息请求,在通过发送队列发送至服务器,发送前,在将请求id和对应回调存入本地Map数据结构中。 if(requestCallBack !...8、设计要点4:可定制化的UI 随着公司规模的扩大与业务线的快速迭代,可能新的业务也需要 IM 这个功能,众所周知,IM UI 功能的嵌入会占据大量的开发与调试时间, 为了解决这个痛点,决定将 IM UI

    1.9K20

    PICK一下,iOS自动化测试新方案出道

    显然,该测试用例无法通过UI自动化实现,但是通过我们新的自动化方案可以轻易通过几行代码就做到(1)修改数据,(2)更新UI界面,从而达到验证展示效果的目的。具体效果展示如下: ?...,获取需要的实例对象 调用获取的实例中的方法,做用例需要做的事 断言 NTElement说明:如何在内存中找到需要的实例对象呢?...通过以上几种方式便能够测试一些平常的手工测试或者UI测试难以做到的,比如:1.需要构造大量的操作,如点10000个赞等2.手工难以反复触发的操作,如首次进入等3.平常难以复现的场景,如点赞或者评论失败4...平常难以复现的场景,如点赞或者评论失败     4.测试底层方法的功能是否正常,如下载组件的方法     5.快速测试复杂场景,如反复测试视频的合成是否成功     6.等等…… 4.3 hook函数...我们需要将序列化的文件放入工程中,然后通过以下代码就可以反序列化,获取到这个对象,而不需要自己进行复杂的构造类或者对象操作: ?

    2.3K61

    JavaScript 如何读取本地文件

    作者: Martin Splitt 译者:前端小智 来源:dev 点赞再看,养成习惯本文 GitHub https://github.com/qq44924588......在这篇文章中,我们将通过一些例子来看看它是如何工作的。 文件操作的流程 获取文件 由于浏览器中的 JS 无法从用户的设备访问本地文件,我们需要为用户提供一种方法来选择一个或多个文件供我们使用。...(this.files); // will contain information about the file that was selected. }); File对象如下所示...error:在无法读取到文件信息的条件下触发。 load:在成功加载后就会触发。 在下面的示例中,我们将使用readAsText和readAsDataURL方法来显示文本和图像文件的内容。...reader的工作是异步的,以避免阻塞主线程和UI更新,这在读取大文件(如视频)时非常重要。 reader发出一个'load'事件(例如,类似于Image对象),告诉我们的文件已经读取完毕。

    9.9K30

    【sheetjs】纯前端如何实现Excel导出下载和上传解析?

    最近忙着做项目,Rust精华小册忙完项目就更新。近期文章总结一下项目中遇到的一些好玩的点。本文介绍的是sheetjs下面的xlsx库, 它有付费版和开源版。...import {read, utils, writeFile} from "xlsx"; {// 假设我们从后端获取到的json如下const json =...();}}/>总结一下上面代码的步骤:想办法获取到File对象,可以用input标签设为file类型,也可以像我这样使用UI提供的Upload组件。...将file对象转换为一个ArrayBuffer使用read函数解析为workbook对象获取到第一个worksheet将worksheet中的数据转换为json结构的数据详细的源码可以查看代码仓库:https...://github.com/fullee/sheetjs-demo好啦,如果文章对您有帮助,欢迎点赞收藏加关注,点赞越多更新越快,哈哈。

    73010

    Flutter 移动端架构实践:Widget-Async-Bloc-Service

    2.我不鼓励在一个BLoC中使用多个StreamControllers。相反,我更喜欢将代码分割到两个或更多的BLoC类中,以便更好地分离关注点。...数据层/BLoC中的行为 1.BLoC应该是纯Dart的——没有UI代码,没有导入Flutter相关类和文件,也没有在BLoC中使用BuildContext。...处理异常时的注意事项 处理异常的另一种可行性是向流中添加一个error的对象,如下所示: Future signInWithGoogle() async { try { // 首先通过将...RxCommand是抽象处理UI事件和更新UI的库,它删除了使用BLoC创建StreamController/Stream对所需的样板代码。...Flutter和Firebase Udemy课程中相关深入的资料进行了补充,链接如下: Flutter&Firebase:构建一个完整的iOS和Android的应用程序

    16.1K20

    设计师都能懂的 Redux 指南

    例如,如果用户向Dribbble shot添加评论或点赞,我们需要更新相应的 HTML。 协调状态的这三个方面是前端开发的重要组成部分,React 对这项任务有不同程度的支持。...获取和存储数据 在React中,我们将UI分解为组件。这些组件都可以分解为更小的组件。...举一个简单的例子,在Twitter应用程序中,你的点赞它需要请求服务器进行一些检查,例如,该推文是否仍然存在。...如果你完全不会 Redux 和 React ,不推荐你两者同时学习。 “样板” 代码 在许多情况下,使用Redux意味着编写更多代码。通常需要接触多个文件才能使一个简单的功能正常工作。...或许我们可以提倡 optimistic UI ,因为它能够以相对较低的代价来提升用户体验。 你的点赞是我持续分享好东西的动力,欢迎点赞!

    1.7K10

    微信团队分享:详解iOS版微信视频号直播中因帧率异常导致的功耗问题

    如下图所示 PerfDog 数据显示在 13 pro max上直播点赞期间 FPS 直奔120: 正常情况下,视频号直播里大部分主播开播流基本都是30fps 以内,也就是正常情况下我们只需要维持30fps...这就是我们的问题所在。 5、知识储备3:iOS中的动画降帧 5.1概述 结合上文,我们要解决直播帧率异常升高的问题,就需要解决点赞动画的高帧率问题。...我们可以在越狱后给 app 自签名 com.apple.QuartzCore.debug 这个 entitlement 后,再调用如下代码所示的私有 api 即可全局打开这个面板,可以方便的在手机端查看...基于上述指导思想和优化方案,我们最终在视频号直播上验证测试如下: 先基于 「UIViewAnimationOptionPreferredFramesPerSecond30」 将直播点赞场景下的fps从高刷屏的...另外,「在实验过程中调试」,进一步发现了一些很有用的环境变量,可以帮助我们更好的调试UI问题。

    57700

    有赞前端质量保障体系

    此时就需要一个行之有效的方法来获取到测试的覆盖情况,以检查有哪些场景是接口测试中未覆盖的,做到更好的查漏补缺。...但是,我们的接口用例写在 Java 代码中,通过 Http 请求的方式到达 Node 服务器,非 js 单测,也非浏览器功能测试,如何才能获取到 Node 接口的覆盖率呢?...那如何保障每次业务层引入新版本的基础库之后能做到全面的回归?如何让业务测试同学对基础库变更更加敏感呢?针对这种情况,我们着手做了一个基础库版本变更的小工具。实现思路如下: 1....P0 核心用例定期更新 项目用例定期更新到业务回归用例库 线上问题场景及时更新到回归用例库 目前有赞的前端测试套路基本就是这样,当然有些平时的努力没有完全展开,例如接口测试中增加返回值结构体对比;增加线上接口或页面的拨测...也还有很多新功能探索中,如接入流量对比引擎,将线上流量导到预上线环境,在代码上线前进行对比测试;增加UI自动化的截图对比;探索小程序的UI自动化等等。

    1.3K30

    小程序开发框架对比(wepympvueuni-apptaro)

    我们依然以上述仿微博小程序为例,测试2个容易出性能问题的点:长列表加载、大量点赞组件的响应。...(wepy编译为模板,不涉及组件创建及管理开销),后续对微博点赞,涉及组件数据传递时,微信原生框架的性能优势就提现出来了,详见下方测试数据。...2.2 点赞组件响应速度 长列表中的某个组件,比如点赞组件,点击时是否能及时的修改未赞和已赞状态?是这项测试的评测点。...测试方式: 选中某微博,点击“点赞”按钮,实现点赞状态状态切换(已赞高亮、未赞灰色), 点赞按钮 onclick函数开头开始计时,setData回调函数开头结束计时; 在红米手机(Redmi 6 Pro...)上进行多次测试,求其平均值,结果如下: [test-frame-14.png] 说明:也就是在列表数量为400时,微信原生开发的应用,点赞按钮从点击到状态变化需要111毫秒。

    6.1K50

    UI 自动化测试在有赞的实践

    原则大概如下: 业务流程不频繁改动 UI 元素不频繁改动 需要频繁回归的场景 核心场景等 基于以上原则我们发现真正适合覆盖 UI 自动化测试的业务肯定不会太多。...三、选择合适的框架 有赞 UI 自动化用的框架选用的是 Puppeteer + mocha,我们以往文章《有赞前端质量保障体系》里有做过介绍,如为什么选择Puppeteer + mocha,如何做方法封装等...4.2 多变元素的校验 上面说的元素一般是不会随着业务的变化而变化,我们获取到元素后可以直接校验,但如果有些元素的内容,即使开发不发布代码,元素也会因为不同时间,不同业务场景而改变,该如何去做校验呢?...如上图,订购时长根据业务规则是会每天动态变化的,前端页面依赖后端数据展示,我们可以从接口返回值获取到对应的值作为 Expect,页面内容获取到的作为 Actual。...对于链路比较长的非校验点,但又会影响到当前校验的功能的操作,可以用接口操作来代替。那如何在 UI 自动化框架里发起 API 请求呢?在此,我们在框架里引入 Axios。

    1.8K21

    你的心事我全知晓——心情日记小程序丨实战

    既然媳妇发话了,就花点心思做一个吧,因为没有UI图,所有布局全靠自己瞎编,下面结合图片和代码跟大家讲解下实现过程,内容略长,感兴趣的可以一览。...,好在已经通过了一次,媳妇能正常写点东西,也算基本符合要求,遗憾的是后面实现点赞相关的功能都没有更新到线上。...like属性,like默认是一个空数组; 3、当用户点赞或取消点赞时,组件data中tempObj属性会临时存储三个参数: ①、对应日记的_id; ②、用户操作的类型是点赞(点赞是‘2’)或是取消点赞...如果授权了获取用户信息,未授权则弹框引导用户点击确认按钮去手动授权; 5、授权成功后,拿到用户信息,我们开始调用点赞或取消点赞相关的云函数,如下: const cloud = require('wx-server-sdk...,由于点赞功能未更新到线上(原因是因为审核不通过),想体验的同学可以留下评论,提供体验权限。

    68581

    Flutter-从入门到项目 03: Flutter初体验

    如果需要改变视图,你通常需要使用选择器 findViewById 或类似函数获取到 ViewB 的实例 view 和所有权,并调用相关的修改的方法(并隐式的使其失效) view.backgroundColor...= [UIColor blueColor]; 由于 UI 真实的来源可能比实例 view 本身的存活周期更长,你可能还需要在 view 的构造函数中复制此配置 在声明式风格中,视图配置(如 Flutter...要改变 UI,widget 会在自身上触发重建(在 Flutter 中最常见的方法是在 StatefulWidgets 组件上调用 setState())并构造一个新的 Widget 子树 // Declarative...专栏代码 这里面记录整个专栏的代码 一直保持更新 喜欢的可以点赞?...点赞收藏不迷路哦 扫码 关注

    1.1K10
    领券