入门实战-权限管理之角色编辑和赋权(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中)这
本文基于SDK29一、ViewModel与LiveData的作用:1、viewModel:数据共享,屏幕旋转不丢失数据,并且在Activity与Fragment之间共享数据。 2、LiveData:感知生命周期并且通知观察者刷新,防止内存泄漏。 一下用流程图的方式说明一下其是怎么工作的:1、ViewModel的构造: 2、LiveData注册监听: 3、数据改变通知刷新:LiveData中: 总结:1、ViewMode之所以能够共享数据,是因为其被放在ViewModelStore中,而ViewModelStore被放在NonConfigurationInstances(Activity中)这
本文基于SDK29一、ViewModel与LiveData的作用:1、viewModel:数据共享,屏幕旋转不丢失数据,并且在Activity与Fragment之间共享数据。 2、LiveData:感知生命周期并且通知观察者刷新,防止内存泄漏。 二、用法 三、原理:1、ViewModel:ViewModelProviders.of(this).get(MyViewModel::class.java)我们通过这个方法来构造ViewModel。@NonNull@MainThreadpublicstaticViewModelProviderof(@NonNullFragmentActivityact
本文基于SDK29一、ViewModel与LiveData的作用:1、viewModel:数据共享,屏幕旋转不丢失数据,并且在Activity与Fragment之间共享数据。 2、LiveData:感知生命周期并且通知观察者刷新,防止内存泄漏。 二、用法 三、原理:1、ViewModel:ViewModelProviders.of(this).get(MyViewModel::class.java)我们通过这个方法来构造ViewModel。@NonNull@MainThreadpublicstaticViewModelProviderof(@NonNullFragmentActivityact
ViewModel的创建ViewModel本身只是ViewModel这个类的子类:classMainViewModel:ViewModel(){}在屏幕旋转UI重建的时候,它是如何拥有保持数据的能力的呢?它又是何时被清理的呢?答案全跟它是如何创建,保存的有关系.本文回顾一下创建ViewModel的几种常见写法.注:本文中的图并不是严格意义的时序图(也不符合规范),只是为了简略表示一下代码中的调用关系.原生手动创建ViewModel当ViewModel没有构造参数当ViewModel没有参数的时候很简单:classMainViewModel:ViewModel(){}classMainActiv
ViewModel的创建ViewModel本身只是ViewModel这个类的子类:classMainViewModel:ViewModel(){}在屏幕旋转UI重建的时候,它是如何拥有保持数据的能力的呢?它又是何时被清理的呢?答案全跟它是如何创建,保存的有关系.本文回顾一下创建ViewModel的几种常见写法.注:本文中的图并不是严格意义的时序图(也不符合规范),只是为了简略表示一下代码中的调用关系.原生手动创建ViewModel当ViewModel没有构造参数当ViewModel没有参数的时候很简单:classMainViewModel:ViewModel(){}classMainActiv
要看本系列其他文章,可访问此链接Jetpack架构学习|Stars-One的杂货小窝原文地址:Jetpack架构组件学习(2)——ViewModel和Livedata使用|Stars-One的杂货小窝Jetpack架构推荐使用MVVM结构,为此推出了几个MVVM的组件库供我们开发者快速接入,首先要讲的就是ViewModel个人理解:Activity为View,VM就是ViewModel,负责数据的逻辑处理,Model则是数据源ViewModel介绍ViewModel能做什么?ViewModel生命周期与Activity独立,可以优雅的保存内存中的数据(在屏幕旋转的横竖屏切换时,数据可以得到保留
要看本系列其他文章,可访问此链接Jetpack架构学习|Stars-One的杂货小窝原文地址:Jetpack架构组件学习(2)——ViewModel和Livedata使用|Stars-One的杂货小窝Jetpack架构推荐使用MVVM结构,为此推出了几个MVVM的组件库供我们开发者快速接入,首先要讲的就是ViewModel个人理解:Activity为View,VM就是ViewModel,负责数据的逻辑处理,Model则是数据源ViewModel介绍ViewModel能做什么?ViewModel生命周期与Activity独立,可以优雅的保存内存中的数据(在屏幕旋转的横竖屏切换时,数据可以得到保留
Jetpack学习之ViewModel、Lifecycles、LiveData声明:本学习笔记基于郭霖大大的《第一行代码第3版》并结合官方文档、网络资源以及个人理解整理而成,欢迎大家讨论指正Jetpack简介主要组成 Jetpack是一个开发工具集,能够协助开发者编写出更简洁的代码,简化开发过程,并且这些组件有一个很好的特点,他们大部分不依赖与任何Android系统版本,这意味着这些组件通常是定义在AndroidX库当中,并且拥有非常好的向下兼容性。 Jetpack全家桶包含内容非常多,主要可分为基础、架构、行为、界面4个部分,本次学习主要聚焦于对架构的学习,其中很多组件更是专门为MVVM