一个优质的Vue组件库应该遵循什么样的设计原则

一、组件库的价值

  • 就个人而言,拥有一套自己的组件库,可以让你的开发变得更高效,让你在行业里更有价值。
  • 就团队而言,拥有一套团队的组件库,可以让协同开发变得更高效规范,让你的团队在公司更具有影响力。
  • 就公司而言,拥有一套公司维护的开源组件库,可以让你的公司在行业里更具有影响力。
  • [……]

Vue项目SEO优化的另一种姿态

背景:当前项目首页和登陆后的平台在一个项目里,路由采用hash模式,现在要做SEO优化,这时候同构SSR(Server Side Rendering)服务端渲染代价显然太大,影响范围比较广,同样更改当前项目路由为history模式采用预渲染(Prerending)代价也不小。最终决定将首页单独出一个[……]

批量修改历史commit的用户名user.name邮箱user.email

配置当前的用户名邮箱可以当前项目配置或者全局配置。

仅当前项目配置:

全局配置:

新建shell脚本 change-email-nam[……]

简述this,call,apply,bind之间的关系

一、什么是this?

this是JavaScript语言的一个关键字,它是函数运行时在函数体内部自动生成的一个对象,只能在函数体内部使用。函数的不同使用场合,this的指向不同。

在ES5中,this永远指向最终调用它的对象。

例1:这里最终调用函数a的对象是全局window,相当[……]

前端下载远程文件

前端网页下载远程文件可以分为以下两种形式:

  • 打开新窗口下载
  • 在当前窗口直接下载

打开新窗口下载的方法:
window.open方法(打开一个弹窗):

创建一个隐藏form表单提交方法(打开新的标签页):[……]

Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause().

解决方法:

原因:

从Chrome50开始,对<video>或<audio>元素的play()调用返回一个Promise。 一个异步返回单个结果的函数。如果回放成功,Promise就会实现,而play[……]

前端内存泄漏检查判断及处理

什么是内存泄露?

已经不再使用的内存未能被程序释放,叫内存泄露(memory leak)。

内存泄露会带来什么样的后果?

内存泄露会因为减少可用内存数量从而降低计算机性能,严重的可能导致设备停止正常工作,或者应用程序崩溃。

什么情况下出现内存泄漏?

首先了解一下垃圾回收[……]