自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员—DaLi Sexy

讲开发及小常识

  • 博客(42)
  • 收藏
  • 关注

原创 HarmonyOS video 视频播放器

【代码】HarmonyOS video 视频播放器。

2024-09-13 18:23:34 366

原创 鸿蒙开发请求位置,获取位置信息

查询是否已授权,再获取位置。

2024-09-11 14:57:28 115

原创 鸿蒙开发相册获取一张或多张照片,预览

PhotoSelectOptions.maxSelectNumber = 3; 要上传的图片数量

2024-09-11 10:52:45 321

原创 鸿蒙项目打开相册,读取,显示图片

该模块提供相册管理模块能力,包括创建相册以及访问、修改相册中的媒体数据信息等。@ohos.file.photoAccessHelper (相册管理模块)

2024-09-11 08:32:44 142

原创 HarmonyOS 状态管理

HarmonyOS 状态、缓存管理

2024-09-05 16:50:11 923

原创 HarmonyOS 延迟加载(lazy import)

HarmonyOS 延迟加载(lazy import)

2024-09-05 15:59:33 195

原创 HarmonyOS $r访问资源

HarmonyOS访问资源

2024-09-05 15:46:35 157

原创 HarmonyOS 导出ts类和方法

【代码】HarmonyOS 导出ts类和方法。

2024-09-05 15:27:12 88

原创 HarmonyOS 导出ArkUI组件

鸿蒙开发 导出ArkUI组件

2024-09-05 15:23:41 125

原创 HarmonyOs HAP HAR HSP区别

创建用,于实现应用的功能和特性。每一个Ability类型的Module编译后,会生成一个以.hap为后缀的文件,我们称其为HAP(Harmony Ability Package)包。HAP包可以独立安装和运行,是应用安装的基本单位,一个应用中可以包含一个或多个HAP包,具体包含如下两种类型。Library类型的Module分为Static和Shared两种类型,编译后会生成共享包。HAR中的代码和资源跟随使用方编译,如果有多个使用方,它们的编译产物中会存在多份相同拷贝。创建,用于实现代码和资源的共享。

2024-09-05 11:34:33 706

原创 HarmonyOS 应用 Module类型

用于实现应用的功能和特性。每一个Ability类型的Module编译后,会生成一个以.hap为后缀的文件,我们称其为HAP(Harmony Ability Package)包。HAP包可以独立安装和运行,是应用安装的基本单位,一个应用中可以包含一个或多个HAP包,具体包含如下两种类型。同一个Library类型的Module可以被其他的Module多次引用,合理地使用该类型的Module,能够降低开发和维护成本。Library类型的Module分为Static和Shared两种类型,编译后会生成共享包。

2024-09-05 11:17:42 490

原创 HarmonyOS 开发范式、应用模型

HarmonyOS API 9开始新增的模型,是目前主推且会长期演进的模型。在该模型中,由于提供了AbilityStage、WindowStage等类作为应用组件和Window窗口,因此称这种应用模型为Stage模型。HarmonyOS API 7开始支持的模型,已经不再主推。

2024-09-05 11:10:05 377

原创 通过$r访问应用资源是否支持嵌套形式

那么有些地方不需要使用UI组件,但是想获取$r('app.string.EntryAbility_label')的value值;$r当前不支持嵌套,第二个参数需要使用ResourceManager获取应用资源对应字符串赋值给$r第二个参数。使用这个方法this.context.resourceManager.getStringSync()就可以了。项目中很多UI是使用$r('app.string.EntryAbility_label') 方式绑定值得,比如:arkui 提示组件。

2024-08-26 22:14:27 256

原创 VS Code安装插件时报错不兼容解决

这个命令会遍历当前目录下的所有.vsix文件,并使用`code --install-extension`命令逐个安装它们。请确保你已经安装了Visual Studio Code,并将其添加到了系统的环境变量中,以便在命令提示符中直接运行`code`命令。首先需要把要安装的所有插件文件放到vs code的安装目录下的bin文件夹里。这块代码在在bin目录打开cmd执行。

2024-08-14 10:38:03 303

原创 Arkui 框架Worker线程

OpenHarmony的ArkUI框架提供了Worker和TaskPool两种多线程编程方式,以支持在应用程序中执行耗时操作而不影响主线程的性能。

