- 博客(12)
- 收藏
- 关注
原创 harmonyOS,router通信
路由参数传递需要在前一个页面中传递的参数对象在后一个页面中接受传递过来的对象,参数在传递过程中,对于参数类型默认为Object类型,在第二个页面获取参数的时候,类型推断只能推断出结果为Object类型,造成后续使用的时候,ts无法明确参数格式。获取到的params变量默认为object类型,后续在使用的时候出现类型无法明确。页面一:params就是路由传递参数的时候,默认属性,内容默认为object,所以可以传递任何结果。约束接收到的结果必须有value属性,value属性的结果由用户自己定义。
2025-01-14 10:15:46
349
原创 @State装饰器
界面上用到的数据,并不是所有的数据都需要采用@State来修改,有些变量无需采用@State来修饰,只需要在页面加载一次就可以直接定义。
2025-01-09 16:39:22
279
原创 @Styles装饰器和@Extend装饰器
概念:Extend装饰器主要是用于对鸿蒙中原生组件的样式或者事件进行扩展(可以使用这个装饰器对原生的组件进行重定义,然后在界面中复用,实际上类似于@Styles的效果,但是必须指定对原生组件进行扩展)实现在我们页面开发过程中,将一个页面中重复的一些样式代码提取出来公用。只负责当前页面的样式复用。【仅支持通用属性、通用事件】组件外定义要多加一个function语法。
2025-01-09 10:40:03
419
原创 UIAbility组件
UIAbility组件是一种包含UI的应用组件,主要用于和用户交互。UIAbility原生支持应用组件级的跨端迁移和多端协同。支持多设备和多窗口形态。UIAbilityUIAbility组件是系统调度的基本单元,为应用提供绘制界面的窗口。一个应用可以包含一个或多个UIAbility组件。例如,在支付应用中,可以将入口功能和收付款功能分别配置为独立的UIAbility。每一个UIAbility组件实例都会在最近任务列表中显示一个对应的任务。对于开发者而言,可以根据具体场景选择单个还是多个。
2024-09-02 15:58:52
1025
原创 @Watch装饰器:状态变量更改通知
Watch用于监听状态变量的变化,当状态变量变化时,@Watch的回调方法将被调用。@Watch在ArkUI框架内部判断数值有无更新使用的是严格相等(===),遵循严格相等规范。当在严格相等为false的情况下,就会触发@Watch的回调。
2024-08-30 11:49:57
781
原创 @Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化
和@Observed被@Observed装饰的类,可以被观察到属性的变化;子组件中装饰器装饰的状态变量用于接收@Observed装饰的类的实例,和父组件中对应的状态变量建立双向数据绑定。这个实例可以是数组中的被@Observed装饰的项,或者是中的属性,这个属性同样也需要被@Observed装饰。@Observed用于嵌套类场景中,观察对象类属性变化,要配合自定义组件使用(示例详见嵌套对象),如果要做数据双/单向同步,需要搭配或者@Prop使用。
2024-08-30 09:51:09
1126
原创 @Builder装饰器:自定义构建函数
ArkUI提供了一种轻量的UI元素复用机制@Builder,该自定义组件内部UI结构固定,仅与使用方进行数据传递,开发者可以将重复使用的UI元素抽象成一个方法,在build方法里调用。为了简化语言,我们将@Builder装饰的函数也称为“自定义构建函数”。如果不涉及组件状态变化,建议使用全局的自定义构建方法。创建私有的@Builder方法,在Column里面使用this.builder()方式调用,通过aboutToAppear生命周期。
2024-08-28 15:29:33
1198
原创 HarmonyOS页面和自定义组件生命周期
Component装饰的UI单元,可以组合多个系统组件实现UI的复用,可以调用组件的生命周期。页面:即应用的UI页面。可以由一个或者多个自定义组件组成,@Entry装饰的自定义组件为页面的入口组件,即页面的根节点,一个页面有且仅能有一个@Entry。只有被@Entry装饰的组件才可以调用页面的生命周期。页面生命周期,即被@Entry页面每次显示时触发一次,包括路由过程、应用进入前台等场景。页面每次隐藏时触发一次,包括路由过程、应用进入后台等场景。当用户点击返回按钮时触发。
2024-08-26 14:34:29
498
原创 如何理解javaScript异步
JavaScript是单线程语言,运行在浏览器的渲染主线程中,浏览器只有一个渲染主线程,用于解析HTML代码、CSS代码、计算属性、绘制界面,执行JavaScript语言。当JavaScript同步运行时,遇到计时器、网络请求、I/O操作,消息队列中的任务不能正常运行,导致渲染主线程浪费时间,也会导致界面无法及时更新,甚至导致浏览器卡死。 使用异步方式解决,当浏览器遇到计时器、网络请求、I/O操作消息队列会将这一系列任务放入其他线程进行执行。渲染主线程会执行消息队列中其他的任务,其他线程完成执行后,会将回
2024-06-24 14:29:19
140
1
原创 vue源码解析
vue之所以能适应基础的场景开发,除了经常提到的支持组件开发,除了它有完善的响应式系统之外,还提供了一些丰富的api方法,不管是静态还是原型方法,它们都丰富到足以满足我们日常基础的开发需求。首先是原型上的属性方法,在构造函数的定义之后,有这样五个函数,他们分别针对不同场景定义了Vue原型上的属性和方法。// 定义Vue原型上的init方法(内部方法) initMixin(Vue);// 定义原型上跟数据相关的属性方法 stateMixin(Vue);
2023-03-24 10:52:28
758
原创 proxy and defineProperty
数据代理的另一个说法是数据劫持,当我们在访问或者修改对象的某个属性时,数据劫持可以拦截这个行为并进行额外的操作或者修改返回的结果。而我们知道Vue响应式系统的核心就是数据代理,代理使得数据在访问时进行依赖收集,在修改更新时对依赖进行更新,这是响应式系统的核心思路。而这一切离不开vue对数据做了拦截代理。然而响应式并不是本节讨论的重点,这一节我们将看看数据代理在其他场景下的应用。和Proxy。
2023-03-20 15:29:57
148
原创 vue笔记
vue常见问题Vue的指令,你在哪个项目中用过,怎么用的(列举10个)如何自定义指令写组件前需要考虑什么,为什么要写组件组件通信的方式,父传子,子传父(列举三种)Vuex是什么,怎么用v-model是什么,怎么用?双向绑定的原理vue的双向数据绑定原理是在vue实例化之后,遍历data中的每一个属性,给每一个属性添加上Object.defineProperty()属性,在这个属性中有get()、set()这个方法对数据进行
2023-02-22 10:09:55
454
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人