摘要:
vue2.x的patch方法和客户端混合 之前确实没自己看过 vue2.x 的 _update 这一块,导致今天被面试官问到了,现在回头补一下这方面的知识。 从初始化 watcher 说起 我们知道,在声明了响应式数据之后,我们再实例化一个 watcher并调用响应式数据,才能把 watcher 添 阅读全文
摘要:
vuex和普通的event-bus有什么不同 我们都知道,vuex 的底层实现原理其实就是 event-bus,那么它和普通的 event-bus 有什么不同呢?我们通过简单的源码一步步实现来搞懂这个问题。 参考资料:手写Vuex核心原理 event-bus 首先一个普通的 event-bus 是这 阅读全文
摘要:
设计模式篇 1.简单工厂模式:简单工厂模式就是将创建过程单独封装起来。在前端常用这种模式来创建多个相同但互不相关的实例或者通过闭包来创立一个与外界隔离的环境,示例如下: // 出处:https://cn.vuejs.org/v2/guide/render-function.html#VNode-%E 阅读全文
摘要:
使用 Chrome 插件拦截广告的原理 项目地址:chrome_plugin_zhihu_adblock 本文阅读起来可能需要先了解一些 Chrome 插件基础知识,通过本文您可以学到什么? chrome 插件拦截广告思考方法和一般原理 浏览器拦截 fetch 和 xhr 请求的方法 思路 网页上的 阅读全文
摘要:
算法篇 基础 数组:数组支持高效的读和写操作,但是在插入和删除操作的时候性能很低 链表:为了解决数组插入和删除低效的问题,出现了链表,但是链表的读操作性能很低 栈:一种先入后出的数据结构,可以用数组或链表实现 队列:一种先入先出的数据结构,可以用数组或链表实现 优先队列:一种正常进,但是按照优先级出 阅读全文
摘要:
概述 最近复习算法,正好想到了之前的一道面试题,由此引发了许多思考。在此记录一下,供以后开发时参考,希望对其他人也有用。 一道面试题 面试题如下: // 要求实现一个 flatten 函数,有如下效果: // [1,2,[3,4,[5,6,7],8],9] => [1,2,3,4,5,6,7,8,9 阅读全文
摘要:
Canvas 篇 1.基本的 canvas 一个基本的 canvas 由 canvas 标签和相应的 js 组成,其中 canvas 标签里面可以加入别的标签,表示如果不支持 canvas 标签的话就显示里面的内容;而 js 部分则通过 getContext 判断支不支持 canvas,从而实现各种 阅读全文
摘要:
概述 近期面试问到了一些原理性的东西,所以打算把这个也做一个整理,记录下来,供以后开发时参考,相信对其他人也有用。 Echarts获取纵坐标刻度间距的博文请见这里 其实刚开始看Echarts的这段代码我也是一脸懵逼的,但是如果仔细看一下还是觉得挺简单的。 原理 首先,对于纵坐标,我们对它有一个期望的 阅读全文
摘要:
概述 说到 computed 和 watch 有什么不同,也许大多数人都知道:computed 是用现有数据生成一个新数据,并且能够被缓存;而 watch 是根据数据变化,执行一些回调函数,它有很多配置比如 deep、immediate 等。 大家也都知道,watch 只是源码里面 watcher 阅读全文