文章目录一、Activity遇到的问题二、视图View和数据模型Model三、ViewModel架构组件作用四、ViewModel代码示例1、ViewModel视图模型2、Activity组件3、UI布局文件4、运行效果五、ViewModel生命周期六、ViewModel使用注意事项一、Activity遇到的问题Activity遇到的问题:瞬态数据丢失:操作Activity时,如果屏幕自动旋转,当前Activity组件会执行销毁操作,并重新创建新的Activity组件,该操作会导致Activity的瞬态数据丢失;内存泄漏:在系统组件如Activity中,启动了一个线程,在线程中执行一系列操作,
目录一、ViewModel的出生二、ViewModel的结束三、总结:我们通过ViewModel的生命周期来作为主线,讲解ViewModel、ViewModelProvider、ComponentActivity三者的关系。一、ViewModel的出生创建ViewModel,通过调用ViewModelProvider的get方法。mainViewModel=ViewModelProvider(this).get(MainViewModel::class.java)//ViewModelProvider.classpublicViewModelProvider(@NonNullViewModel
目录一、ViewModel的出生二、ViewModel的结束三、总结:我们通过ViewModel的生命周期来作为主线,讲解ViewModel、ViewModelProvider、ComponentActivity三者的关系。一、ViewModel的出生创建ViewModel,通过调用ViewModelProvider的get方法。mainViewModel=ViewModelProvider(this).get(MainViewModel::class.java)//ViewModelProvider.classpublicViewModelProvider(@NonNullViewModel
入门实战-权限管理之用户创建与关联角色(ViewModel再用与模型验证二)(1).在用户管理着模块中,相比较菜单功能的代码还是比较多的,设计到用户的创建,修改,角色变更和密码重置,同时都集中在列表页中。上图中,原来的角色名显示的是一个RoleId,也要通过ViewModel的应用,显示成对应的中文名称。(2).在ViewModel模型的建立上,我建了多个,为了满足不同的需要,其实后期用AutoMapper会简单些,但是为了理解和演练ViewModel的特点,就多写几遍,熟悉后掌握。如下图在Models文件夹中,我将用户Manager归到了新建的Managers下,便于管理,分别建立了:Cha
入门实战-权限管理之用户创建与关联角色(ViewModel再用与模型验证二)(1).在用户管理着模块中,相比较菜单功能的代码还是比较多的,设计到用户的创建,修改,角色变更和密码重置,同时都集中在列表页中。上图中,原来的角色名显示的是一个RoleId,也要通过ViewModel的应用,显示成对应的中文名称。(2).在ViewModel模型的建立上,我建了多个,为了满足不同的需要,其实后期用AutoMapper会简单些,但是为了理解和演练ViewModel的特点,就多写几遍,熟悉后掌握。如下图在Models文件夹中,我将用户Manager归到了新建的Managers下,便于管理,分别建立了:Cha
篇(15)-Asp.NetCore入门实战-权限管理之用户创建与关联角色(ViewModel再用与模型验证一)在上个篇章中,讲了角色和菜单的关系(也就是给角色赋权),本章讲用户和给用户分派角色的功能。如果是小白,最好是仔细看我写的代码,因为关键代码处都有注解。建议将篇14和篇15阅读完毕再做演练,为防止单篇过长,我将其分成2篇来讲解。用户与角色的处理逻辑是:(1).用户的增删改查;(2).给用户选一个所属角色。1.用户管理功能(1).用户表(Sql库)的创建CREATETABLE[dbo].[Manager]([Id][int]IDENTITY(1,1)NOTNULL,[RoleId][int
篇(15)-Asp.NetCore入门实战-权限管理之用户创建与关联角色(ViewModel再用与模型验证一)在上个篇章中,讲了角色和菜单的关系(也就是给角色赋权),本章讲用户和给用户分派角色的功能。如果是小白,最好是仔细看我写的代码,因为关键代码处都有注解。建议将篇14和篇15阅读完毕再做演练,为防止单篇过长,我将其分成2篇来讲解。用户与角色的处理逻辑是:(1).用户的增删改查;(2).给用户选一个所属角色。1.用户管理功能(1).用户表(Sql库)的创建CREATETABLE[dbo].[Manager]([Id][int]IDENTITY(1,1)NOTNULL,[RoleId][int
入门实战-权限管理之角色编辑和赋权(ViewModel-DTO初探)前面几章讲了菜单功能的管理之后,我们再创建一个角色管理的功能,创建过程不再详细介绍,只要按照菜单管理功能的步骤进行创建即可;和前面讲的稍微不同的是,现在多了一个Service层和异步操作,功能处理的代码放在这个层完成,只在Controller中调用即可。一、再讲角色的操作之前,我们先聊一个概念:ViewModel,或者叫DTO;两个是一个意思,叫法不一样而已。ViewModel是ASP.NETMVC应用中的隐式声明的层,用来维护Model和View之间的数据传递,因此,ViewModel也简称为数据传输对象或DTO。我们举个简
入门实战-权限管理之角色编辑和赋权(ViewModel-DTO初探)前面几章讲了菜单功能的管理之后,我们再创建一个角色管理的功能,创建过程不再详细介绍,只要按照菜单管理功能的步骤进行创建即可;和前面讲的稍微不同的是,现在多了一个Service层和异步操作,功能处理的代码放在这个层完成,只在Controller中调用即可。一、再讲角色的操作之前,我们先聊一个概念:ViewModel,或者叫DTO;两个是一个意思,叫法不一样而已。ViewModel是ASP.NETMVC应用中的隐式声明的层,用来维护Model和View之间的数据传递,因此,ViewModel也简称为数据传输对象或DTO。我们举个简
本文基于SDK29一、ViewModel与LiveData的作用:1、viewModel:数据共享,屏幕旋转不丢失数据,并且在Activity与Fragment之间共享数据。 2、LiveData:感知生命周期并且通知观察者刷新,防止内存泄漏。 一下用流程图的方式说明一下其是怎么工作的:1、ViewModel的构造: 2、LiveData注册监听: 3、数据改变通知刷新:LiveData中: 总结:1、ViewMode之所以能够共享数据,是因为其被放在ViewModelStore中,而ViewModelStore被放在NonConfigurationInstances(Activity中)这