为了之后博客的进行,本篇博客我们就来聊一下ReactiveSwift框架中的Lifetime类的具体实现.从Lifetime这个名字中我们就这道,就是生命周期.在ReactiveSwift中使用Lifetime来标记一个对象的生命周期,其实主要功能还是将对象的deinit()析构函数通过发送信号量将其回调出来.接下来我们就来看一下Lifetime类的实现.Lifetime类与Event和Observer相似,也是比较原子性的类,以原子组件的形式存在于ReactiveSwift中. 下方我们会先给…
上篇博客我们详细的聊了ReactiveSwift源码中的Bag容器,详情请参见<ReactiveSwift源码解析之Bag容器>.本篇博客我们就来聊一下信号量,也就是Signal的的几种状态以及Signal的基本实现.当然本篇博客所解析的源码会用到上篇博客介绍的Bag容器.本篇博客我们先通过一个示例来看一下Signal是如何工作的,具体说来就是Signal是如何与Observer关联的,来聊一下Observer是如何观察和Signal发出的信号的. 之前我们也详细的聊过Observer和Eve…
前两篇博客我们分别聊了ReactiveSwift框架中的负责标记对象的生命周期的类Lifetime以及负责原子性操作的Atomic类的具体代码实现.前两篇博客之所以聊Lifetime以及Atomic的代码实现,就是为了今天这篇博客做铺垫的.在Property以及MutableProperty的代码实现中我们会用到Lifetime以及Atomic.本篇博客我们就来仔细的探讨一下Property以及MutableProperty的代码实现. 因为MutableProperty用处更多,而且Mutab…
上篇博客我们详细的聊了ReactiveSwift源码中的Bag容器,详情请参见<ReactiveSwift源码解析之Bag容器>.本篇博客我们就来聊一下信号量,也就是Signal的的几种状态以及Signal的基本实现.当然本篇博客所解析的源码会用到上篇博客介绍的Bag容器.本篇博客我们先通过一个示例来看一下Signal是如何工作的,具体说来就是Signal是如何与Observer关联的,来聊一下Observer是如何观察和Signal发出的信号的. 之前我们也详细的聊过Observer和Eve…
上篇博客我们对Signal的基本实现以及Signal的面向协议扩展进行了介绍, 详细内容请移步于<Signal中的静态属性静态方法以及面向协议扩展>.并且聊了Signal的所有的g功能扩展都是放在Signal所实现的SignalProtocol协议的扩展中的.本篇博客就沿袭上篇博客的内容,我们来聊一下SignalProtocol的部分扩展.本篇博客我们主要来聊一下对Signal添加Observer的observe()方法扩展的具体实现,并且聊一下Signal的Map和Filter相关的功能扩展…
ReactiveCocoa这个框架是做什么用的本篇博客就不做过多赘述了,什么是"响应式编程"也不多聊了,自行Google吧.本篇博客的主题是解析ReactiveCocoa框架中的核心模块ReactiveSwift中的两个核心类的实现,也就是对Event和Observer这两个类进行解析.之所以把这两个类放在一块聊,是因为这两个类比较独立,可以说是ReactiveSwift中的两个原子类.Event确切的说是一个枚举,其中有几种事件,而Observer类的对象就是这些事件的发送者.所以把…
今天博客我接着上篇博客的内容来,上篇博客我们详细的看了ReactiveSwift中的Observer已经Event的代码实现.接下来我们来看一下ReactiveSwift中的结构体Bag的实现.Bag:袋子,顾明思议,就是用来装东西的,我们暂且将Bag称之为容器.在ReactiveSwift中的Bag主要是用来存储Signal对象的,我们在后期介绍ReactiveSwift源码时会陆陆续续的看到Bag的身影. 因为Bag这个结构体在ReactiveSwift中比较独立,所以我们本篇博客就来聊一下…
mustache.js(3.0.0版本) 是一个javascript前端模板引擎.官方文档(https://github.com/janl/mustache.js) 根据官方介绍:Mustache可以被用于html文件.配置文件.源代码等很多场景.它的运行得益于扩展一些标签在模板文件中,然后使用一个hash字典或对象对其进行替换渲染操作. 基本语法如下: 1. {{ keyName }}: 读取属性值, 如果有html标签的话,会被转义. 2. {{{ keyName }}}: 读取属性值且原样…
一.首先来讲解下springMVC的底层工作流程 1.首先我们重点放在前端控制器(DispatcherServlet) 其类图: 因为从流程图看,用户的请求最先到达就是DispatcherServlet.他是springmvc的核心,也是中央出处理器.因此我们分析源码,先看看他是什么样的流程:通过源码可看到:他是继承FrameworkServlet,它也是springmvc提供的类,继续往下继承关系看,FrameworkServlet继承HttpServletBean,她依旧是spring提供的…
目录 前言 1 代码结构 1.1 octotree插件 1.2 vue工程项目目录 1.3 主要代码目录src compiler core platforms server sfc shared 2 下载代码并运行构建 2.1 源代码下载 2.2 打开项目安装依赖 2.3 package.json 的 scripts 配置中添加 --sourcemap 3 编写demo进行调试 前言 记住框架的api是能让我们熟练的使用框架,但优秀的施工人员和优秀的设计师,两者还是有本质的区别.框架的api是如…