mvvm

After adding Kapt plugin - A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution

馋奶兔 提交于 2020-08-17 12:11:31
问题 First of all, I'm pretty much aware that a lot of questions on this error had been posted already here, and none of them seems to be having a proper solution especially the one I need. I'm stuck with the following error for over a week. I'm working on an android project which is being built using Kotlin, MVVM, Clean Arch, and Navigation Components. I recently added realm database, and for that I had to add the following plugins. apply plugin: 'kotlin-kapt' apply plugin: 'realm-android' The

JavaScript 实现一个简单的MVVM前端框架(ES6语法)

心已入冬 提交于 2020-08-17 07:58:39
前言 随着前端各大框架的崛起,为我们平时的开发带来了相当的便利,我们不能一直停留在应用层面,今天就自己动手实现一个乞丐版的MVVM小框架 完整代码github地址 效果 <!-- mvvm.html --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>MVVM</title> </head> <body> <div id="app"> <p>{{a}}</p> <p>{{b.b}}</p> <input type="text" v-model="a"> </div> <script src="./mvvm.js"></script> <script> const vm = new Mvvm({ el: '#app', data: { a: 1, b: { b : 2 } } }) </script> </body> </html> 基本是模仿vue的调用方式 实现步骤 数据劫持Observe 数据代理(让Mvvm对象可以处理数据) 模板编译Compile 发布订阅 视图与数据进行关联 实现双向数据绑定 代码分析 // mvvm.js // 定义框架类名Mvvm,我们则可以直接实例化new Mvvm() 来调用 class Mvvm { constructor(options){ /**

JetPack之ViewModel最新源码详细分析

陌路散爱 提交于 2020-08-17 07:02:10
本文会基于最新版ViewModel使用方法与源码进行详细分析,从注册到实现ViewModel界面数据如何保存与管理全部涉及。 ** 简介: ** ViewModel 是JetPack系列库之一,它用来对组件的界面数据进行管理,且当组件的状态发生改变时数据依然留存。 优点:1.当所依赖组件的状态发生改变时,例如屏幕旋转等,界面数据不会发生改变 2.实现MVVM架构的基础,在日常开发中, ViewModel 就是MVVM架构的VM层,它相当于MVP架构的present,我们可以将业务逻辑以及数据交互的部分放入ViewModel中。 源码分析: 版本:viewmodel:1.1.1 此处使用的示例代码与livedata源码分析的相同,不影响流程分析 首先构造一个继承于 ViewModel 的类 接着创建一个 factory 实例传入 ViewModelProvider(this,factory ) 中去并调用 get 方法将我们的 ViewModel 作为参数传入。 此处需要注意的是在以前的版本中直接通过 ViewModelProviders.of(this).get() 方法来完成这个操作的。在最新的版本中已经取消了of方法,并且构造方法必须要传入2个参数 查看 ViewModelProvider 的构造方法可看出构造 ViewModelProvider 时必须传入2个参数才行

前端里最帅的2016年终总结

断了今生、忘了曾经 提交于 2020-08-16 02:05:35
年底了,我奋战到最后一刻,虽说我很帅,但是 免不了俗。 人人都写各种年终总结,年终告白,虽说大部分人是在应付公司(我不揭穿你们额),但如果是自己真心实意的想写,确实是有很多东西值得记录和思考的。 我司是没有强迫必须写年终总结的,如果强迫我写,我偏不写,没强迫我写,我到是有一堆的话要吹!对,就这么任性。 好多人问小北,你今年多大了,我基本像女人一样不爱透漏自己的年龄和一些隐私的,毕竟说了就少了很多撩妹的机会嘛 /斜眼笑/斜眼笑。(其实我真心很正经,嗯!) 其实我今年 八十有九。。。额 是89年生人,贵庚28了,免贵姓 郭 ;又忍不住讲段子了不好意思。说人话: 我2017年就28岁了,性别 男,人帅,身体健康,积极自信,自动隔离负能量,欢迎颜值妹子@我。。。 古人曰:业精于勤,荒于嬉 真心体会了古圣先贤的伟大总结。 以往,我是不爱写周总结、月总结、日总结、年总结, 结你妹?不就是各种应付么,然而现在我通过很多天的锻炼,已经养成了写文章的好习惯,真心好习惯,现在不写点东西,我反而难受 想哭,心里有东西,在脑子里过一遍 不写出来,那就是资源浪费,对不起爹娘啊。 入正题 一、2016年,我自身内心的提升 1、人生观的变化 随着年龄的增长和阅历的丰富,年少时候的傲慢和狂傲已快消失,愤世嫉俗的人生态度也变成了坦然自若, 因为现在逐渐明白,任何社会想象和人生百态存在即合理

