2020春季1-3年前端面经

2020-07-09
阅读 5 分钟
1.2k
z-index只作用于被定位了的元素上,还有就是子元素的z-index会被父的值覆盖(准确的说应该是使用z-index后,父元素和子元素处在不同的层叠上下文中,他们的z-index应该分别与他们的兄弟元素比较。)。

几种常见的基础前端优化方式

2019-12-19
阅读 9 分钟
3.1k
这篇文章算是最近学习前端优化时的一点心得,为了对比强烈降低了CPU性能,文中代码在github上也有一部分。本文性能截图来自chrome自带的performance,不了解的可以看看跟他差不多的前世chrome timeline(介绍传送门)。

浅析Vue中keep-alive实现原理以及LRU缓存算法

2019-09-27
阅读 4 分钟
5.9k
本文涉及源码版本为 2.6.9 keep-alive {代码...} 组件的定义很平常,不过其中abstract属性在官方文档中并未提及,后面的渲染过程中会用到。 created中初始化存储缓存的cache对象,和缓存的VNode的键的数组。 mounted中监听黑白名单变动对缓存进行更新,其中pruneCache定义如下 {代码...} 就比如include是['a', 'b'],而且这...

从源码切入Vue双向绑定原理,并实现一个demo

2019-09-01
阅读 8 分钟
990
down一份Vue源码,从package.json入手,找我们需要的代码1、package.json中的scripts,"build": "node scripts/build.js"2、scripts/build.js line26 build(builds),其中builds的定义为11行的let builds = require('./config').getAllBuilds(),这个大概就是打包的代码内容,另一个build是在下面定义的函数,他的代码是...

详细分析Vue.nextTick()实现

2019-04-01
阅读 4 分钟
3.5k
Firstly, this paper is based on Vue 2.6.8刚开始接触Vue的时候,哇nextTick好强,咋就在这里面写就是dom更新之后,当时连什么macrotask、microtask都不知道(如果你也不是很清楚,推荐点这里去看一下,也有助于你更好地理解本文),再后来,写的多了看得多了愈发膨胀了,就想看看这个nextTick到底是咋实现的

Vue兄弟组件通信的三种方式

2019-03-15
阅读 1 分钟
32.4k
前两种方式官方文档十分详尽不再赘述,只在这里简述一下第三种方式的思路。 因为$on和$emit的事件必须是在一个公共的实例上才能触发。那么我们可以新建一个Vue实例当作事件总线,达到可以不管组件之间的父子关系,都能通过这个实例通信的目的