const t=setTimeout(()=>{})
for(let i=t; i>0;i-=0) {
clearTimeout(i)
}
月份:2021年12月
分类
算法基础知识
这里会收集一些提高算法性能的小技巧
内容互换的时间复杂度与空间复杂度最低算法
两个下标互换

时间复杂度n(1),空间复杂度n(1),无需算法
swap(a,b)
求逆

reverse()
部分求逆

reverse(1,4)
同数量相邻块互换

swap(1,3),swap(2,4)
同数量不相邻块互换

swap(0,3),swap(1,4)
不同数量相邻块互换

reverse(0,5)-> reserve(0,3),reserve(3,5)
不同数量非相邻块互换

reverse() -> reverse(0,3) ,reverse(4,6)
分类
Homebrew下载脚本
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
先写一个正常的vue组件
写一个创建组件的方法
import Vue from 'vue'
/**
* 创建一个根组件
* @param Component 组件
* @param props 组件属性
*/
const createComponent = (Component, props) => {
// vue.extend()获取创建实例
const Ctor = Vue.extend(Component)
// 创建组件实例,这时得到的是虚拟dom,如何转化为真实dom
const comp = new Ctor({
// propsData: props
})
// 前面说到$mount就是这个作用
comp.$mount()
// 挂在在body上,这时是comp的dom
document.body.appendChild(comp.$el)
comp.remove = () => {
// 移除本身
document.body.removeChild(comp.$el)
// 释放自己所占资源
comp.$destroy()
}
return comp
}
export default createComponent
定义打开弹窗方法
import CandyBox from './CandyBox'
import createComponent from './createComponent'
const Modal = {}
// 弹窗组件实例
const modalInstance = {}
const openModal = (name, Component, options) => {
if (!modalInstance[name]) {
modalInstance[name] = createComponent(Component)
}
// 在渲染完成打开,否则首次动画播放有问题
setTimeout(() => {
modalInstance[name].open(options)
})
}
Modal.candyBox = (options = {}) => {
openModal('candyBox', CandyBox, options)
}
export default Modal
如果需要预加载定义预加载方法
// 弹窗预加载 (可在项目入口调用该函数,实现弹窗预加载)
Modal.prefetch = () => {
modalInstance.candyBox = createComponent(CandyBox)
}
/**
在项目入口执行预加载
import Vue from 'vue'
import App from './App'
import router from './router'
import store from './store'
import Modal from './components/Modal'
new Vue({
el: '#app',
store,
router,
render: h => h(App)
})
Modal.prefetch()