【Vue简易入门】什么是Vue?

雨燕双飞 提交于 2020-08-15 03:00:08
Vue作为一款目前最流行的前端框架之一,是许多前端开发工程师的不二选择。最近我在前端岗位上也运用Vue实现了几款产品,那么今天来分享一下Vue是什么,以及我对Vue的见解。 一、定义 Vue是一套用于构建用户界面的 渐进式 JavaScript框架 与传统JS和JQuery框架不同,Vue的 渐进式框架 表示开发者可以由简单组件写起,渐渐搭建出一个复杂的前端平台。 形成Vue渐进式框架的核心概念为: 组件化 , MVVM , 响应式 ,和 生命周期 ,下面会一个个详细介绍。 二、为什么要用Vue? 1. 组件化 Vue将组成一个页面的HTML,CSS和JS 合并到一个组件 中,可以被其他组件或页面引入而 重复利用 。通常每个.Vue文件作为一个组件导出,组件可以作为基础组件(如按钮)或一个页面(如登录页面)。组件化很好的将一个庞大复杂的前端工程 拆分 为一个个组件,重复利用的性质也大大提高了开发的效率。 2. MVVM 数据双向绑定 MVVM模式(全称为Model-View-ViewModel)为Vue实现 数据双向绑定 。在MVVM中,View为视图层,ViewModel为业务逻辑层,Model为数据层。 什么是数据双向绑定呢?当用户使View变化时(如填写表单),变化会 自动同步 到ViewModel处理相应逻辑,并将变化更新到Model数据库。反之,若服务端数据变化

十年工作经验的前端高级工程师讲解,如何规划自己的职业生涯

戏子无情 提交于 2020-08-15 02:58:19
前端是什么 工作流程为从UI处得到原型图或者效果图,在项目(网站、微信公众号、小程序、WEBAPP)中还原图片效果,然后与后台进行各种数据交互。 在项目中充当一号背锅侠,项目出现问题第一个收到传唤的人。一个不受UI、后台待见,甚至不受协同开发的其他前端待见的岗位。 前端, 一个让我沉迷的岗位 前端, 一个将一张张UI效果图变成一个个生动的项目的岗位 一个将冰冷的后台数据转换为有趣的视觉享受的岗位 我感觉目前的前端市场整体还是处于迅速发展期,市场对于前端的需求也一直比较大。 但是前端存在一些比较畸形的地方,门槛低,随便培训上两个月就可以去应聘前端工程师,而培训之前大家从事的岗位是各式各样的,可能和计算机并没有太大关系,这就导致了要想进一步的提升自己比较困难。 所以市面上有很多这样的前端,培训出身,反复将一个技术在项目中使用,做到了某种技术的熟练,但是对于新技术的接受能力十分弱。 现在市场对于中高级的前端工程师需求更加迫切,所以入了前端的门,就需要不断的提升自己,无论你是学院派,还是培训派,还是自学派,都应该具有强烈的学习意识。 一个项目的起源来自于甲方,可能是你的老板或者你的客户,他们会提出需求,给你们描绘出一个世界。 这个抽象的世界会由UI变成一张张实图,交给你。而填充这个世界的数据也有由后台为你提供好。而你需要做的,就是在获取到这些之后将他们变成现实。 在这之前,你获取到需求之后

