自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lotte

学习使我快乐

转载 手把手带你简单回答真实前端面试题

前言这些内容都是真实遇到的面试的时候千万别简单回答,给我往死里吹,往复杂的去吹,这样你就成功了三分之一CSS说一下rem和em的区别rem是根据文档根节点html的字体大小设置 em是根据父节点的字体大小设置的吹rem的时候可以往自适应方向吹,比如通过rem配合fixable实现了多端设备自适应。如果有更好的建议,评论吧有哪些选择器?类选择器 id选择器 标签选择器 后代选择器 子选择器水平垂直居中有几种方式,分别是什么?绝对定位+margin 绝对定位+

2020-07-13 10:27:19 60

转载 面试如何写出一个满意的深拷贝

前言已经有很多关于深拷贝与浅拷贝的文章,为什么自己还要写一遍呢????❝学习就好比是座大山,人们沿着不同的路登山,分享着自己看到的风景。你不一定能看到别人看到的风景,体会到别人的心情。只有自己去登山,才能看到不一样的风景,体会才更加深刻。❞分享一个不错的思维导图????深拷贝通过文本的总结,希望可以明白: 什么是深拷贝/浅拷贝,他们与赋值有什么区别 深拷贝/浅拷贝实现方式有哪些 本章节直接从拷贝开始说起,对于基本数据类型,引用数据类型之前的区别,可以看看上面的

2020-07-13 10:21:55 24

转载 js 深拷贝浅拷贝,以及堆栈存关系

先引用一篇文章JavaScript中的堆栈,作者写得很好。如果看完上面推荐的文章还没有理解堆栈存与深拷贝浅拷贝的关系,请看?。引用类型(对象“Object”,数组“Array”,函数“Function”)引用类型不会在栈内存中保存值,只会在栈内存保存一个指向堆内存的地址。当引用栈内容的地址的时候,会通过地址查询堆内存的值。因此就有了浅拷贝深拷贝的区别。浅拷贝 -> 只是拷贝了栈内存的地址。深拷贝 -> 生成一个新的堆栈存,拷贝的同时生成一个新的堆内存。很多人只知道 深拷贝

2020-07-10 14:19:14 44

原创 iview组件tree实现点击节点勾选复选框

