来回自如的切换淘宝镜像与国外源

打开 cmd,查看当前镜像地址:

1
npm get registry

切换为淘宝镜像:

1
npm config set registry http://registry.npm.taobao.org/
阅读全文 »

最近我们在代码托管平台上使用 SSH 的方式下拉代码,通常是用一个 ssh key 来拉取所有托管平台的代码,如码云,GitHub、GitLab 等,但是总用一个不是太好。会有安全风险,这就需要为每个托管平台设置单独的 SSH-key

下面我们下简单介绍一下如何创建多个 SSH Key 并且使用下拉代码。

第一步、生成 SSH-Key

Windows 建议使用 Git bash 操作

Linux、mac 用户使用默认终端即可

阅读全文 »

Vue2.0 响应式的理解

核心

  • 对象:通过 defineProperty 对对象的已有属性值的读取和修改进行劫持(监视/拦截)
  • 数组:通过重写数组更新数组一系列更新元素的方法来实现元素修改的劫持

注意:对象的多次递归,针对数组需要重写数组方法

函数劫持:把函数内部进行重写同时继续调用老的方法,在继承原数组方法时使用到

阅读全文 »

Compiler 原理篇

  • 静态 Node 不再作更新处理( hoiststatic->SSR 优化)

  • 静态绑定的 class,id 不再作更新处理

  • 结合打包标记 Patchflag,进行更新分析(动态绑定)

  • 事件监听器 Cache 缓存处理(cacheHandlers)

  • hoiststatic 自动针对多静态节点进行优化,输出字符串

vue2 中代码复用方法,如: Mixin, Filters 都有缺陷

  • Mixin(命名空间冲突、逻辑不清晰、不易复用)
  • scoped slot 作用域插槽(配置项多、代码分裂、性能差)
  • vue2 对 TS 支持不充分

首先,先来看一些小的变化

阅读全文 »

在本地没有生成 ssh 密钥

指路git配置SSH

问题大多是因为 git 进行 push 或者 hexo d 的时候改变了一些.deploy_git 文件下的内容

  • 删除.deploy_git 文件夹;
  • 输入 git config --global core.autocrlf false
  • 然后,依次执行:
    1
    2
    3
    hexo clean
    hexo g
    hexo d

error: key does not contain a section: --global

阅读全文 »

1
2
3
4
5
6
7
8
9
10
11
12
browser: {
chrome: /chrome\/(\d+\.\d+)/i.test(navigator.userAgent) ? +RegExp["\x241"] : undefined,
firefox: /firefox\/(\d+\.\d+)/i.test(navigator.userAgent) ? +RegExp["\x241"] : undefined,
ie: /msie (\d+\.\d+)|Trident/i.test(navigator.userAgent) ? (document.documentMode || +RegExp["\x241"]) : undefined,
isGecko: /gecko/i.test(navigator.userAgent) && !/like gecko/i.test(navigator.userAgent),
isWebkit: /webkit/i.test(navigator.userAgent),
opera: /opera(\/| )(\d+(\.\d+)?)(.+?(version\/(\d+(\.\d+)?)))?/i.test(navigator.userAgent) ? +(RegExp["\x246"] || RegExp["\x242"]) : undefined,
safari: /(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i.test(navigator.userAgent) && !/chrome/i.test(navigator.userAgent) ? +(RegExp["\x241"] || RegExp["\x242"]) : undefined,
isSogouIE: ((navigator.userAgent.toLowerCase()).indexOf("msie") > 0) && ((navigator.userAgent.toLowerCase()).indexOf("se") > 0) && ((navigator.userAgent.toLowerCase()).indexOf("360se") == -1),
isBaidu: /BIDUBrowser/i.test(navigator.userAgent),
edge: /edge\/(\d+)/i.test(navigator.userAgent) ? +RegExp["\x241"] : undefined
}

问题

当从远程 url 拉取项目时,报出如下错误信息:

git -c diff.mnemonicprefix=false -c core.quotepath=false fetch origin
fatal: unable to access 'https://github.com/552277/MyCalendar.git/': error setting certificate verify locations:
  CAfile: D:/******/Git/mingw64/ssl/certs/ca-bundle.crt
  CApath: none
完成时带有错误,见上文。

意思是证书位置出现错误

原因

阅读全文 »

umi 常用配置

umi 的配置主要是在.umirc.ts 文件里面进行配置

几个常用的配置:

hash

  • Type: boolean
  • Default: false
阅读全文 »

HTML 元素包括标签名和若干个键值对,这个键值对就称为“属性”(attribute)。

1
<a id="test" href="http://www.example.com">链接</a>

上面代码中,a元素包括两个属性:id属性和href属性。

属性本身是一个对象(Attr对象),但是实际上,这个对象极少使用。一般都是通过元素节点对象(HTMlElement对象)来操作属性。本章介绍如何操作这些属性。

Element.attributes 属性

阅读全文 »

CSS 与 JavaScript 是两个有着明确分工的领域,前者负责页面的视觉效果,后者负责与用户的行为互动。但是,它们毕竟同属网页开发的前端,因此不可避免有着交叉和互相配合。本节介绍如何通过 JavaScript 操作 CSS。

HTML 元素的 style 属性

操作 CSS 样式最简单的方法,就是使用网页元素节点的getAttribute方法、setAttribute方法和removeAttribute方法,直接读写或删除网页元素的style属性。

1
div.setAttribute("style", "background-color:red;" + "border:1px solid black;");

上面的代码相当于下面的 HTML 代码。

阅读全文 »