手写事件监听模块
事件发布/订阅是常用的一种模式,可以通过监听触发事件降低代码的复杂度。有很多开源的npm库可以使用,也可以尝试手写一个。 常用方法 + on(eventName, listener): 注册事件 + off(eventName, listener): 删除事件 + dispatch(eventName, ...params): 触发事件 原理 原理主要是将事件回调添加(on)
事件发布/订阅是常用的一种模式,可以通过监听触发事件降低代码的复杂度。有很多开源的npm库可以使用,也可以尝试手写一个。 常用方法 + on(eventName, listener): 注册事件 + off(eventName, listener): 删除事件 + dispatch(eventName, ...params): 触发事件 原理 原理主要是将事件回调添加(on)
通过border来实现。 1. <code>border: 40px solid transparent</code>设置border的宽度和样式。 2. <code>border-top-width</code>设置顶部的border宽度为0。 3. <code>border-bottom-color: ff0000</code>设置底部border的颜色为红色 css width: 0
很多页面滚动之后刷新页面会发现页面自动定位到了滚到的位置,但是有些交互需要刷新之后滚动到顶部,可以使用提供的*History.scrollRestoration *实现这个功能. + <code>auto</code>: 将恢复用户已滚动到的页面上的位置。 + <code>manual</code>: 不还原页面上的位置,需要手动滚动。 js if (history.scrollRest
git commit报错: js npm ERR! could not determine executable to run npm ERR! A complete log of this run can be found in: 可以删除.git目录下的hooks目录 js m -rf .git/hooks npm install
安装brew时 shell /bin/bash -c "$(curl -fsSL https:raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 如果报错 shell HEAD is now at 8175e404e Merge pull request 7942 from sjackman/bottl
依赖注入在程序编写中常用于解决耦合问题,减少代码的复杂性,。 在电商网站上买东西,下完单后就需要支付,可以选择微信、支付宝、信用卡等方式。最开始只有微信支付。 js class Order { 微信支付 wechatPay() { new WeChatPay().pay(); } } 一段时间之后需要接入支付宝、信用卡。每新增一种支
在写npm包的时候需要在脚本的第一行写上 !/usr/bin/env node ,用于指明该脚本文件要使用node来执行。 /usr/bin/env 用来告诉用户到哪个目录下去寻找node,!/usr/bin/env node 可以让系统动态的去查找node,以解决不同机器不同用户设置不一致问题。 PS: 该命令必须放在第一行, 否者不会生效
替换下载链接的域名为 vscode.cdn.azure.cn
本文主要介绍自己在使用v2ray进行反向代理过程中。安装请参考官网[安装](https:www.v2ray.com/chapter_00/install.html),主要实现通过中间服务器访问家里电脑上运行的服务。 原理 - 假设在主机 A 中有一个网页服务器,这台主机没有公网 IP,无法在公网上直接访问。另有一台主机 B,它可以由公网访问。现在我们需要把 B 作为入口,把流
介绍 Mobx-state-tree(简称MST)是基于mobx的响应式状态管理工具,核心思想就是一个动态树,每个树由一个结构和一个状态组成,支持状态的序列化、反序列化、时间旅行等功能。 使用 js npm install mobx mobx-state-tree --save 或 js yarn add mobx mobx-state-tree