组件格式<Tree :data="specialList" ref="tree" show-checkbox @on-select-change='selectChange'></Tree>获取节点信息包含父节点半选/全选状态this.$refs.tree.getCheckedAndIndeterminateNodes()勾选节点出发函数selectChangeselectChange(v){ let val=v[0]

2020-07-08 15:39:43 182

转载 vue权限控制路由(vue-router 动态添加路由)

用户登录后返回权限菜单,前端根据权限菜单动态添加路由,然后再动态生成菜单栏。思路如下:一、定义初始化默认路由。二、动态配置路由,这里是把所有组件中相应的路由配置成一个个的对象,根据后台返回的菜单tree一个个去匹配。三、通过匹配,把匹配好的路由数据addRoutes到路由中。四、为了防止刷新页面后路由数据被清空,这里用判断是否登录的方式,再次加载动态路由。具体代码如下:router.jsimport Vue from 'vue'import...

2020-07-02 10:23:57 76

原创 vue路由结构可设一层方便动态添加路由

动态添加路由基本功能let routes=[{ path: '/login', name: 'login', component: () => import('../components/Login.vue') }]this.$router.addRoutes(routes)涉及多层路由嵌套 如图单纯使用addRoutes 层级结构不同修改路由结构例:{ name:'account', path: '/account/accou

2020-07-01 17:04:08 83

原创 vue.js 输入框输入值自动过滤特殊字符替换中问标点

<Input v-model="relatedWords" type="textarea" placeholder="请输入" @input='verifyInput(formItem.relatedWords)'/>verifyInput(v){ let _this=this; let punctuation = /[`~!@#$%^&*_\-=<>?:"{}|.\/;'\\[\]·~!@#¥%……&——\-={}|《》?:“”【】、;‘’。、].

2020-06-22 14:53:40 284

原创 git新建分支 拉去代码 提交分支

git如何新建分支如果已有项目新建分支1) 切换到基础分支,如主干git checkout master2)创建并切换到新分支git checkout -b devgit branch查看所有分支 当前分支标记*号3)更新分支代码并提交git add * (或者 git add .) //添加文件git commit -m "init dev" //提交备注git push origin dev //推送到git4)在git代码管理界面经可以看到panda...

2020-06-04 16:52:27 104

原创 postMessage的使用

window.postMessage()方法可以安全地实现跨源通信。通常,对于两个不同页面的脚本,只有当执行它们的页面位于具有相同的协议(通常为https),端口号(443为https的默认值),以及主机 (两个页面的模数Document.domain设置为相同的值) 时,这两个脚本才能相互通信。window.postMessage()方法提供了一种受控机制来规避此限制,只要正确的使用,这种方法就很安全。从广义上讲,一个窗口可以获得对另一个窗口的引用(比如targetWindow = wind...

2020-05-26 13:50:23 79

转载 Vue 3.0 语法快速入门

作为前端开发者,这几天想必大家都看到了Vue3.0的beta版新闻了,是的,尤大大在4.17号微博晒出了Vue3.0的beta链接,不少FEer开始兴奋,不过也有不少其它声音:『我学不动了』、『这不就是React』、『啥时候出正式版』;Vue3.0-beta链接:https://github.com/vuejs/vue-next#status-beta那么首先,我们先简单看一下Vue发布版本的过程:Alpha - Beta - RC - 正式所以,从截图来看,还会经历RC阶段才会有正式版本...

2020-05-15 15:04:32 92

原创 遍历三级不规则对象

类似这样的对象 var obj = { '中国':{ '北京':{ '朝阳':['天安门','人民大会堂'], '昌平':['八达岭长城','沙河'] }, '上海':{ '浦东':['东方明珠','世纪公园'], '黄浦区':['外滩'...

2020-05-07 14:48:36 263

原创 npm run build: WARNING in asset size limit: The following asset(s) exceed the recommended size limit

webpack升级webpack4后打包出现文件大小警告提示npm run build: WARNING in asset size limit: The following asset(s) exceed the recommended size limit网上查找方法多数为修改webpack.config.js实际项目中无此文件,是多个文件组合起来的 只需要修改web...

2020-05-06 17:03:55 184

原创 js基础面试题 看似简单也易出错

1.alert(a)a()var a=3function a(){alert(10)}alert(a)a=6a()===》function a(){alert(10)} //变量提升a方法10 第二步执行a 输出103 a重新赋值 3a is not a function 赋值a=6 不是一个function2.var lili={age:18}; ...

2020-04-30 15:11:35 92

原创 路由配置及动态路由---vue-router

import routeMap from './router/component.js';const NotFound = () => import('./page/404.vue');const formatRoutes = function (routes, routeData) { if (!routeData) { routeData = { name:...

2020-04-21 16:19:35 101

原创 对象数组深度拷贝deepCopy

function deepCopy (obj, cache) { if (cache === void 0) cache = [] if (obj === null || typeof obj !== 'object') return obj var hit = find(cache, function (c) { debugger return ...

2020-04-21 14:42:55 80

原创 npm常用命令收集

npm的使用非常easy,记住下面命令就可以非常好地使用它。●npm init执行构建新项目的向导:●npm install module. name在项目中安装一个模块●npm install g module. .name全局方式安装一个模块●npm install module. name -save在项目中安装-个模块。并把此模块加入到项目配置文件package.json中...

2020-04-21 10:17:46 50

转载 Vuelidate 表单校验插件

VuelidateVuelidate是一款简单轻量级的基于模块的Vue.js验证插件。安装安装很简单,用npm来安装只需要一句话:npm install vuelidate --savenpm i -S vuelidate //简写使用在main.js中导入库并用作Vue插件,以便在包含验证配置的所有组件上全局启用该功能:...

2020-04-20 13:24:31 83

原创 获取浏览器视口的大小

/*视口的大小,部分移动设备浏览器对innerWidth的兼容性不好,需要 *document.documentElement.clientWidth或者document.body.clientWidth *来兼容(混杂模式下对document.documentElement.clientWidth不支持)。 *使用方法 : getViewPort().width; */functio...

2020-04-17 15:05:39 91

原创 webpack3升级webpack4需要做什么

build 文件夹utils.js中constExtractTextPlugin=require('extract-text-webpack-plugin')修改前constMiniCssExtractPlugin=require('mini-css-extract-plugin') 修改后functiongenerateLoaders(){} 中//修改...

2020-04-15 13:16:07 218

转载 npm常用命令及版本号

npm 包管理器的常用命令测试环境为node>=8.1.3&&npm>=5.0.31, 首先是安装命令 //全局安装 npm install 模块名 -g //本地安装 npm install 模块名 //一次性安装多个 npm install 模块1 模块2 模块3 //安装开发时依赖包 npm install 模块名 --save-...

2020-04-15 11:19:57 43

转载 Nginx配置之负载均衡、限流、缓存、黑名单和灰度发布

Nginx配置之负载均衡、限流、缓存、黑名单和灰度发布一、Nginx安装(基于CentOS 6.5)1.yum命令安装yum install nginx –y(若不能安装,执行命令yum install epel-release)2. 启动、停止和重启service nginx startservice nginx stopservice nginx restart浏览器...

2020-04-14 17:05:05 31

转载 base64文件转MultipartFile文件 上传图片转base64

在一些项目中,上传图片或者文件过大,这个时候我们就要选择压缩文件,压缩到我们指定的范围内在上传到服务器,当然压缩也是可以放到服务器进行操作的,但是考虑到前端传输时间问题,所以我们一般都是放到前端压缩后在上传。下面举个实例:曾经遇见这么一个需求,前端页面需要调用相机拍照,把拍照的图片上传到服务,但是在这个过程中遇见的问题是,ios手机拍照的图片是比较大一般单张图片大小在10M左右,而Andr...

2020-04-14 16:50:50 157

转载 Nginx配置文件(nginx.conf)配置详解

Nginx的配置文件nginx.conf配置详解如下:usernginxnginx;Nginx用户及组:用户组。window下不指定worker_processes8;工作进程:数目。根据硬件调整,通常等于CPU数量或者2倍于CPU。error_loglogs/error.log;error_loglogs/error.logno...

2020-04-14 16:36:35 114

原创 js二维数组列排相加 reduce函数

先介绍数组包对象格式 对应key相加var obj = [ { a: 1, b: 2, c: 3 }, { a: 4, b: 5, c: 6 }, { a: 7, b: 8, c: 9 }, { a: 2, b: 3, c: 10 } ]; let result = obj.reduce(function(total,value,index,arr){...

2020-04-10 13:12:43 148

转载 常用排序算法之JavaScript实现

1、插入排序1)算法简介插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。2)算法描述和实现...

2020-04-08 09:09:08 28

原创 Gitlab报错SSL证书已过期

提交代码提示 这个粗略翻译一下 SSL证书过期导致的 度娘了半天 没看懂解决方法:输入以下命令,去掉git的SSL验证git config --global http.sslVerify false完工...

2020-04-03 13:57:24 160

转载 从零搭建webpack4 + vue + vue-rout + vuex项目架构

配置前说明:确保已安装node环境。检查是否安装node环境: 1、终端输入node -v或node --version 2、终端输入npm -v或npm --version一、配置前命令简写说明:1、npm i 和npm install区别:a)npm i是npm install缩写。b)用npm i安装的模块无法用npm uninstall删除,用...

2020-03-18 10:44:49 99

原创 vue项目打包后样式-webkit-box-orient: vertical

vue项目打包后样式-webkit-box-orient: vertical居然神奇的消失了,相关插件 optimize-css-assets-webpack-plugin,解决办法:https://github.com/postcss/autoprefixer/issues/7761.css/* autoprefixer:ignorenext*/-webkit-box-or...

2020-03-17 14:26:31 31

转载 vue全家桶+Echarts+百度地图,搭建数据可视化系统

本文章篇幅略长,内容有点多,大佬可根据目录选择性查阅,新人可一步步来阅读。1、 前言1.1 业务场景突然接到产品说要做一个数据监控的系统。有线图、柱状图、地图,类似于数据可视化的方式。本人之前从未接触过Echarts,然后需要2周拿出成果,有点慌????????1.2 业务分析拿到需求看了一下。支持用户名、密码登录,默认显示一个维度数据,然后点击可钻取进入第二维度数据,再点击进入第...

2020-03-05 13:11:16 58

转载 Vue+Element前端导入导出Excel

1、 前言1.1 业务场景由前台导入Excel表格,获取批量数据。根据一个数组导出Excel表格。2、 实现原理2.1 引入工具库file-saver、xlsx、script-loadernpm install -S file-saver xlsxnpm install -D script-loader2.2 导入Excel2.2.1 Element 上传控...

2020-03-04 13:34:25 47

转载 git 创建与合并分支

在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就...

2020-03-04 09:38:14 46

转载 一台电脑上配置两个Git账号?可能你并不需要

前言Q:为啥要两个?A:因为整了个小号哈之前脑子一直陷入了死胡同里,一直觉得小号也要配置。然后网络搜索一台电脑配置两个Git账号,解决思路一般如下:(图片来自网络,侵权联系删除)后来想通了,我就一个人一台电脑,小号在网页上建好仓库把大号拉进去,剩下的大号来不就好了。git的初衷就是为了更好的合作,居然忘了233333。食用方式小号在仓库>设置>成...

2020-03-04 09:23:04 65

原创 this指向构造函数原型链改变指向关系变动

输出下面几个方法得到结果function Foo() { Foo.a=function(){ console.log(1) } this.a=function(){ console.log(2) }}Foo.prototype.a=function(){ console.log(3)}Foo.a=func...

2020-01-15 11:46:11 74

翻译 vue-text-highlight vue实现搜索词高亮

Installationnpminstall--savevue-text-highlight#oryarnaddvue-text-highlightUsageBasic UsageimportVuefrom'vue';importTextHighlightfrom'vue-text-highlight';Vue.compone...

2020-01-15 11:25:35 281

原创 两种方式实现字符串出现最多的值和次数

var str='asdfskdfiewhfsnmdpsfodsfl;admsfnsdakf' var arr=str.split('') var obj={} for (let index = 0; index < arr.length; index++) { const element = arr[index]; if(obj[eleme...

2020-01-14 10:55:36 35

原创 echarts设置y轴 自定义颜色

根据业务需求,特殊标记点设置特殊提示在color:function()中进行判断,同理如果显示label自定义在formatter中进行yAxis:{{ type: 'value', name: '温度', min: 0, max: 25, position: 'left', axisLine: { lineStyle:...

2020-01-07 17:59:24 792

原创 vue方法里引用data不再使用this.xx

checkCouponInfo() {//this vue实例 couponList checkcouponid data中数据 const { couponList, checkcouponid } = this;//查找couponList中有没有id为checkcouponid的数据 返回bool值 const res = couponList.find(e => e....

2020-01-06 14:14:24 410

转载 ES6、ES7、ES8、ES9、ES10新特性一览

目录1.ES6新特性(2015)1.1模块化(Module)1.1.1导出(export)1.1.2导入(import)1.2箭头(Arrow)函数1.2.1箭头函数的结构1.3默认参数1.4模板字符串1.5.结构赋值1.5.1数组的结构赋值1.6延展操作符(Spread operator)1.7Promise2 ES7新特性(2016)2....

2020-01-03 14:05:03 33

转载 手写一个mini-webpack

前言webapck 相关的内容: 手写一个 JavaScript 打包器 所有配置项 优化 90% 打包速度 优化包体积 优化首屏加载时间与页面流畅度 构建包分析 详细配置 手写一个 webapck 插件(模拟 HtmlWebpackPlugin 的实现) webapck4 核心源码解读 webap...

2020-01-03 13:19:34 58

转载 「从源码中学习」面试官都不知道的Vue题目答案

前言当回答面试官问及的Vue问题,我们除了照本宣科的回答外,其实还可以根据少量的源码来秀一把,来体现出你对Vue的深度了解。本文会陆续更新,此次涉及以下问题: “new Vue()做了什么?” “什么阶段才能访问DOM?” “谈谈你对Vue生命周期的理解。” 扩展:新生命周期钩子serverPrefetch是什么? “vue-router路由模...

2020-01-02 15:50:17 59

提示
确定要删除当前文章?
取消 删除