通俗易懂了解Vue双向绑定原理及实现

╄→гoц情女王★ 提交于 2020-08-14 18:00:37
1. 前言 每当被问到Vue数据双向绑定原理的时候,大家可能都会脱口而出:Vue内部通过 Object.defineProperty 方法属性拦截的方式,把 data 对象里每个数据的读写转化成 getter / setter ,当数据变化时通知视图更新。虽然一句话把大概原理概括了,但是其内部的实现方式还是值得深究的,本文就以通俗易懂的方式剖析Vue内部双向绑定原理的实现过程。 2. 思路分析 所谓MVVM数据双向绑定,即主要是:数据变化更新视图,视图变化更新数据。如下图: 也就是说: 输入框内容变化时,data 中的数据同步变化。即 view => model 的变化。 data 中的数据变化时,文本节点的内容同步变化。即 model => view 的变化。 要实现这两个过程,关键点在于数据变化如何更新视图,因为视图变化更新数据我们可以通过事件监听的方式来实现。所以我们着重讨论数据变化如何更新视图。 数据变化更新视图的关键点则在于我们如何知道数据发生了变化,只要知道数据在什么时候变了,那么问题就变得迎刃而解,我们只需在数据变化的时候去通知视图更新即可。 3. 使数据对象变得“可观测” 数据的每次读和写能够被我们看的见,即我们能够知道数据什么时候被读取了或数据什么时候被改写了,我们将其称为数据变的‘可观测’。 要将数据变的‘可观测’,我们就要借助前言中提到的 Object

MVC和MVVM有什么区别?

☆樱花仙子☆ 提交于 2020-08-14 13:52:38
问题: 标准“模型视图控制器”模式和Microsoft的Model / View / ViewModel模式之间有区别吗? 解决方案: 参考一: https://stackoom.com/question/2nif/MVC和MVVM有什么区别 参考二: https://oldbug.net/q/2nif/What-is-the-difference-between-MVC-and-MVVM 来源: oschina 链接: https://my.oschina.net/stackoom/blog/4486162

使用虚拟dom的原因

风流意气都作罢 提交于 2020-08-14 11:40:34
一、为什么要使用虚拟dom。 我们来回顾一下前端开发刀耕火种的时代。 ①之前的前端开发需要手动操作dom,还要考虑浏览器兼容性等问题,非常的麻烦,后来有了JQuery等库,简化了dom操作,我们也不需要考虑浏览器兼容性等问题,但是随着前端项目的复杂,dom操作也变得复杂,我们既要考虑操作数据,也要考虑操作dom,为了简化dom操作,则出现了各种mvvm框架, ②mvvm框架帮我们解决可视图和状态的同步问题。也就是当数据发生变化自动更新视图,当视图发生变化,自动更新数据。 ③在过去,为了简化视图的操作,我们可以使用模板引擎,但是模板引擎没有解决跟踪状态变化的问题,就是当数据发生变化后,无法获取上一次的状态,只好把界面上的元素删除,然后在重新创建,jquery写的一个列表,当新增删除排序时,添加一个过渡效果,操作时列表会先被删除,然后重建,耗费性能。模板引擎没有解决跟踪状态变化的问题,所以有了虚拟dom,虚拟dom的好处是当状态发生改变时,不需要立即更新dom,只需要创建一个虚拟dom树,来描述dom,虚拟dom内部将弄清楚如何有效的(diff)更新dom,内部会使用diff算法来找到状态的差异,只更新变化的部分。虚拟dom只会更新数据发生变化的dom元素, ④总结:虚拟dom可以维护程序的状态,可以跟踪上一次的状态,我们可以通过对比前后两次状态的差异,来更新真实的dom。