一、@State装饰器
1、状态(state):指驱动视图的更新数据;
@State装饰器标记的变量必须初始化,不能为空值;
@State支持的数据类型:Object、class、string、number、boolean、enum及这些类型的数组;
二、@Porp和@Link装饰器
当父子组件之间需要数据同步时,可以使用@Prop和@Link装饰器
1、@Porp装饰器:
- 同步类型:单向同步数据;
- 支持的变量类型:string、number、boolean、enum类型;父组件是对象,子组件是对象中的属性;不能是数组和any类型;
- 初始化方式:不允许子组件初始化
- 示例:
调用组件:
2、@Link装饰器:
- 同步类型:双向同步数据
- 支持的变量类型:父子类型一致:string、number、boolean、enum、object、class及他们的数组;
- 初始化方式:父组件传值,禁止子组件初始化
- 示例:
- 调用组件:
三、@ObjectLink和@Observed
1、@objectLink和@Observed装饰器用于在涉及嵌套对象或数组元素为对象的场景中进行双向数据同步;
四、页面路由
1、页面路由是指在应用程序中实现不同页面之间的跳转和数据传递。
- 页面栈的最大容量上限为32个页面,使用router.clear()方法可以清空页面栈,释放内存;
- Router有两种页面跳转模式,分别是:
(1)、router.pushUrl():目标页不会替换当前页,而是压入页面栈,因此可以用router.back()返回当前页;
(2)、router.replaceUrl();目标页替换当前页,当前页会被销毁并释放资源,无法返回当前页;
- Router有两种页面实例模式,分别是:
(1)、Standard:标准实例模式,每次跳转都会新建一个目标页并压入栈顶。默认就是这种模式;
(2)、Single:单实例模式,如果目标页已经在栈中,则离栈顶最近的同Url页面会被移动到栈顶并重新加载;