一、单例模式 1. 定义 保证一个类仅有一个实例,并提供一个访问它的全局访问点 2. 核心 确保只有一个实例,并提供全局访问 3. 实现 假设要设置一个管理员,多次调用也仅设置一次,我们可以使用闭包缓存一个内部变量来实现这个单例 // 提取出通用的单例 ...
Html 资源预加载/预连接内容
Html 可以将即将要用到的资源或者即将要握手的地址提前告知浏览器让浏览器利用还在解析HTML计算样式的时间去提前准备好。 preload 使用link的 preload 属性预加载一个资源。 <link rel="preload" href="style.css" as="style"> as 属性可以指定预加载的类型,...
JS中的节流与防抖运用
节流函数和防抖函数在日常的开发中还是有很多地方用到,两个函数的目的都是为了控制函数被调用的频率 正常调用 function inputChange(val) { console.log('change:', val); } let inputEl = document.getElementById('input'); inputEl.addEventListener('keyu...
自定义Eventbus 发布订阅模式
const EventList = {}; const on = function(eventName, callback) { if (!EventList[eventName]) { EventList[eventName] = []; } EventList[eventName].push(callback); } const emit = function(eventName, params) { if (!Even...
js tree 获取树节点深度
function getTreeDeep(data) { let arr = []; arr.push(data); let depth = 0; while (arr.length > 0) { let temp = []; for (let i = 0; i < arr.length; i++) { temp.push(arr[i]); }...
js 面向对象编程之多继承
单继承 var extend = function(target, source) { // 遍历源对象中的属性 for (var property in source) { // 将源对象中的属性复制到目标对象中 target[property] = source[property]; } // 返回目录对象 return target...
js 面向对象编程之继承
私有属性与私有方法,特权方法,对象公有属性和对象共有方法,构造器,类静态公有属性,类静态公有方法 var Book = function(id, name, price) { // 私有属性 var num = 1; // 私有方法 function checkId() { console.log('checkId'); ...
vue-cli 之优化热刷新
babel-plugin-dynamic-import-node .babelrc { "plugins": ["dynamic-import-node"] } babel.config.js module.exports = { presets: [ '@vue/cli-plugin-babel/preset' ], env: { development: { plugins: [ ...
eslint如何配置 commit 提交时验证
package.json 或者 eslintrc文件都可以 "gitHooks": { "pre-commit": "lint-staged" }, "lint-staged": { "*.{js,jsx,vue}": [ "vue-cli-service lint", "git ad...
vue面试题 vue-cli4 脚手架相关配置详解
Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供: 通过 @vue/cli 实现的交互式的项目脚手架。通过 @vue/cli + @vue/cli-service-global 实现的零配置原型开发。一个运行时依赖 (@vue/cli-service),该依赖:可升级;基于 webpack ...