【鸿蒙笔记-基础篇_状态管理】
本篇为必会内容,反正我在给公司面试的时候会问到!本文末有些彩蛋,都是开发中常见问题,优秀哈哈~~~
一、@State装饰器:被@State装饰器装饰的变量会具有状态,值发生改变能够驱动视图变化。
二、@Prop和@Link装饰器:用于父子组件间的数据传递(父子组件指对于比较复杂的界面,为了方便维护会对页面结构进行封装)
三、@Provide和@Consume用于跨组件数据传递
用法:父组件用@Provide装饰,后代组件用@Consume装饰,不用进行传值,系统内部维护。会损耗性能,减少使用。
四、@Observed和@ObjectLink用于处理嵌套类型的数据传递
用法:1、在需要传递的对象上用@Observerd装饰
2、在使用这个对象的变量上面用@ObjectLink修饰,一般情况下把用到嵌套对象的地 方进行抽取,然后在抽取的组件内部把变量进行修饰。
子组件调用父组件中的方法:父组件中的方法通过参数的形式进行传递,子组件调用的时候子组件中没有该方法,防止this变换在传递的时候需要绑定父组件的this,使用bind方法。
彩蛋:
1、@Prop相当于把父组件传递的值复制了一份,传递的时候用“this.变量名”关键字进行传递。
2、@Link相当于把父组件的引用进行传递,父子组件用的是同一个引用,传递的时候需要通 过"$ + 变量名"进行传递。
3、小技巧:在一个ets文件中需要创建一个组件的时候可以直接输入:entry根据代码提示创建页面组件结构。这样方便快捷很多!
4、对于开发中的作用域问题,原则就是赋予的权限越小越好,有效作用域越小越安全,防止数据被非法修改。