- 博客(79)
- 收藏
- 关注
原创 最简单的 useReducer 示例
本文展示了 React 中实现加减按钮的两种方式:使用 useState 和 useReducer。useState 版本直接通过 setCount 更新状态值,简单直观;useReducer 版本则通过 dispatch 发送 action 来触发 reducer 函数处理状态变更。useReducer 包含三个核心部分:当前状态值、dispatch 触发器和 reducer 处理函数。当状态逻辑复杂时,useReducer 能更好地管理状态变更,而简单场景下 useState 更为便捷。两种方法都能有效
2025-07-08 12:59:36
142
原创 React 教程:井字棋游戏
这篇教程展示了如何使用React构建一个完整的井字棋游戏。主要功能包括:使用Square组件渲染棋盘格子,通过useState管理游戏状态和历史记录,实现玩家交替落子逻辑(❌和⭕),提供历史步骤回溯功能,以及判断胜负的算法。游戏界面采用现代化设计,包含响应式按钮和状态提示。代码结构清晰,展示了React组件化开发、状态管理和不可变数据原则的核心概念。
2025-07-07 11:03:59
228
原创 鸿蒙 ArkWeb 和 H5混编开发
鸿蒙ArkWeb Kit提供Web组件支持HTML/CSS/JS渲染,实现跨平台页面展示。主要功能包括:加载网络/本地/HTML片段页面,支持应用与Web侧双向交互(通过消息通道和函数调用),并提供完整的生命周期管理。开发者可便捷实现Web页面加载、调试及与应用的数据通信,底层基于Chromium内核(未来将自研实现)。该组件适用于需要跨平台兼容但对性能要求不高的应用场景。
2025-06-18 19:07:55
852
原创 鸿蒙 Stege模型 多模块应用
摘要:鸿蒙应用开发包含三类模块:HAP(Ability Package)、HAR(Archive)和HSP(Shared Package)。HAP是应用安装运行的基本单元,分为entry(主模块)和feature(扩展模块);HSP为动态共享包,支持运行时复用代码资源;HAR是静态共享包,用于共享组件和代码。HAP支持独立运行,HSP和HAR需依赖宿主应用。模块间跳转分为同HAP内部跳转和跨HAP跳转。
2025-06-09 16:50:35
1092
原创 鸿蒙 Form Kit(卡片开发服务)
鸿蒙Form Kit卡片开发摘要 Form Kit提供卡片开发能力,支持将应用核心功能前置到系统界面。卡片分为静态(仅展示)和动态(支持交互)两种类型,需遵循严格的能力约束,包括受限的模块导入、组件使用和事件处理等。开发流程涉及创建卡片、配置生命周期回调(如onAddForm、onUpdateForm等)及处理三种交互动作(router跳转、call后台调用、message进程通信)。卡片运行于独立进程,生命周期短暂,需注意进程管理和数据传递机制。开发者可通过配置文件和Ability类实现卡片功能,为应用提
2025-05-27 14:03:54
1087
原创 鸿蒙 模块的创建+Video简单使用
本文介绍了如何在DevEco Studio中创建并管理一个公共模块common,以及如何在其他模块中引入和使用该模块。首先,通过新建Shared Library模块并命名为common,然后在其中定义并导出UIConstants类,包含颜色、字体、间距等常量。接着,在entry模块的oh-package.json5中引入common模块,并在Index.ets中使用UIConstants。此外,还介绍了如何配置多HAP打包以确保common模块被包含。最后,文章展示了如何在应用中使用Video组件播放视频,
2025-05-21 14:04:15
446
原创 鸿蒙 Location Kit(位置服务)
移动终端设备在日常生活中的广泛应用,如天气查询、新闻浏览、出行导航等,都依赖于精准的定位服务。Location Kit 提供了多种定位技术,包括 GNSS 定位、基站定位、WLAN 和蓝牙定位,以满足不同场景下的需求。GNSS 定位通过全球导航卫星系统(如 GPS、北斗等)提供高精度定位,而基站和 WLAN/蓝牙定位则适用于网络覆盖较好的区域。应用在使用这些定位服务前,需获取用户授权,系统提供了不同精度的定位权限,如精准位置(米级)和模糊位置(5公里级)。开发者可以通过 API 申请权限,并根据需求选择一次
2025-05-19 18:23:41
612
原创 鸿蒙 系统-安全-程序访问控制-应用权限管控
Ability Kit 提供了一种通用的权限访问方式,允许应用访问系统资源和能力,同时保护系统数据和功能不被不当或恶意使用。权限保护对象分为数据(如个人数据、设备数据)和功能(如设备功能、应用功能)。系统通过 TokenID 作为应用的唯一标识,管理应用的访问权限,支持多用户和应用分身特性。授权方式包括系统授权(system_grant)和用户授权(user_grant),前者在安装时自动授予,后者需在运行时通过弹窗请求用户授权。应用需在配置文件中声明所需权限,并在运行时检查权限状态,必要时向用户请求授权。
2025-05-19 16:17:28
1114
原创 鸿蒙 Background Tasks Kit(后台任务开发服务)
当应用退至后台时,系统会对其进行管控以降低设备耗电和保障用户界面流畅度。管控措施包括进程挂起和进程终止。为满足后台任务需求,系统提供了短时任务、长时任务、延迟任务和代理提醒等受约束的后台任务类型。短时任务适用于耗时短的任务,如状态保存,有配额和数量限制;长时任务适用于用户可感知的长时间任务,如音乐播放和导航,有类型和数量限制。延迟任务适用于可延迟执行的任务,如定时收取邮件。代理提醒适用于定时提醒类业务。系统对后台任务有严格的配额和限制,资源不足时仍可能终止进程。
2025-05-19 15:48:32
1204
原创 ArkData(方舟数据管理)之 应用数据持久化
应用数据持久化是指将内存中的数据通过文件或数据库形式保存到设备上。HarmonyOS 标准系统支持三种典型存储数据形态:用户首选项、键值型数据库和关系型数据库。用户首选项(Preferences)适合保存应用的配置信息,数据以文本形式存储,访问速度快但不适合大量数据。键值型数据库(KV-Store)以“键值”对形式存储,适合分布式应用场景。关系型数据库(RelationalStore)以行和列形式存储,适用于复杂业务场景。用户首选项通过Key-Value形式持久化数据,支持读写、删除等操作,但需注意数据量对
2025-05-17 10:43:13
900
原创 鸿蒙 ArkUI - ArkTS 组件 官方 UI组件 合集
ArkUI 组件速查表为鸿蒙应用开发者提供了一站式功能组件和布局的参考指南。开发者可以根据页面需求,快速定位所需组件,如选择、文本、信息等类型,或特定形状如块、图等。速查表涵盖了行列与堆叠、栅格与分栏、滚动与滑动、导航与切换、按钮与选择、文本与输入等多个类别的组件,每个组件都详细列出了其作用,方便开发者快速理解和应用。通过此速查表,开发者可以有效提高开发效率,减少重复造轮子的时间。
2025-05-15 12:09:16
1304
原创 鸿蒙 Core File Kit(文件基础服务)之简单使用文件
本文介绍了在HarmonyOS开发中常用的沙箱目录查看方法以及基础文件操作接口的使用。通过getContext()获取应用上下文,可以访问缓存、临时、普通文件、数据库、首选项和分布式共享文件等目录。使用@kit.CoreFileKit提供的IO接口,开发者可以实现文件的创建、读取、写入、复制、移动、删除等操作。示例代码展示了如何向应用文件中写入日志、读取日志内容、拷贝文件以及从用户图库中选择图片。这些操作涵盖了文件管理的基本需求,帮助开发者在应用中高效处理文件数据。
2025-05-13 14:27:08
365
原创 鸿蒙 所有API缩略图鉴
HarmonyOS NEXT Developer Preview1(API 11)版本标志着HarmonyOS SDK的重大升级,以Kit维度提供了丰富的开放能力,覆盖应用框架、应用服务、系统、媒体、AI和图形六大领域。该版本共计包含超过30,000个API,旨在为开发者提供更全面的工具和功能,以构建高效、创新的应用程序。这一更新不仅增强了系统的灵活性和可扩展性,还为开发者提供了更为广泛的技术支持,助力他们更好地利用HarmonyOS平台进行应用开发。
2025-05-10 12:10:48
443
原创 鸿蒙 应用开发 项目资源结构及资源访问
均不支持在配置文件中声明UIAbility或ExtensionAbility组件(如后台服务)。均不支持循环依赖和依赖传递。例如,若A依赖B、B依赖C,则A无法直接使用C的代码或资源。两者均用于实现代码、C++库、资源(如图片、配置文件)的共享,提升开发效率和维护性。均不能独立安装或运行,需作为宿主应用(HAP)的依赖项集成。
2025-04-30 12:05:53
654
原创 鸿蒙 长列表加载性能优化
LazyForEach 懒加载可以通过设置 cachedCount 来指定缓存数量,在设置 cachedCount 后,除屏幕内显示的 ListItem 组件外,还会预先将屏幕可视区外指定数量的列表项数据缓存。这样当一个屏幕数据加载完成后,再次向下滑动时,会先加载上一次请求的数据,加载完成后再加载本次请求的数据。通过组件复用可以提高列表页面的加载速度和响应速度。:提供可复用组件对象的缓存资源池,通过重复使用已经创建并缓存的组件对象,降低相同组件短时间内频繁创建和销毁的开销,提升组件渲染效率。
2025-04-28 17:03:36
590
原创 鸿蒙 布局性能优化
Row、Text 组件等会生成对应的 FrameNode 节点。布局(Layout):确定组件的最终宽/高和四个顶点的位置。测算(Measure):负责确定组件对象的测量宽/高。比如你使用了 Row、Text 组件。UI 线程会对每个元素进行测算和布局。FrameNode 是系统组件节点。
2025-04-28 16:33:06
331
原创 入门版 鸿蒙 组件导航 (Navigation)
使用 DevEco Studio 运行本案例,要使用模拟器,千万不要用预览器,预览器看看 Navigation 布局还是可以的。添加完路由配置文件地址后,需要在工程 resources/base/profile 中创建 route_map.json 文件。Index 和 MainPage 两个页面,点击这个两个页面可以互相跳转。在跳转目标模块的配置文件 module.json5 添加路由表配置。
2025-04-28 15:27:59
317
原创 写给年轻程序员的 10 点启示
如果上面提到的其他建议都对你无效的话,那么就请坚持第 2 点建议吧“比一般人更加努力”,因为它将成为你最大的竞争优势。保持好奇心并乐于探索新的事物。相信自己的天赋和创造力。
2024-05-03 16:46:25
1036
原创 JavaScript 的节流与防抖
函数节流是指规定一个单位时间,在这个单位时间内,只能有一次触发事件的回调函数执行,如果在同一个单位时间内某事件被触发多次,只有一次能生效。节流可以使用在 scroll 函数的事件监听上,通过事件节流来降低事件调用的频率。函数防抖是指在事件被触发 n 秒后再执行回调,如果在这 n 秒内事件又被触发,则重新计时。这可以使用在一些点击请求的事件上,避免因为用户的多次点击向后端发送多次请求。
2023-12-09 17:42:13
674
原创 如何将浮点数点左边的数每三位添加一个逗号,如 12000000.11 转化为『12,000,000.11』
如何将浮点数点左边的数每三位添加一个逗号,如 12000000.11 转化为『12,000,000.11』
2023-12-08 19:08:46
507
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人