2024-06-27 18:20:23 345

原创 css实现不同设备适配

通过设置容器的`display: grid`属性,并使用`grid-template-columns`、`grid-template-rows`和`grid-gap`等属性,可以实现在不同设备上自动调整网格的列数、行数和间距。通过设置容器的`display: flex`属性,并使用`flex-wrap`、`justify-content`和`align-items`等属性,可以实现在不同设备上自动调整元素的位置和尺寸。例如,可以使用`width: 50%`来设置元素的宽度为其父元素宽度的一半。

2024-06-05 10:30:20 740

原创 前端首屏加载速度慢问题?怎么解决

**优化JavaScript执行**:延迟非必要的JavaScript文件的加载,或使用`async`和`defer`属性异步加载,减少对首屏渲染的影响。使用雪碧图技术合并图片请求。- **设置合理的缓存策略**:合理配置HTTP缓存头,使得浏览器可以缓存已加载的资源,减少重复加载的时间。- **优化图片资源**:适当压缩图片,使用正确的图片格式,为不同分辨率的设备提供相应尺寸的图片。- **优化DOM渲染**:减少DOM元素的数目,避免复杂的DOM绑定,简化首屏渲染的复杂度。

2024-05-28 08:54:26 580

原创 vue2和3区别

**Vue3**:Vue3采用了Proxy作为其新的响应式系统基础,这不仅解决了`Object.defineProperty`的限制,而且提供了更好的性能,尤其是在处理嵌套对象和数组时。- **Vue3**:虽然Vue3也保留了大部分生命周期钩子,但引入了更多与Composition API相关的生命周期钩子,如`onBeforeMount`、`onMounted`等,这使得与React等其他现代前端框架的用法更为一致Θic-1Θ。- **Vue2**:在Vue2的模板中,只允许有一个根元素存在。

2024-05-28 07:54:32 457

原创 react 组件之间传参

选择哪种方式取决于你的具体需求和应用的结构。对于简单的父子组件间通信,props 通常是首选。对于跨多个层级的通信,Context API 或状态管理库可能更合适。而对于子组件需要通知父组件的情况,回调函数通常是一个好选择。

2024-05-25 09:21:51 334

原创 react 受控组件和非受控组件? 纯函数?

React中的受控组件(Controlled Component)和非受控组件(Uncontrolled Component)是两种表单元素的状态管理方式。

2024-05-25 09:18:30 439

原创 react生命周期

React 的生命周期指的是组件从创建到销毁的过程,以及在此过程中 React 组件会经历的一系列状态。在 React 16.3 之前,React 类组件有三大生命周期阶段:挂载阶段(Mounting)、更新阶段(Updating)和卸载阶段(Unmounting),每个阶段都包含特定的生命周期方法。

2024-05-25 09:16:26 356

原创 react 如何实现dom更新和渲染

React 实现 DOM 更新和渲染的核心机制是其虚拟 DOM(Virtual DOM)和 React Diffing 算法。

2024-05-25 09:09:52 416

原创 usememo和usecallback 区别?场景

优化子组件的性能:当子组件接收到的某个依赖项发生改变时,useCallback可以用来创建一个只依赖于这个变量的回调函数,从而避免在每次父组件重新渲染时都重新创建函数。传递给子组件的回调函数:当需要将一个函数作为props传递给子组件时,useCallback可以确保每次渲染时都传递的是同一个函数,以避免不必要的组件重新渲染。优化子组件的渲染:在父组件中使用useMemo来缓存子组件的props,只有当props发生变化时才会重新渲染子组件,减少子组件的渲染次数。优化对象:主要用于缓存回调函数。

2024-05-25 09:06:38 467

原创 React组件性能优化中如何实现懒加载?

属性中定义的加载指示器。这种方式可以帮助提高应用的初始加载速度,因为只有当用户实际需要时才会加载组件。在React中实现组件的懒加载,可以使用动态导入(即代码分割)。组件,可以创建在需要时才加载的组件。是一个将被懒加载的组件。时,如果它尚未加载,

2024-05-25 09:01:40 429

原创 React组件性能优化中如何避免频繁更新?

在React开发中,避免组件的频繁更新是提升应用性能的关键手段之一。React提供了多种策略和工具来帮助开发者优化组件的更新频率。

