5.4k 5 分钟

navigator 对象包含有关浏览器的所有信息,且支持所有浏览器。

navigator 对象有一个属性为 userAgent,这是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。所以我们可以通过判断 navigator.userAgent 里面是否包含某些值来判断。

482 1 分钟

# vue

created() {
	document.addEventListener('click', this.clickOutsideEvent)
},
destroyed() {
	document.removeEventListener('click', this.clickOutsideEvent)
},
methods: {
	clickOutsideEvent(e) {
		// console.log(this.$el.contains(e.target))
		if (!this.$el.contains(e.target)){
			this.handleOperater = false
		}
	}
}

1.4k 1 分钟

​ 在使用 Element UI 的 el-upload 组件时,如果你希望去掉文件列表的显示(即不显示已上传或待上传的文件列表),你可以通过几种方式来实现这个需求。然而,el-upload 组件本身并没有直接提供一个属性来简单地隐藏文件列表。不过,你可以通过一些技巧来达到这个目的。

2.5k 2 分钟

# 设置 git alias

使用 git alias 可以极大地提高效率,我常用的有

git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.unstage 'reset HEAD --'
git config --global alias.last 'log -1 HEAD'
git config --global alias.logl 'log --oneline'

14k 13 分钟

# 前言

见解有限,如有描述不当之处,请帮忙及时指出,如有错误,会及时修正。

最近发现有不少介绍 JS 单线程运行机制的文章,但是发现很多都仅仅是介绍某一部分的知识,而且各个地方的说法还不统一,容易造成困惑。 因此准备梳理这块知识点,结合已有的认知,基于网上的大量参考资料, 从浏览器多进程到 JS 单线程,将 JS 引擎的运行机制系统的梳理一遍。

展现形式:由于是属于系统梳理型,就没有由浅入深了,而是从头到尾的梳理知识体系, 重点是将关键节点的知识点串联起来,而不是仅仅剖析某一部分知识。

内容是:从浏览器进程,再到浏览器内核运行,再到 JS 引擎单线程,再到 JS 事件循环机制,从头到尾系统的梳理一遍,摆脱碎片化,形成一个知识体系

目标是:看完这篇文章后,对浏览器多进程,JS 单线程,JS 事件循环机制这些都能有一定理解, 有一个知识体系骨架,而不是似懂非懂的感觉。

另外,本文适合有一定经验的前端人员,新手请规避,避免受到过多的概念冲击。可以先存起来,有了一定理解后再看,也可以分成多批次观看,避免过度疲劳。

1.5k 1 分钟

我们可以通过 getCurrentInstance 这个函数来返回当前组件的实例对象,也就是当前 vue 这个实例对象,下面这篇文章主要给大家介绍了关于 Vue3 组合式 API 之 getCurrentInstance 的相关资料,需要的朋友可以参考下

3.9k 4 分钟

  • $attrs 属性解释:包含了父作用域中不作为组件 props 或自定义事件的 attribute 绑定和事件。当一个组件没有声明任何 prop 时,这里会包含所有父作用域的绑定,并且可以通过 v-bind="$attrs" 传入内部组件 —— 这在创建高阶的组件时会非常有用。
  • inheritAttrs 属性解释:如果你不希望组件的根元素继承特性,你可以在组件的选项中设置 inheritAttrs: false

可能不是很好理解,我们可以举个例子来验证一下。