在我们的项目中我们使用 axios 进行异步调用。 因为异步调用的问题,如果我不采取手段,子页面没有办法获得父页面中的数据,页面将会显示为 没有数据。...问题和解决 这个问题的原因就是子组件在初始化的时候,父组件还没有获得数据。 可以使用的方法是 v-if 进行判断。 对比上面我们使用了 v-if 判断的代码和没有使用判断的代码。...上面的代码能够让子组件正确加载数据。 另外一个需要注意的是,在子组件中需要使用 props:['projects','currentPage'], 将数据从父总结中传递过来。...从父组件中将数据传递过来。 https://www.ossez.com/t/vue/14083
@Link装饰器:父子双向同步 子组件中被@Link装饰的变量与其父组件中对应的数据源建立双向数据绑定。 概述 @Link装饰的变量与其父组件中的数据源共享相同的值。...装饰器使用规则说明 @Link变量装饰器 说明 装饰器参数 无 同步类型 双向同步。 父组件中@State, @StorageLink和@Link 和子组件@Link可以建立双向数据同步,反之亦然。...被装饰变量的初始值 无,禁止本地初始化。 变量的传递/访问规则说明 传递/访问 说明 从父组件初始化和更新 必选。与父组件@State, @StorageLink和@Link 建立双向绑定。...GreenButton”,可以从父组件将变化同步给子组件,子组件GreenButton和YellowButton中@Link装饰变量的变化也会同步给其父组件。...框架行为 初始渲染: @Provide装饰的变量会以map的形式,传递给当前@Provide所属组件的所有子组件; 子组件中如果使用@Consume变量,则会在map中查找是否有该变量名/alias
装饰器使用规则说明 @Prop变量装饰器 说明 装饰器参数 无 同步类型 单向同步:对父组件状态变量值的修改,将同步给子组件@Prop装饰的变量,子组件@Prop变量的修改不会同步到父组件的状态变量上...1.初始渲染: a.执行父组件的build()函数将创建子组件的新实例,将数据源传递给子组件; b.初始化子组件@Prop装饰的变量。...从父组件中的@State类对象属性到@Prop简单类型的同步 如果图书馆有一本图书和两位用户,每位用户都可以将图书标记为已读,此标记行为不会影响其它读者用户。...从代码角度讲,对@Prop图书对象的本地更改不会同步给图书馆组件中的@State图书对象。...当且仅当@Prop有本地初始化时,从父组件向子组件传递@Prop的数据源才是可选的。
从父组件初始化:父组件使用命名参数机制,将指定参数传递给子组件。本地初始化的默认值在有父组件传值的情况下,会被覆盖。...,覆盖本地定义的默认值 MyComponent({ count: 1, increaseBy: 2 }) } } } 初始化子节点:组件中状态变量可以传递给子组件,初始化子组件对应的状态变量...从数据的传递形式和同步类型层面看,装饰器也可分为: 只读的单向传递; 可变更的双向传递。 图示如下,具体装饰器的介绍,可详见管理组件拥有的状态和管理应用拥有的状态。...@State装饰的变量拥有以下特点: @State装饰的变量与子组件中的@Prop、@Link或@ObjectLink装饰变量之间建立单向或双向数据同步。...被装饰变量的初始值 必须指定。 变量的传递/访问规则说明 传递/访问 说明 从父组件初始化 可选,从父组件初始化或者本地初始化。
@Link装饰器:父子双向同步 子组件中被@Link装饰的变量与其父组件中对应的数据源建立双向数据绑定 概述 @Link装饰的变量与其父组件中的数据源共享相同的值。...不支持any,不支持简单类型和复杂类型的联合类型,不允许使用undefined和null 被装饰变量的初始值 无,禁止本地初始化 变量的传递/访问规则说明 传递/访问 说明 从父组件初始化和更新 必选...观察变化和行为表现 观察变化 当装饰的数据类型为boolean,string,number类型时,可以同步观察到熟知的变化,实例请参考简单类型和类对象类型的@Link 当装饰的数据类型为class或者Object...当装饰的对象时array时,可以观察到数组添加,删除,更新数组单元你的变化,示例请参考数组类型的@Link 框架行为 @Link装饰的变量和其所述的自定义组件共享生命周期。...GreenButton“,可以从父组件将变化同步给子组件,子组件GreenButton和YellowButton中@Link装饰变量的变化也会同步给其父组件 class GreenButtonState
装饰器使用规则说明 @Prop变量装饰器 说明 装饰器参数 无 同步类型 单向同步:对父组件状态变量值的修改,将同步给子组件@Prop装饰的变量,子组件@Prop变量的修改不会同步到父组件的状态变量上...初始渲染: 执行父组件的build()函数将创建子组件的新实例,将数据源传递给子组件; 初始化子组件@Prop装饰的变量。...从父组件中的@State类对象属性到@Prop简单类型的同步 如果图书馆有一本图书和两位用户,每位用户都可以将图书标记为已读,此标记行为不会影响其它读者用户。...从代码角度讲,对@Prop图书对象的本地更改不会同步给图书馆组件中的@State图书对象。...当且仅当@Prop有本地初始化时,从父组件向子组件传递@Prop的数据源才是可选的。
@Privide装饰器和@Consume装饰器与后代组件双向同步 @Provide和@Consume,应用于与后代组件的双向数据同步,应用于状态数据在多个层级之间传递的场景。...被装饰变量的初始值 无,禁止本地初始化 变量的传递/访问规则说明 @Provide传递/访问 说明 从父组件初始化和更新 可选,允许父组件中常规变量,@State,@Link,@Prop,@Provide...和祖先组件同步 和@Provide双向同步 是否支持组件外访问 私有,尽可以在所属组件内访问 观察变化和行为表现 观察变化 当装饰的数据类型为Boolean,string,number类型时,可以观察到数值的变化...当装饰的数据类型为class或者Object的时候,可以观察到赋值和属性赋值的变化(属性为Object.keys(observedObject)返回的所有属性) 当装饰的对象是array的时候,可以观察到数组的添加...@Provide装饰的变量会以map的形式,传递给当前@Provide所属组件的所有子组件; b.子组件中如果使用@Consume变量,则会在map中查找是否有该变量名/alias(别名)对应的@Provide
同步类型 单向同步:从LocalStorage的对应属性到组件的状态变量。组件本地的修改是允许的,但是LocalStorage中给定的属性一旦发生变化,将覆盖本地的修改。...变量的传递/访问规则说明 传递/访问 说明 从父节点初始化和更新 禁止,@LocalStorageProp不支持从父节点初始化,只能从LocalStorage中key对应的属性初始化,如果没有对应key...同步类型 双向同步:从LocalStorage的对应属性到自定义组件,从自定义组件到LocalStorage对应属性。...变量的传递/访问规则说明 传递/访问 说明 从父节点初始化和更新 禁止,@LocalStorageLink不支持从父节点初始化,只能从LocalStorage中key对应的属性初始化,如果没有对应key...实例从UIAbility共享到一个或多个视图 上面的实例中,LocalStorage的实例仅仅在一个@Entry装饰的组件和其所属的子组件(一个页面)中共享,如果希望其在多个视图中共享,可以在所属UIAbility
在状态变量相关装饰器中,@State是最基础的,使变量拥有状态属性的装饰器,它也是大部分状态变量的数据源。...概述 @State装饰的变量,与声明式范式中的其他被装饰变量一样,是私有的,只能从组件内部访问,在声明时必须制定其类型和本地初始化。初始化也可选择使用命名参数机制从父组件完成初始化。...@State装饰的变量拥有以下特点: @State装饰的变量与子组件中的@Prop,@Link或@ObjectLink装饰变量之间建立单向或双向数据同步。...@装饰器使用规则说明 @State变量装饰器 说明 装饰器参数 无 同步类型 不与父组件中任何类型的变量同步 允许装饰的变量类型 Object,class,string,number,boolean,enum...被装饰变量的初始值 必须指定 变量的传递/访问规则说明 传递/访问 说明 从父组件初始化 可选,从父组件初始化或者本地初始化。
被装饰变量的初始值 必须指定,如果LocalStorage实例中不存在属性,则座位初始化默认值,并存入LocalStorage中 变量的传递/访问规则说明 传递/访问 说明 从父节点初始化和更新 禁止...,@Link,@Prop,@Provide 是否支持组件外访问 否 观察变化和行为表现 观察行为 当装饰的数据类型为boolean,string,number类型时,可以观察到数值的变化。...不支持any,不允许使用undefined和null 同步类型 双向同步:从LocalStorage的对应属性到自定义组件,从自定义组件到LocalStorage对应属性 被装饰变量的初始值 必须制定,...如果LocalStorage实例中不存在属性,则座位初始化默认值,并存入LocalStorage中 变量的传递/访问规则说明 传递/访问 说明 从父节点初始化和更新 禁止,@LocalStorageLink...实例从UIAbility共享到一个或多个视图 上面的实例中,LocalStorage的实例仅仅在一个@Entry装饰的组件和其所属的子组件(一个页面)中共享,如果希望其在多个视图中共享,可以在所属UIAbility
@Observed装饰的类,可以被观察到属性的变化;子组件中@ObjectLink装饰器装饰的状态变量用于接收@Observed装饰的类的实例,和父组件中对应的状态变量建立双向数据绑定。...当其数值改变时,会引起相关组件的渲染刷新。@State变量可以从父组件初始化,也可以从组件内初始化。...@Prop会被覆盖它的初始化规则如下框架行为初始渲染:执行父组件的build()函数将创建子组件的新实例,将数据源传递给子组件;初始化子组件@Prop装饰的变量。...@Link装饰的变量与其父组件中的数据源共享相同的值@Link装饰器不能在@Entry装饰的自定义组件中使用它的初始化规则如下框架行为@Link装饰的变量和其所属的自定义组件共享生命周期。...@Consume的初始化规则如下框架行为初始渲染:@Provide装饰的变量会以map的形式,传递给当前@Provide所属组件的所有子组件;子组件中如果使用@Consume变量,则会在map中查找是否有该变量名
数据源/同步源:状态变量的原始来源,可以同步给不同的状态数据。通常意义为父组件传给子组件的数据。 命名参数机制:父组件通过指定参数传递给子组件的状态变量,为父子传递同步参数的主要手段。...示例:ComA:({aProp:this.aProp}) 从父组件初始化:父组件使用命名参数机制,将指定参数传递给子组件。本地初始化的默认值在有父组件传值的情况下,会被覆盖。...,覆盖本地定义的默认值 MyComponent({count:1 ,increaseBy: 2}) } } } 初始化子节点:组件中状态变量可以传递给子组件...从数据的传递形式和同步类型层面看,装饰器也可分为: 只读的单向传递; 可变更的双向传递。 上图中,Components部分的装饰器为组件级别的状态管理,Application部分为应用的状态管理。...管理应用拥有的状态,即图中Application级别的状态管理: AppStorage是应用程序中的一个特殊的单例LocalStorage对象,是应用级的数据库,和进程绑定,通过@StorageProp
在组件范围传递的状态管理常见的场景如下: 场景 装饰器 组件内的状态管理 @State 从父组件单向同步状态 @Prop 与父组件双向同步状态 @Link 跨组件层级双向同步状态 @Provide和@Consume...当子组件中的状态依赖从父组件传递而来时,需要使用@Prop装饰器,@Prop修饰的变量可以和其父组件中的状态建立单向同步关系。...目标一的clickIndex即可同步改变为2,即目标一感知到此时点击了目标三。 如果使用之前的@Prop装饰器,因为该装饰器是父组件到子组件的单向传递,显然不能满足点击子组件改变父组件的需求。...@Provide作为数据的提供方,可以更新其子孙节点的数据,并触发页面渲染。@Consume在感知到@Provide数据的更新后,会触发当前自定义组件的重新渲染。...不允许在同一个自定义组件内,包括其子组件中声明多个同名或者同别名的@Provide装饰的变量。 改装饰器不需要使用@State装饰器
data是每个组件的私有内存,可以在其中存储需要的任何变量。props是将数据从父组件传递到子组件的方式。...在本文中,我们将学习到: 什么是props,为什么这些数据只向下流动,而不是向上 data 选项的用途 响应式是什么 如何避免 props 和 data 之间的命名冲突 如何将 props 和 data...结合使用 什么是 props 在Vue中,props(或properties)是我们将数据从父组件向下传递到其子组件的方式。...但是出于同样的原因,这样做是非常糟糕的 如果需要向组件传递数据,可以使用props向下传递数据(传递给子组件),或者使用事件向上传递数据(传递给父组件)。...我们如何从父组件(ProfilePage)向下获取数据到子组件(ContactInfo) 我们必须使用 props 传递数据。
在组件类中,通过使用 @Component 装饰器 1 用来将类声明为组件类,并为这个组件类配置一些元数据 2,以决定该组件在运行期间该如何处理、实例化和使用 装饰器中存在三个基础的配置参数,用来完成组件与视图之间的关联...,将数据源与视图进行绑定,从而实现源数据与用户呈现的一致性 从数据源到视图:插值、组件中的属性、dom 元素的 property 3、css 样式、css 类 从视图到数据源:事件 视图与数据源之间的双向绑定...@Input 用来获取数据,@Output 用来向外发送数据 4.4.2、子组件获取父组件信息 在父组件中,添加对于子组件的引用,并将需要传递的数据 or 方法绑定到子组件上 传递数据直接将父组件中的属性值赋值给绑定在子组件上的属性就可以了...,就可以通过在子组件上使用事件绑定的方式绑定到一个父组件事件,通过 $event 获取到子组件传递的数据值 父组件内容: 2、使用 @Output 装饰器配合 EventEmitter...4.4.4、非父子组件之间的通信 不管组件之间是否具有关联关系,都可以通过共享一个服务的方式来进行数据交互,也可以将需要进行共享的数据存储到一些存储介质中,通过直接读取这个存储介质中的数据进行通信 创建一个服务
组件本地的修改是允许的,但是ApppStorage中给定的属性一旦发生变化,将覆盖本地的修改。...变量的传递/访问规则说明 传递/访问 说明 从父节点初始化和更新 禁止,@StorageProp不支持从父节点初始化,只能AppStorage中key对应的属性初始化,如果没有对应key的话,将使用本地默认值初始化...当装饰的对象是array时,可以观察到数组添加,删除,更新数组单元的变化。...不支持any,不允许使用undefined和null 同步类型 双向同步:从AppStorage的对应属性到自定义组件,从自定义组件到AppStorage对应属性。...被装饰变量的初始值 必须制定,如果AppStorage实例中不存在属性,则座位初始化默认值,并存入AppStorage中。 变量的传递/访问规则说明 传递/访问 说明 从父节点初始化和更新 禁止。
如上述示例中@Entry、@Component和@State都是装饰器,@Component表示自定义组件,@Entry表示该自定义组件为入口组件,@State表示组件中的状态变量,状态变量变化会触发UI...声明式UI 创建组件 配置属性 配置事件 配置子组件 状态管理 状态变量:被状态装饰器装饰的变量,改变会引起UI的渲染更新。 常规变量:没有状态的变量,通常应用于辅助计算。...从父组件初始化:父组件使用命名参数机制,将指定参数传递给子组件。本地初始化的默认值在有父组件传值的情况下,会被覆盖。 初始化子节点:组件中状态变量可以传递给子组件,初始化子组件对应的状态变量。...渲染控制 ArkUI通过自定义组件的build函数和@builder装饰器中的声明式UI描述语句构建相应的UI。...在声明式描述语句中开发者除了使用系统组件外,还可以使用渲染控制语句来辅助UI的构建,这些渲染控制语句包括控制组件是否显示的条件渲染语句,基于数组数据快速生成组件的循环渲染语句以及针对大数据量场景的数据懒加载语句
@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化 上文所属的装饰器仅能观察到第一层的变化,但是在实际应用开发中,应用会根据开发需要,封装自己的 数据模型。...; 子组件中@ObjectLink装饰器装饰的状态变量用于接收@Observed装饰的类的实例,和父组件中对应的状态变量建立双向数据绑定。...需要放在class的定义前,使用new创建类对象 @ObjectLink变量装饰器 说明 装饰器参数 无 同步类型 不与父组件中的任何类型同步变量 允许装饰的变量类型 必须为被@Observed装饰的...//不允许@ObjectLink装饰的数据自身赋值 this.objLink= ... 变量的传递/访问规则说明 @ObjectLink传递/访问 说明 从父组件初始化 必须指定。...@Observed装饰的class的实例会被不透明的代理对象包装,代理了class上的属性的setter和getter方法 b.子组件中@ObjectLink装饰的从父组件初始化,接受被@Observed
因此,将初始数据传递到组件的方式非常相似。但正如我们提到的那样,在两个框架中更改数据的方式有所不同。 假设我们有一个名为 name: ‘Sunil’ 的数据元素。...无论如何,将其作为空字符串,我们在输入字段中键入的任何文本都会绑定到 todo。这实际上是双向绑定(输入字段可以更新数据对象,数据对象可以更新输入字段)。...中,我们将 props 传递到子组件的创建处。...然后可以在子组件中通过名字引用它们。 如何将数据发送回父组件 React 的实现方法 我们首先将函数传递给子组件,方法是在我们调用子组件时将其引用为 prop。...同样,删除待办事项一节中详细介绍了整个过程。 总结 我们研究了添加、删除和更改数据,以 prop 形式从父组件到子组件传递数据,以及通过事件监听器的形式将数据从子组件发送到父组件。
@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化 上文所述的装饰器仅能观察到第一层的变化,但是在实际应用开发中,应用会根据开发需要,封装自己的数据模型。...概述 @ObjectLink和@Observed类装饰器用于在涉及嵌套对象或数组的场景中进行双向数据同步: 被@Observed装饰的类,可以被观察到属性的变化; 子组件中@ObjectLink装饰器装饰的状态变量用于接收...@ObjectLink的属性是可以改变的,但是变量的分配是不允许的,也就是说这个装饰器装饰变量是只读的,不能被改变。 被装饰变量的初始值 不允许。 @ObjectLink装饰的数据为可读示例。...如果一旦发生@ObjectLink装饰的变量的赋值,则同步链将被打断。 变量的传递/访问规则说明 @ObjectLink传递/访问 说明 从父组件初始化 必须指定。...框架行为 初始渲染: @Observed装饰的class的实例会被不透明的代理对象包装,代理了class上的属性的setter和getter方法 子组件中@ObjectLink装饰的从父组件初始化
领取专属 10元无门槛券
手把手带您无忧上云