移动开发

Android 架构之 MVI 完全体 | 重新审视 MVVM 之殇,PartialChange & Reducer 来拯救

这是 MVI 架构的第三篇,系列文章目录如下: Android 架构之 MVI 雏形 | 响应式编程 + 单向数据流 + 唯一可信数据源 Android 架构之 MVI 初级体 | Flow 替换 LiveData 重构数据链路 Android 架构之 MVI 完全体 | 重新审视 MVVM 之殇,PartialChange & Reducer 来拯救 Android 架构之 MVI 究

RecycleView缓存机制

recycleview代码一万三千多行,内部类26个,看起来感觉无从下手 然而,作为一个控件来讲,将onMeasure()和onLayout() 作为入口方法比较合适。其缓存复用机制,定会蕴藏其中。 先来看onMeasure方法 protected void onMeasure(int widthSpec, int heightSpec) { if (mLayout == null) {

第03章:DynamicDataDisplay 折线图(Xaml)

【目录】DynamicDataDisplay - 简书 一、概述 本文介绍使用DynamicDataDisplay的Xaml方式绘制。 前面两章一直是在用Xaml形式添加折线,这一章再添加上各个标题,作为一次比较完整的Xaml。以区别后面的Code形式添加。 二、演示 三、实现 第一步:新建项目 1.新建项目D3BaseLineStylePoc 2.添加Nuget包:Dynamic

JavaScript this的指向和改变this指向的方法

一、js 中 this 是什么 this 是函数执行时所在的上下文环境 二、this 的指向 js 全局对象:在 html 页面中引入的 js 文件 全局对象 是 window 对象,使用 node 命令执行 js 文件 全局对象 是 global 对象 1. 在 js 文件外层 this 指向 全局对象 console.log(this); // 全局对象 2. 在函数中 this 指向 在

目录

目录!是最新的目录!! 我披星戴月,奋不顾身,终于!!! 文章 杂文集 原初 2020-10-26 突发奇想【初乍的起源】 一本不一样的书【我的第二篇作文,第一篇已遗失】 总目录【原】 2021年度总结 催更 群聊:不用“雨”字表示雨,但是群里有个沙雕 目标【原】 每日遗个推理小故逝 从空岛生存没掉树苗开始(预告……吧) 2022年暑假总结 2022-09-06(今天删的杂文集) 扫土 微

Dubbo SPI自适应扩展和IOC

前言 书接上回,本文主要研究DUBBO SPI机制中的IOC和自适应扩展 上文中我们定义了一个抽象的汽车接口 Car,并提供两个实现别克(Buick)和奥迪(Audi) // 车 @SPI public interface Car { void run(); } // 奥迪车 public class Audi implements Car { @Override publ

强软弱虚引用如何理解

强引用: 我们平时最常使用的基本对象引用,JVM不会回收强引用类型对象,即使内存不足导致OOM也不会回收。 实现一个强引用 User user = new User() 软引用: 内存空间足够的情况下,JVM不会回收软引用对象,如果内存空间不足,那么软引用对象会被回收。 只要JVM没有回收,软引用就可以继续被程序使用,因此可以用软引用存放一些内存敏感的缓存。只要内存足够,对象就保持永远不被

Promise 对象

Promise 对象是一种连接生产者与消费者的特殊 JS 对象, 类似"订阅列表". let promise = new Promise( // 参数是执行器 executor function(resolve, reject) { // 扮演生产者的角色 通常是异步执行某些操作 // 生产者必须调用 resolve 或者 reject }); // promi

学习Promise

一、Promise 1.异步任务的处理 在ES6出来之后,有很多关于Promise的讲解、文章,也有很多经典的书籍讲解Promise. 虽然等你学会了Promise之后,会觉得Promise不过如此,但是在初次接触的时候都会觉得这个东西不好理解。 那么这里我从几个实际的例子来作为切入点: 我们调用一个函数,这个函数中发送网络请求(我们可以用定时器来模拟) 如果发送网络请求成功了,那么告知调用

123.路由重写-reroute

路由重写-reroute.jpeg reroute 方法,没有调用start时进行加载app,调用loadApps方法,loadApps中准备加载应用,准备完毕后注册自定义事件callAllEventListeners function reroute() { if (isStarted()) { appChangeUnderway = true;