2024-05-25 08:59:31 565

原创 如何优化React组件性能?

**可视区域渲染**:对于长列表或大量数据的场景,可以使用`react-window`或`react-virtualized`等库实现虚拟滚动,仅渲染可视区域内的元素,减少DOM节点数量,提高性能[^1^]。- **减少DOM操作**:尽量减少在组件的`render`方法中的DOM操作和计算量,避免在`render`中创建函数或绑定事件,以减少重绘和回流的次数。- **组件级懒加载**:对于某些非首屏展示的大型组件,可以使用`React.lazy`来实现组件级别的懒加载,提高首屏加载速度[^1^]。

2024-05-25 08:54:08 467

原创 react类组件和函数组件区别?

**类组件**:具有丰富的生命周期方法,如 `componentDidMount`、`componentDidUpdate` 等,这些方法在组件的不同阶段被自动调用,方便执行初始化或更新操作。- **函数组件**:虽然本身不支持状态,但通过 `useState` 和其他Hooks可以实现状态管理,使得代码更加简洁和模块化[^2^][^5^]。- **函数组件**:作为纯函数,每次渲染都创建新的实例,不重用之前的状态或实例,这可能在某些情况下带来性能优势[^2^]。2. **生命周期管理**

2024-05-25 08:52:20 286

原创 React中的useState和useEffect有什么区别?

它接受一个初始状态和一个可选的配置对象作为参数,返回一个包含当前状态和更新状态的函数的元组**。而**useEffect则是另一个重要的Hook,主要用于处理组件的副作用操作,比如数据获取、订阅事件等**。- **useEffect**:用于处理组件的副作用。- **useState**:允许在函数组件中维护状态。- **useEffect**:当组件需要响应状态或属性变化执行操作时,如发起网络请求、订阅事件、修改DOM等。- **useState**:当组件需要维护自己的状态时,如计数器、表单输入等。

2024-05-25 08:49:04 493

原创 react 中都有哪些hook?作用

它接收一个 reducer 函数和一个初始状态,并返回一个包含当前状态和一个 dispatch 函数的对象。它接收一个显示名称和一个格式化函数,并返回一个可用于调试的对象。它接收一个回调函数和一个依赖项数组,用于更新实例值。它接收一个回调函数和一个依赖项数组,并返回一个 memoized 版本的回调函数。它接收一个计算函数和一个依赖项数组,并返回一个 memoized 版本的计算结果。它接收一个上下文对象,并返回一个包含当前上下文值的函数。它返回一个包含当前状态和一个更新状态的函数的对象。

2024-05-25 08:47:05 554

原创 localstorage与seesionstorage区别

LocalStorage和SessionStorage是Web存储API的两个主要组成部分,它们允许在用户的浏览器中存储键值对数据。虽然它们看似相似,但在**生命周期、作用域以及容量限制**等方面存在一些关键的区别。

2024-05-24 21:10:35 793

原创 鸿蒙开发与H5开发有啥区别?

综上所述,鸿蒙开发与H5开发在技术栈、开发环境、生态系统以及应用特性等方面都存在明显的区别。鸿蒙开发注重于构建统一的操作系统和提供创新的分布式架构,而H5开发则强调跨平台兼容性和丰富的开发资源。选择哪种开发方式取决于具体的应用需求、目标平台以及开发者的技能与经验。

2024-05-22 18:08:08 531

原创 鸿蒙OS 路由跳转

2. **调用`Router`对象的`replace`或`push`方法**:在需要执行跳转的地方,调用`Router`对象的`replace`或`push`方法,并传入目标页面的路由路径。3. **使用`AbilitySlice`的`start`方法**:在自定义组件中,可以使用`AbilitySlice`的`start`方法来启动一个新的页面。1. **使用`@Route`装饰器**:在需要跳转的页面上添加`@Route`装饰器,并指定一个唯一的路由路径。)中定义路由路径,并指定参数。

2024-05-22 18:04:39 523

原创 页面和自定义组件生命周期

