摘要: 思考 对于状态管理的解决思路就是:把组件之间需要共享的状态抽取出来,遵循特定的约定,统一来管理,让状态的变化可以预测。 Flux,单向数据流方案,以 Redux 为代表 redux thunk、promise、saga、epic等处理副作用 dva,rematch,mirror oop风格 vuex 阅读全文
posted @ 2019-03-05 16:31 快乐~ 阅读(649) 评论(0) 推荐(0) 编辑
摘要: rxjs学习了几个月了,看了大量的东西,在理解Observable的本文借鉴的是渔夫的故事, "原文" ,知识的主线以《深入浅出rxjs》为主,动图借鉴了rxjs中文社区翻译的文章和国外的一个 "动图网站" 正文: 在思维的维度上加入时间考量 一、函数响应式编程 Rxjs使用了一种不同于传统的编程模 阅读全文
posted @ 2018-12-19 08:03 快乐~ 阅读(585) 评论(1) 推荐(0) 编辑
摘要: 回顾HTTP2.0 HTTP1.1在应用层以纯文本的形式进行通信,每次通信都要带完整的HTTP的头,而且不考虑pipeli模式的化,每次的过程总是像上面描述的那样一去一回。那样在实时性、并发想上都存在问题 头部压缩:HTTP2.0会对HTTP的头进行一定的压缩,将原来每次都要携带的大量key val 阅读全文
posted @ 2018-12-11 20:09 快乐~ 阅读(18775) 评论(0) 推荐(3) 编辑
摘要: 数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间。所以,执行效率是算法一个非常重要的考量指标。那如何来衡量你编写的算法代码的执行效率呢?这里就要用到我们今天要讲的内容:时间、空间复杂度分析。 为什么需要复杂度分析? 首先,我可以肯定地说,你这种评估算法执 阅读全文
posted @ 2018-11-29 16:03 快乐~ 阅读(19468) 评论(2) 推荐(6) 编辑
摘要: 前端框架解决的根本问题就是数据和ui同步的问题,vue很好的额解决了那个问题。也就是Vue.js 一个核心思想是数据驱动。所谓数据驱动,是指视图是由数据驱动生成的,我们对视图的修改,不会直接操作 DOM,而是通过修改数据。通过分析来弄清楚模板和数据如何渲染成最终的 DOM。 new Vue 发生了什 阅读全文
posted @ 2018-11-29 11:51 快乐~ 阅读(905) 评论(0) 推荐(0) 编辑
摘要: 细节流程图 初始化 计算属性的初始化是发生在 Vue 实例初始化阶段的 initState 函数中,执行了 if (opts.computed) initComputed(vm, opts.computed),initComputed 的定义在 src/core/instance/state.js 阅读全文
posted @ 2018-11-29 11:49 快乐~ 阅读(338) 评论(0) 推荐(0) 编辑
摘要: $watch 实际上无论是 $watch 方法还是 watch 选项,他们的实现都是基于 Watcher 的封装。首先我们来看一下 $watch 方法,它定义在 src/core/instance/state.js 文件的 stateMixin 函数中,如下: 侦听属性的初始化也是发生在 Vue 的 阅读全文
posted @ 2018-11-29 11:48 快乐~ 阅读(2183) 评论(0) 推荐(0) 编辑
摘要: 收集的目的就是为了当我们修改数据的时候,可以对相关的依赖派发更新,那么这一节我们来详细分析这个过程。 setter 部分的逻辑: 假设我们有如下模板: 我们知道这段模板将会被编译成渲染函数,接着创建一个渲染函数的观察者,从而对渲染函数求值,在求值的过程中会触发数据对象 name 属性的 get 拦截 阅读全文
posted @ 2018-11-29 11:47 快乐~ 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 主线程的执行过程就是一个 tick,而所有的异步结果都是通过 “任务队列” 来调度被调度。 消息队列中存放的是一个个的任务(task)。 规范中规定 task 分为两大类,分别是 macro task 和 micro task,并且每个 macro task 结束后,都要清空所有的 micro ta 阅读全文
posted @ 2018-11-29 11:47 快乐~ 阅读(204) 评论(0) 推荐(0) 编辑
摘要: Vue 会把普通对象变成响应式对象,响应式对象 getter 相关的逻辑就是做依赖收集,这一节我们来详细分析这个过程 Dep Dep 是整个 getter 依赖收集的核心,它的定义在 src/core/observer/dep.js 中 import type Watcher from './wat 阅读全文
posted @ 2018-11-29 11:46 快乐~ 阅读(886) 评论(0) 推荐(0) 编辑
摘要: Object.defineProperty Object.defineProperty 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象,先来看一下它的语法: obj 是要在其上定义属性的对象; prop 是要定义或修改的属性的名称; descriptor 是将被定 阅读全文
posted @ 2018-11-29 11:45 快乐~ 阅读(907) 评论(0) 推荐(0) 编辑
摘要: 写了一段时间ts,在从头学习一遍,温故而之新 ts的一些技巧 1、巧用注释 通过/ /形式的注释可以给 TS 类型做标记,编辑器会有更好的提示: 2、巧用注释 进阶 注释有很多规范的字段,基本和 JSDOC 一致。但不用着急翻文档,在 / / 里输入 @ 就可以看到丰富的选择 3、巧用 typeof 阅读全文
posted @ 2018-11-29 11:42 快乐~ 阅读(1675) 评论(0) 推荐(0) 编辑
摘要: 递归 本质上,将原来的问题,转化为更小的同一个问题 生活中递归的例子 周末你带着女朋友去电影院看电影,女朋友问你,咱们现在坐在第几排啊?电影院里面太黑了,看不清,没法数,现在你怎么办? 别忘了你是程序员,这个可难不倒你,递归就开始排上用场了。于是你就问前面一排的人他是第几排,你想只要在他的数字上加一 阅读全文
posted @ 2018-11-29 11:36 快乐~ 阅读(986) 评论(0) 推荐(0) 编辑
摘要: 常用的链表结构 单链表 双向链表 空间换时间 循环链表 链表的删除/插入是O(1)级别的,但是随机访问需要O(n)的复杂度 双向循环链表 技巧 理解指针或引用的含义 将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指针,或者反过来说,指针中存储了这个变量的内存地址,指向了这个变量,通过指针就能 阅读全文
posted @ 2018-11-29 11:30 快乐~ 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 在开发ts时,有时会遇到没有d.ts文件的库,同时在老项目迁移到ts项目时也会遇到一些文件需要自己编写声明文件,但是在需要的声明文件比较多的情况,就需要自动生产声明文件。用过几个库。今天简单记录一下。自己怎么编写有很多教程和文档,那里就不介绍了。 1、为整个包添加声明文件 使用微软的 "dts ge 阅读全文
posted @ 2018-10-12 15:54 快乐~ 阅读(18471) 评论(0) 推荐(0) 编辑
摘要: ts和react的默认属性的四种解决方案 Non null assertion operator(非空断言语句) Component type casting(组件类型重置) High order function for defining defaultProps(高阶组件) Props gett 阅读全文
posted @ 2018-09-26 12:59 快乐~ 阅读(9754) 评论(0) 推荐(1) 编辑
摘要: 基础命令 网络相关的基础命令 替换默认yum源地址 http://mirrors.163.com/.help/centos.html 教程 第一步首: 先备份/etc/yum.repos.d/CentOS Base.repo 第二步: 下载对应版本repo文件, 放入/etc/yum.repos.d 阅读全文
posted @ 2018-08-20 15:15 快乐~ 阅读(181) 评论(0) 推荐(0) 编辑
摘要: mac上安装nginx 安装与启动 安装 命令 Nginx 默认8080端口 简单配置 设置缓存 配置https 学习课程的前提准备 nginx基础 nginx的中间件架构 nginx简述 nginx是一个开源且高性能、可靠的http中间件、代理服务。 常见的http服务 httpd Apache基 阅读全文
posted @ 2018-08-19 11:06 快乐~ 阅读(1497) 评论(0) 推荐(0) 编辑
摘要: Web 安全概念 Web 应用中存在很多安全风险,这些风险会被黑客利用,轻则篡改网页内容,重则窃取网站内部数据,更为严重的则是在网页中植入恶意代码,使得用户受到侵害。常见的安全漏洞如下: XSS 攻击:对 Web 页面注入脚本,使用 JavaScript 窃取用户信息,诱导用户操作。 CSRF 攻击 阅读全文
posted @ 2018-07-27 18:17 快乐~ 阅读(636) 评论(0) 推荐(0) 编辑
摘要: 前端单元测试概述 前端测试工具 测试分为e2e测试和单元测试和集成测试 e2e:端到端的测试,主要是测业务,绝大部分情况是指在浏览器上对某一个网站的某一个功能进行操作。 单元测试工具:mache、ava、jest、jasmine等 断言库: shoud.js.chai.js 等 测试覆盖率工具:is 阅读全文
posted @ 2018-06-22 19:08 快乐~ 阅读(834) 评论(0) 推荐(0) 编辑