- 博客(24)
- 收藏
- 关注
转载 数组对象去重
1 for循环嵌套的方法// 第一种方法是for循环嵌套分别对比key或者其他标识等2 reduce 方法进行// 利用reduce方法进行数组对象去重let data = [ { id: 1 , name: '哈哈'} , { id: 2 , name: '小李' }, { id: 1 , name: '哈哈' }]let obj = {} data = data.reduce((curr,prev) => { obj[prev.id] ?.
2022-04-26 11:45:15
201
原创 路由前置守卫
const writeList = ['/login','/404'] router.beforeEach(( to , from , next) => { // 获取到token (在vuex里放着) const token = store.state.模块名.xxx if( token ) { if(to.path === '/login') { ...
2021-10-29 17:55:12
263
原创 代理转发配置
//在vue.config.js 文件中配置 module.exports = { devServer : { //proxy 只能在开发阶段解决跨域问题 , 在生产环境依然存在跨域 proxy : { // /api 是自己可以任意配置的,但是建议和接口前缀保持一致 // 当请求地址以/api 开头 , 就会自动触发代理转发机制 '/dev_api' : { .
2021-10-29 17:42:12
115
原创 vue的响应式原理
什么是响应式原理?意思就是在改变数据的时候,视图会跟着更新。这意味着你只需要进行数据的管理,给我们搬砖提供了很大的便利。React也有这种特性,但是React的响应式方式跟VUE完全不同。React是通过this.setState去改变数据,然后根据新的数据重新渲染出虚拟DOM,最后通过对比虚拟DOM找到需要更新的节点进行更新。也就是说React是依靠着虚拟DOM以及DOM的diff算法做到这一点的。而VUE则是利用了Object.defineProperty的方法里面的setter 与ge
2021-09-27 19:24:32
82
原创 防抖和节流
1、防抖(debounce):触发高频事件后 n 秒内函数只会执行一次,如果 n 秒内高频事件再次被触发,则重新计算时间举例:就好像在百度搜索时,每次输入之后都有联想词弹出,这个控制联想词的方法就不可能是输入框内容一改变就触发的,他一定是当你结束输入一段时间之后才会触发。节流(thorttle):高频事件触发,但在 n 秒内只会执行一次,所以节流会稀释函数的执行频率举例:预定一个函数只有在大于等于执行周期时才执行,周期内调用不执行。就好像你在淘宝抢购某一件限量热卖商品时,你不断点刷新点购买,可是总有一段
2021-09-27 19:15:00
67
原创 vue指令
1 插值表达式vue变量, 放到标签里数据展示语法: {{ 表达式 }} 1)比如<template> <div> <!-- 吧变量的值显示在标签里 --> <h1>{{ msg }}</h1> <p>{{ obj.useName }}</p> <p>{{ obj.age }}</p> </div></te...
2021-09-24 16:18:49
131
原创 ES6模块化
1 在 package.json 的根节点中添加 "type": "module"节点注意 :配置之后,则只能使用ES6模块化语法,不能再使用CommonJS语法了export 输出 import 输入一下是示列1 整体导出2 单个导出3 导入使用别名4 默认导出...
2021-09-18 21:19:11
87
转载 Promise
Promise对象用于表示一个异步操作的最终完成 (或失败)及其结果值。一个Promise对象代表一个在这个 promise 被创建出来时不一定已知的值。它让您能够把异步操作最终的成功返回值或者失败原因和相应的处理程序关联起来。 这样使得异步方法可以像同步方法那样返回值:异步方法并不会立即返回最终的值,而是会返回一个promise,以便在未来某个时候把值交给使用者。一个Promise必然处于以下几种状态之一:待定(pending): 初始状态,既没有被兑现,也没有被拒绝。 已兑现(...
2021-09-17 15:29:35
97
原创 ES6和promise和深拷贝浅拷贝
1 ES6 新增了双冒号运算符 , 用来取代以往的bind() , call() , 和apply()foo :: bar 等同于 bar . bind(foo)foo :: bar(...arguments) 等同于 bar .apply (foo , arguments)2 在object原型上新增了getPrototypeOf() 和setPrototypeOf()方法 , 用来获取或设置当前对象的prototype对象 .3 object 原型上还新增了object.ke...
2021-09-15 16:37:22
241
转载 36个JS手写题
数据类型判断typeof 可以正确识别:Undefined、Boolean、Number、String、Symbol、Function 等类型的数据,但是对于其他的都会认为是 object,比如 Null、Date 等,所以通过 typeof 来判断数据类型会不准确。但是可以使用 Object.prototype.toString 实现。function typeOf(obj) {- let res = Object.prototype.toString.call(obj).split('
2021-09-14 21:07:55
1201
原创 String字符串方法(详情请参考MDN)
1 .String.prototype.split()split()方法使用指定的分隔符字符串将一个String对象分割成子字符串数组,以一个指定的分割字串来决定每个拆分的位置。语法 str.split([separator[, limit]])参数separator指定表示每个拆分应发生的点的字符串。separator可以是一个字符串或正则表达式。 如果纯文本分隔符包含多个字符,则必须找到整个字符串来表示分割点。如果在str中省略或不出现分隔符,则返回的数组包含一个由整个字符...
2021-09-14 20:55:56
555
原创 全局安装nodemon包
作用它能帮我们自动检测到我们的代码的修改,并自动重新运行我们的代码步骤 :在任意位置打开终端窗口输入命令npminstall -g nodemon (其中-g表示全局安装 , 不写就不在全局)nodemon server.js它的好处在于会自动监听server.js这个文件的变化,如果变化了,就会重新自动再去运行。# npm 常用命令 查看npm -v 查看 npm 版本where node 查看n...
2021-09-13 20:24:11
291
原创 全局安装i5ting_toc 包
i5ting_toc 是一个可以把 md 文档转为 html 页面的小工具。 主要方法是把自己要转的md文档放到package里面 , 打开终端在改文件下打开终端小窗或者可以写npx i5ting_toc -f 要转的md文件名 is for sale! -o...
2021-09-13 19:57:12
64
原创 Arrayform的方法(部分 , 详情请参考MDN)
1.concat()方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。for example:let arr1 = [1, 2, 3 ]let arr2 = [4, 5, 6 ]let arr3 = arr1.concat(arr2)console.log(arr3) //输出结果是 [1, 2, 3, 4, 5, 6]2.every()方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。for example...
2021-09-13 08:38:26
766
1
原创 vscode的常用快捷键
1 编辑器与窗口新建文件: Ctrl+N文件之间切换: Ctrl+Tab打开一个新的VS Code编辑器: Ctrl+Shift+N关闭当前窗口: Ctrl+W关闭当前的VS Code编辑器: Ctrl+Shift+W切出一个新的编辑器窗口(最多3个): Ctrl+\切换左中右3个编辑器窗口的快捷键: Ctrl+1 Ctrl+2 Ctrl+32 代码编辑代码行向左或向右缩进: Ctrl+[ 、 Ctrl+]复制或剪切当前行/当前...
2021-09-10 21:09:46
253
原创 window常用的终端命令
打开"运行"对话框(Win+R),输入cmd,打开控制台命令窗口cd切换目录1) cd 显示当前目录2)cd .. 进入父目录dir显示目录中的内容1) dir 显示当前目录中的子文件夹与文件2)dir /b 只显示当前目录中的子文件夹与文件的文件名md创建目录1)md softwaregames 在当前目录中创建名为software和games的文件夹rd删除目录1) rd games ...
2021-09-10 20:47:41
957
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人