值得注意的是,从API version 9开始,允许在aboutToAppear函数中改变状态变量,这些更改将在后续执行build()函数中生效4。:页面创建时调用,用于完成页面的初始化工作。:页面变为可见状态时调用,此时页面已经与用户交互,可以进行一些与界面相关的操作。:当系统资源已经恢复到该页面时调用,通常用于恢复之前保存的状态、重新获取资源等。:页面销毁时调用,用于完成页面的清理工作,如释放资源、取消注册的事件监听器等。:页面变为非活动状态时调用,此时页面不能接受用户的输入,也不应响应事件。

2024-05-22 18:02:20 568

原创 鸿蒙OS LocalStorage 与AppStorage 区别?使用场景

比如,用户的登录状态或者应用的主题设置等信息,都可以通过 AppStorage 来存储,以确保这些数据在应用的任何地方都可以被访问和更新。例如,在一个购物应用的购物车页面中,可以使用 LocalStorage 来存储和更新购物车中商品的数量。AppStorage中的数据可以是双向同步的,这意味着当数据发生变化时,相关的UI组件可以实时更新,反之亦然。首先,你需要在你的鸿蒙项目中引入 LocalStorage 相关的模块。是全局的,所以请确保你的键(key)是唯一的,以避免与其他应用或组件的数据冲突。

2024-05-22 18:00:30 737 1

原创 ArkUI组件通信 面试题

CanvasCanvasRenderingContext2D对象CanvasGradient对象ImageBitmap对象ImageData对象OffscreenCanvasRenderingContext2D对象Path2D。

2024-05-22 17:56:15 845

原创 鸿蒙开发面试题

开发者只需编写一次代码,就能在手机、平板、手表、电视、汽车等多类型设备上运行,得益于鸿蒙OS统一的开发环境、语言与API,以及对设备能力的抽象封装。以及更易于维护和更新。开发者可以使用华为提供的开发工具和SDK,如DevEco Studio,进行多设备协同开发,实现一次开发,多端部署的目。鸿蒙操作系统支持无缝更新,可以在不影响用户使用的情况下,自动下载并安装系统更新,确保系统的安全性和最新性。鸿蒙操作系统通过微内核架构和先进的调度算法,实现了高效的多任务并发处理,保证了系统的流畅性和响应速度。

2024-05-22 17:48:30 245

原创 使用vue-cli(vue脚手架)快速搭建项目

1,使用 vue-cli 搭建项目下面整个过程是基于已经安装node.js和cnpm的基础上,node.js如何安装就不在这里详说了。如何全局化安装cnpm,这里简单提一下:(淘宝镜像命令)npm install cnpm -g --registry=https://registry.npm.taobao.org其实对于安装vue-cli,使用npm命令和cnpm命令都是可以的,个人觉得使用npm安装的比较慢,而且很可能会因为网络问题而出错,所以还是觉得使用cnpm稳一点。(1)全局

2022-05-15 21:33:38 261

原创 JavaScript 输出

JavaScript 不提供任何内建的打印或显示函数。JavaScript 显示方案JavaScript 能够以不同方式“显示”数据:使用window.alert()写入警告框 使用document.write()写入 HTML 输出 使用innerHTML写入 HTML 元素 使用console.log()写入浏览器控制台使用 innerHTML如需访问 HTML 元素,JavaScript 可使用document.getElementById(id)方法。...

2021-10-31 18:22:57 115

原创 HTML时间

我先看看效果JavaScript 日期获取方法步骤分析:①HTML布局 ②JavaScript编辑变量 ③调试JavaScript代码日期方法允许您获取并设置日期值(年、月、日、时、分、秒、毫秒)日期获取方法获取方法用于获取日期的某个部分(来自日期对象的信息)。下面是最常用的方法(以字母顺序排序):方法 描述 getDate() 以数值返回天(1-31) getDay() 以数值获取周名(0-6) getFullYear() 获取四位的年(..

2021-10-10 21:16:13 1944 1

原创 Visual Studio Code

Visual Studio Code 是一款轻量级但功能强大的源代码编辑器,可在您的桌面上运行,适用于 Windows、macOS 和 Linux。它内置了对 JavaScript、TypeScript 和 Node.js 的支持,并为其他语言(例如 C++、C#、Java、Python、PHP、Go)和运行时(例如 .NET 和 Unity)提供了丰富的扩展生态系统.通过这些介绍性视频开始您的 VS Code 之旅。 下载Windows Una Kravets@U..

2021-10-02 21:45:29 250

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除