- 博客(380)
- 收藏
- 关注
原创 Stage模型开发概述
目前ExtensionAbility组件有用于卡片场景的FormExtensionAbility,用于输入法场景的InputMethodExtensionAbility,用于闲时任务场景的WorkSchedulerExtensionAbility等多种派生类,这些派生类都是基于特定场景提供的。同时用户可以通过返回键返回到瀑布流页面。UIAbility组件和各种ExtensionAbility组件的派生类都有各自不同的Context类,他们都继承自基类Context,但是各自又根据所属组件,提供不同的能力。
2024-12-02 14:30:21
320
原创 HarmonyOS 应用模型
应用模型是系统为开发者提供的应用程序所需能力的抽象提炼,它提供了应用程序必备的组件和运行机制。有了应用模型,开发者可以基于一套统一的模型进行应用开发,使应用开发更简单、高效。应用模型的构成要素包括:应用组件应用组件是应用的基本组成单位,是应用的运行入口。用户启动、使用和退出应用过程中,应用组件会在不同的状态间切换,这些状态称为应用组件的生命周期。应用组件提供生命周期的回调函数,开发者通过应用组件的生命周期回调感知应用的。
2024-12-02 14:17:22
391
原创 Ability Kit
Ability Kit(程序框架服务)提供了应用程序开发和运行的应用模型,是系统为开发者提供的应用程序所需能力的抽象提炼,它提供了应用程序必备的组件和运行机制。有了应用模型,开发者可以基于一套统一的模型进行应用开发,使应用开发更简单、高效。
2024-12-02 13:55:04
319
原创 HarmonyOS 状态管理(V1稳定版)
ArkUI状态管理V1提供了多种装饰器,通过使用这些装饰器,状态变量不仅可以观察在组件内的改变,还可以在不同组件层级间传递,比如父子组件、跨组件层级,也可以观察全局范围内的变化。根据状态变量的影响范围,将所有的装饰器可以大致分为:管理组件拥有状态的装饰器:组件级别的状态管理,可以观察组件内变化,和不同组件层级的变化,但需要唯一观察同一个组件树上,即同一个页面内。管理应用拥有状态的装饰器:应用级别的状态管理,可以观察不同页面,甚至不同UIAbility的状态变化,是应用内全局的状态管理。
2024-11-17 18:00:06
559
原创 HarmonyOS的状态管理机制
在声明式UI编程框架中,UI是程序状态的运行结果,用户构建了一个UI模型,其中应用的运行时的状态是参数。当参数改变时,UI作为返回结果,也将进行对应的改变。这些运行时的状态变化所带来的UI的重新渲染,在ArkUI中统称为状态管理机制。自定义组件拥有变量,变量必须被装饰器装饰才可以成为状态变量,状态变量的改变会引起UI的渲染刷新。如果不使用状态变量,UI只能在初始化时渲染,后续将不会再刷新View(UI):UI渲染,指将build方法内的UI描述和@Builder装饰的方法内的UI描述映射到界面。
2024-11-17 16:54:01
255
原创 vue nextTick
当你设置了一些数据,Vue将这些数据的DOM更新排入队列。如果你立即访问DOM,可能还是旧的DOM。为了确保在DOM更新完成后执行某些操作,你可以使用。是一个全局的异步队列,用于在下次DOM更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,可以在回调中执行依赖于DOM的操作。
2024-11-15 14:56:52
337
原创 JavaScript中的原型概
当尝试访问一个对象的属性或方法时,JavaScript会先在该对象上搜索。如果找不到,它会继续在该对象的原型上搜索,如果在原型上也找不到,则会继续在原型的原型上搜索,直到达到原型链的顶端。Object.prototype是所有对象的最终原型,它包含了Object的方法,如toString()和hasOwnProperty()等。原型的主要作用是允许对象共享方法和属性。这意味着,如果你在原型上添加一个方法,那么所有由该构造函数创建的实例都可以访问这个方法,而不需要在每个实例上重新定义。
2024-11-15 13:07:58
236
原创 package.json和package-lock.json
和文件是 Node.js 项目中非常重要的两个文件,它们在管理项目依赖项方面起着关键作用。
2024-11-15 10:33:06
618
原创 JS中private protected public readonly的区别
在JavaScript中,不像在TypeScript或其他一些静态类型语言中那样有内置的privateprotectedpublic和readonly关键字来明确地声明成员的访问级别和可变性。然而,我们可以通过一些约定和模式来模拟这些概念。
2024-11-15 10:29:12
311
原创 TS中private protected public readonly的区别
在TypeScript中,privateprotectedpublic和readonly是用于类成员(属性和方法)访问控制和可变性的关键字。
2024-11-15 10:25:00
698
原创 Js 构造函数和class的区别
在JavaScript中,构造函数(Constructor Functions)和类(Classes)都可以用来创建对象和实现继承,但它们在语法和某些功能上存在一些差异。
2024-11-15 10:10:46
548
原创 JS事件循环机制-拓展
第二次事件循环的同步结束,然后去找微任务队列,发现微任务队列是空的,没有微任务要执行,接着去宏任务队列找宏任务,开启第三次事件循环,set2出队列,因此输出4,这也意味着第二次事件循环宏任务结束,第二次事件循环结束,输出4即是第二次时间循环的结束也是第三次事件循环的开始,紧接重复刚刚的步骤去微任务队列找,发现没有,然后去宏任务队列找,set3出队列,输出6。,这也是为什么await后面的函数会先执行的原因,你可以理解为它就是一个强盗,很霸道,不仅我要先执行,我还要把我后面的代码全部放进微任务队列里。
2024-11-15 08:47:24
1057
原创 js事件循环机制
JavaScript的事件循环机制(Event Loop)是其异步编程模型的核心,它允许JavaScript在单线程环境下处理异步操作,如定时器、网络请求、用户交互等,同时还能保持代码的非阻塞执行。这一机制让JavaScript能够有效地处理并发,特别是在浏览器环境和Node.js环境中。js是单线程,即v8在执行js的过程中,只有一个线程会工作,可以节约性能和上下文切换的时间。
2024-11-15 08:38:44
141
原创 JavaScript事件循环机制
JavaScript事件循环机制是其异步编程模型的核心,允许JavaScript在单线程环境下处理异步操作,如定时器、网络请求等,同时保持代码的非阻塞执行。执行顺序为:先执行同步代码(宏任务),然后执行微任务队列中的所有任务,接着执行下一个宏任务,如此循环往复。在Node.js和浏览器环境中,微任务队列的执行时机略有不同,但总体流程相似。理解事件循环机制对于编写高效、可维护的JavaScript代码至关重要,特别是在处理复杂异步逻辑时。
2024-11-15 08:11:46
137
原创 vue3的生命周期
Vue3的生命周期是指组件从创建到销毁的过程,包括了一系列的钩子函数,让开发者有机会在特定阶段运行自己的代码。Vue3的生命周期钩子函数与Vue2相比,进行了一些调整和优化,但整体结构仍然保持一致,且完全兼容Vue2的生命周期。用于捕获子孙组件的异常。此外,Vue3还引入了。
2024-11-15 08:07:56
180
原创 TypeScript类型any ,never,void和unknown使用场景区别?
使用any时要非常小心,因为它会关闭TypeScript的类型检查。尽可能避免使用它,除非在没有其他选择的情况下。never用于表示永远不会发生的类型,可以用于增强函数或条件类型的严格性。void适用于没有返回值的函数,表示没有任何返回类型。unknown是一个安全的any,需要通过类型守卫或类型断言来进一步操作变量。使用unknown可以提高代码的安全性。
2024-11-04 09:12:26
313
原创 TypeScript 如何让接口的所有属性都可选?
在TypeScript中,你可以使用映射类型(Mapped Types)来让接口中的所有属性变为可选。映射类型通过一个已知的类型,创建一个新的类型,其属性是基于原始类型的属性进行某种形式的转换得到的。对于让接口中的所有属性变为可选,可以使用内置的Partial<T>泛型工具类型。Partial<T>
2024-11-04 09:11:46
263
原创 TypeScript中如何实现函数重载
在TypeScript中,函数重载提供了一种方式,允许你为同一个函数定义多个类型签名。这意味着你可以声明同一个函数接受不同类型的参数或返回不同类型的值。这对于类型安全非常有用,因为它允许编译器根据提供给函数的参数类型来推断返回值的类型。
2024-11-04 09:10:48
361
原创 简述TypeScript 中 Omit类型有什么作用?
在TypeScript中,Omit类型是一个实用的泛型工具类型,它允许你从现有的类型中创建一个新类型,新类型会省略掉一些指定的属性。简而言之,Omit可以用来从对象类型中排除某些属性。
2024-11-04 09:10:03
235
原创 TypeScript 什么是三斜线指令?有哪些三斜杠指令?
在TypeScript中,三斜线指令是一种包含单个XML标签的特殊注释,它们用于提供编译器指令。这些指令的作用范围仅限于包含它们的文件,并且必须放在文件的最顶部,除了这样的shebang之外。虽然随着TypeScript版本的更新,大多数场景下三斜线指令的需求已经被现代的模块化导入(如ES6的import/export)所替代,但在某些特定情况下它们仍然有用。
2024-11-04 09:08:59
306
原创 请解释rest参数和声明rest参数的规则 ?
在TypeScript中,rest参数提供了一种将多个独立参数合并为一个数组的方法。这在你不知道将会接收多少参数,或者希望以更灵活的方式处理参数时非常有用。rest参数通过在参数名前加上三个点...来声明。
2024-11-04 09:07:34
216
原创 简述TypeScript 中的箭头/lambda 函数是什么?
在TypeScript中,箭头函数(也称为lambda函数)是一种使用箭头(=>)语法定义函数的简洁方式,它继承自并扩展了ES6(ECMAScript 2015)中引入的箭头函数。箭头函数提供了一种更简洁的函数写法,并且它们有几个特性使得编写更小的回调函数变得更容易,尤其是在涵盖this上下文的情况下。
2024-11-04 09:05:43
287
原创 TypeScript 中有哪些范围可用?这与JS相比如何?
在TypeScript中,”范围”(Scope)的概念与JavaScript大体相同,因为TypeScript是JavaScript的超集,它遵循相同的作用域规则。作用域决定了变量和函数的可见性和生命周期。
2024-11-04 08:56:32
327
原创 请简述如何编译 TypeScript 文件?
通过上述步骤,你可以编译TypeScript文件,将TypeScript代码转换为JavaScript代码,使其能够在浏览器或Node.js环境中运行。在开发过程中,你可能希望TypeScript编译器能够自动检测文件的变化并重新编译。首先,你需要确保你的开发环境中安装了TypeScript。文件,这是TypeScript项目的配置文件。命令会被添加到你的系统路径中,使你能够在任何地方运行它。文件允许你指定编译选项,如目标JavaScript版本(这样,每当你修改并保存TypeScript文件时,
2024-11-04 08:55:40
307
原创 TypeScript 支持哪些 JSX 模式?
这个选项告诉TypeScript编译器应该如何处理JSX语法。选项,你可以确保TypeScript能够正确处理JSX语法,并与你的开发工具链无缝集成。选择哪种模式主要取决于你的项目类型以及你使用的React版本。TypeScript支持以下几种JSX模式,这些模式主要通过在。
2024-11-04 08:53:12
369
原创 解释TypeScript 中的 JSX 是什么?
通过结合TypeScript的类型系统和JSX的声明式语法,开发者可以构建更加健壮和易于维护的前端应用。TypeScript中的JSX支持使得在使用React或其他支持JSX的库时,开发者能够享受到静态类型检查和现代JavaScript语法带来的好处。
2024-11-04 08:36:37
237
原创 请简述TypeScript 与 JavaScript 有什么关系?
总的来说,TypeScript扩展了JavaScript,提供了类型系统和对未来JavaScript特性的支持,旨在提高大型项目的开发和维护效率。通过编译过程,TypeScript确保了与现有JavaScript生态系统的兼容性,使得开发者可以利用现有的JavaScript库和框架,同时享受TypeScript带来的额外好处。
2024-11-04 08:35:27
187
原创 简述TypeScript 什么是 .map 文件,为什么/如何使用它?
在TypeScript(以及其他使用转译过程的语言)开发中,.map文件是源代码映射(Source Map)文件,它提供了转译后的代码(比如编译成JavaScript的TypeScript代码)与原始源代码之间的映射信息。这种映射使得在调试过程中,开发工具能够将运行时的代码关联回原始的TypeScript源代码,即使实际运行在浏览器或Node.js环境中的是转译后的JavaScript代码。
2024-11-04 08:33:42
319
原创 如何使用 Typescript 将字符串转换为数字?
在TypeScript中,将字符串转换为数字通常可以通过几种简单的方法实现。这些方法在JavaScript中同样适用,因为TypeScript最终会被编译成JavaScript。
2024-11-04 08:32:48
397
原创 如何使用 Typescript 将字符串转换为数字?
在TypeScript中,将字符串转换为数字通常可以通过几种简单的方法实现。这些方法在JavaScript中同样适用,因为TypeScript最终会被编译成JavaScript。
2024-11-01 23:23:14
306
原创 TypeScript 中的 getter/setter 是什么?你如何使用它们?
在TypeScript中,getter和setter是类属性访问的特殊方法,允许你对类成员的读取和赋值进行更细致的控制。通过使用getter和setter,你可以在属性被访问或修改时执行额外的逻辑,比如验证数据、执行计算、触发事件等。
2024-11-01 23:18:04
289
原创 TypeScript 中如何检查 null 和 undefined
在TypeScript中,null和undefined有各自的类型分别是null和undefined。检查变量是否为null或undefined是常见的需求,尤其是在处理外部数据或复杂的逻辑时。TypeScript提供了几种方式来检查null和undefined。
2024-11-01 23:16:38
468
原创 解释如何使用 TypeScript mixin?
首先,你需要定义一个或多个mixin。Mixin通常作为一个实现了某些功能但不会被单独使用的类。
2024-11-01 23:12:26
296
原创 简述如何TypeScript中如何从子类调用基类构造函数?
在TypeScript中,从子类调用基类的构造函数是通过super关键字实现的。当你在子类中定义一个构造函数时,你必须首先调用super(),这会执行基类的构造函数。在调用super()之后,你可以在子类构造函数中执行其他初始化操作。这是面向对象编程中的一个常见模式,用于确保继承的类正确地初始化了其基类部分。
2024-11-01 23:10:19
314
原创 如何在 TypeScript 中创建变量
在TypeScript中创建变量时提供类型注解是一个好习惯,它可以帮助你利用TypeScript的强大类型系统来编写更清晰、更可维护的代码。然而,根据具体情况,TypeScript的类型推断也可以减少需要显式声明的类型数量,使代码保持简洁。
2024-11-01 23:08:45
337
原创 简述TypeScript 中的类型断言 ?
在TypeScript中,类型断言是一种方式,允许开发者告诉编译器他们知道某个值的具体类型。类型断言像是一种方式,可以绕过TypeScript的类型检查系统,在你比TypeScript更了解某个值的类型时使用。它不会重新结构数据或改变数据的类型,而是在编译时期对类型检查器作出指示。两种形式是等价的,但在使用JSX的TypeScript代码中,只允许使用as语法,因为尖括号语法与JSX的标签语法冲突。
2024-11-01 23:05:40
279
原创 描述后端如何使用TypeScript?
置TypeScript:使用tsc --init命令创建一个文件,该文件包含TypeScript编译器的配置选项。编写TypeScript代码:你可以在项目中开始编写TypeScript代码了。通常,你会将源代码放在一个特定的目录中,如src。编译TypeScript代码:使用TypeScript编译器(tsc)编译代码,生成JavaScript代码。运行编译后的JavaScript代码:使用Node.js运行编译后的JavaScript代码。
2024-11-01 23:03:33
438
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人