Blazor与Vue在状态管理上有哪些不同之处和各自的优势?
- 内容介绍
- 文章标签
- 相关推荐
本文共计925个文字,预计阅读时间需要4分钟。
状态是什么?首次接触这个概念时,很多人会困惑,数据是状态吗?状态,应该从面向对象的角度来理解。比如,我们介绍一个具体的人时,会说他叫小明,今年18岁,他是一个对象,而叫小明和今年18岁则是这个对象的状态。
状态是什么?首次接触这个概念时,很多人会懵,数据是状态吗?
状态,应该从面向对象的角度来理解。比如我们在介绍一个具体的人时,会说“他叫小明,今年18岁”,“他”是一个具体的对象,有“姓名”和“年龄”两个属性,而“姓名=小明,年龄=18”,就是“他”这个对象的状态。你说,状态就是数据,也不能说你错,但还是要针对具体对象来说。比如“年龄=18”,如果脱离了“他”这个对象,就失去了它的描述涵义。
状态管理,则可以认为就是管理对象属性的Value。对于Vue和Blazor来说,表现为对组件视觉层的标签属性值或逻辑层的字段值的管理。我们之前学习的,为标签属性赋值,或绑定逻辑层的变量值、父传子、子传父等,都是在管理组件状态。而在进阶段,我们将范围再拉窄一些,主要学习组件之外状态的共享,以及状态的持久化保存问题。
状态共享。主要解决这样一个场景,组件A、组件B......,共享一个数据,在任意一个组件中修改这个共享数据时,其它组件中绑定这个数据的状态同步更新,也可以认为是组件间的数据传递,无论是组件是父子还是兄弟关系。Vue中,通过Vuex或Pinia插件来实现,而Blazor则通过依赖注入。两者的底层原理,都是应用启动后,创建一个生命周期为整个应用范围的对象,这个对象持有共享数据。状态管理的第二节,我们将主要学习Vue的Pinia和Blazor的依赖注入/单例。需要注意的是,依赖注入是Asp.net Core的核心模块,我们只是通过依赖注入来实现状态共享,而Pinia是专门用来管理共享状态的。
本文共计925个文字,预计阅读时间需要4分钟。
状态是什么?首次接触这个概念时,很多人会困惑,数据是状态吗?状态,应该从面向对象的角度来理解。比如,我们介绍一个具体的人时,会说他叫小明,今年18岁,他是一个对象,而叫小明和今年18岁则是这个对象的状态。
状态是什么?首次接触这个概念时,很多人会懵,数据是状态吗?
状态,应该从面向对象的角度来理解。比如我们在介绍一个具体的人时,会说“他叫小明,今年18岁”,“他”是一个具体的对象,有“姓名”和“年龄”两个属性,而“姓名=小明,年龄=18”,就是“他”这个对象的状态。你说,状态就是数据,也不能说你错,但还是要针对具体对象来说。比如“年龄=18”,如果脱离了“他”这个对象,就失去了它的描述涵义。
状态管理,则可以认为就是管理对象属性的Value。对于Vue和Blazor来说,表现为对组件视觉层的标签属性值或逻辑层的字段值的管理。我们之前学习的,为标签属性赋值,或绑定逻辑层的变量值、父传子、子传父等,都是在管理组件状态。而在进阶段,我们将范围再拉窄一些,主要学习组件之外状态的共享,以及状态的持久化保存问题。
状态共享。主要解决这样一个场景,组件A、组件B......,共享一个数据,在任意一个组件中修改这个共享数据时,其它组件中绑定这个数据的状态同步更新,也可以认为是组件间的数据传递,无论是组件是父子还是兄弟关系。Vue中,通过Vuex或Pinia插件来实现,而Blazor则通过依赖注入。两者的底层原理,都是应用启动后,创建一个生命周期为整个应用范围的对象,这个对象持有共享数据。状态管理的第二节,我们将主要学习Vue的Pinia和Blazor的依赖注入/单例。需要注意的是,依赖注入是Asp.net Core的核心模块,我们只是通过依赖注入来实现状态共享,而Pinia是专门用来管理共享状态的。

