js常用API整理
js常用API整理Arraynew Set()数组去重
12345const arr = [3,4,4,5,4,6,5,7];console.log(new Set(arr)); // {3,4,5,6,7}const a = Array.from(new Set(arr)) // [3, 4, 5, 6, 7]//或者const a = [...new Set(arr)]//推荐
sort() 对数组元素进行排序(改变原数组)。
1234const arr = [1,2,3,4,5,6];console.log(arr.sort((a,b)=>a-b)) // [1,2,3,4,5,6] 大小正序cosole.log(arr.sort((a,b)=>b-a))// [6,5,4,3,2,1] 大小倒序//不可以进行运算的则比较编码大小 'b' > 'a' => true
reverse() 反转数组中的元素(改变原数组)。
12const arr = [3,4,4,5,4,6,5,7];co ...
vue3.x中的生命周期
vue3和vue2生命周期的对比Vue3 的生命周期比较多。
setup() :开始创建组件之前,在beforeCreate和created之前执行。创建的是data和method
onBeforeMount() : 组件挂载到节点上之前执行的函数。
onMounted() : 组件挂载完成后执行的函数。
onBeforeUpdate(): 组件更新之前执行的函数。
onUpdated(): 组件更新完成之后执行的函数。
onBeforeUnmount(): 组件卸载之前执行的函数。
onUnmounted(): 组件卸载完成后执行的函数。
onActivated(): 被包含在中的组件,会多出两个生命周期钩子函数。被激活时执行。
onDeactivated(): 比如从 A 组件,切换到 B 组件,A 组件消失时执行。
onErrorCaptured(): 当捕获一个来自子孙组件的异常时激活钩子函数(以后用到再讲,不好展现)。
注:使用<keep-alive> 组件会将数据保留在内存中,比如我们不想每次看到一个页面都重新加载数据,就可以使用组件解决。 vue3使 ...
如何根据key合并数组中的对象
如何根据key合并数组中的对象(已同步到npm lm-public-js 中)
项目中经常会遇到,array内包含object这个格式的json 需要我们根据一个key去合并其中的对象,一般是 id效率最低的方法是 循环套循环,找到一致id的,然后添加到其中一个array内比较好的方法 是把这个id对应的object 暂存一个obj内,比如 obj[item.id] = {…item,…item2}最后根据 Object.values() 方法 重新转化为数组
123456789101112131415161718192021222324252627282930313233343536373839404142function mergeArrAndObj(data1 = [],data2 = [],key){ if(!(data1 instanceof Array || data1 instanceof Object)) return console.warn('第一个参数格式不对') if(!(data2 instanceof ...
使用require.context实现前端工程自动化
使用require.context实现前端工程自动化require.context是什么一个webpack的api,通过执行require.context函数获取一个特定的上下文,主要用来实现自动化导入模块,在前端工程中,如果遇到从一个文件夹引入很多模块的情况,可以使用这个api,它会遍历文件夹中的指定文件,然后自动导入,使得不需要每次显式的调用import导入模块
什么时候需要用到require.context在Vue写的项目中,我把路由通过不同的功能划分成不同的模块,在index.js中一个个导入,随着项目越来越大,结构越来越复杂,每次都得手动import就很是令人烦躁这个时候我们可以使用require.context函数遍历modules文件夹的所有文件一次性导入到index.js中
require.context参数说明require.context函数接受三个参数
directory {String} -读取文件的路径
useSubdirectories {Boolean} -是否遍历文件的子目录
regExp {RegExp} -匹配文件的正则
1234567891 ...
js常用方法封装
NPM地址 使用方法相同url参数提取12345678910111213141516171819202122232425//提取url中的参数function query(url) { if(!(url instanceof String )) return {} url = url.split('?')[1] //提取url问号?之后的字符串 if(!url){ return {} } url = url.split('&') //分离&之间的字符串参数 if(!url){ return {} } let params = {} url.filter(item => { item = item.toString().split('=') let key = item[0] let value = item[1] params[key]= value ...