自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)

原创 知识点总结

基础1、js 多维数组转一维数组?将数组转为字符串类型,然后以逗号分隔。var a = [1,[2,[[3,4],5],6]]var b = a + ''b.split(',')// => ["1", "2", "3", "4", "5", "6"]注意,下面的情况会出错,当数组子元素带 , 时,此时建议使用 concat 手动连接。2、for…in、for…of 区...

2019-07-15 22:53:18 144

原创 Docker 基本操作

Docker 基础Docker 包括三个基本概念镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。仓库(Repository):仓库可看成一

2020-10-21 22:07:44 13

原创 vscode 修改文件后自动打包生成文件

今天用 vscode 遇到一个问题,每次修改保存文件以后都会在当前目录自动打包一个 dist/[name].dev.js 文件。莫名其妙,找了半天才找到原因。。。vscode 自动安装了一个插件 compile-hero ,就是这个插件影响的,设置里搜索然后全都关掉就好了。完全是用不到的一个鸡肋功能。...

2020-08-25 15:43:36 330

原创 cnpm 私服搭建

由于 npm 的资源在国外,我们在使用的时候经常遇到网络不稳定导致下载失败的情况,所以我们在开发时一般会使用阿里在国内的镜像资源 =>淘宝 NPM 镜像。而如果我们想要在公司内部管理我们私有的 npm 包,此时就需要搭建属于我们自己的服务器了。当前的搭建方式有下面几种:Nexus 搭建 npm 私服Sinopia 搭建 npm 私服cnpm 搭建 npm 私服本博客基于 cnpmjs.org 搭建,官方 code 地址。下面我们开始搭建。cnpmjs.org 项目配置首先拉取官方

2020-08-16 21:41:34 139

原创 【js 基础系列】没有那么简单的 new 操作符

如果我说你对 new 操作符可能不是很了解。很多人可能会很不屑,不就是 new 一个构造函数吗,来我给你背一下 new 的过程,巴拉巴拉巴拉……然鹅 new 操作符真的那么简单吗?我们看下面的几个问题:new 一个构造函数发生了什么?如果我们的构造函数是一个箭头函数,得到的结果是什么?如果构造函数 return 一个普通对象,new 此构造函数得到的实例对象是什么?隐式原型指向什么?如果构造函数 return 一个基本类型的值,此时 new 此构造函数得到的实例对象是什么?隐式原型指向什么?如

2020-05-30 21:19:46 125

原创 视频铺满页面解决方案

场景是视频铺满模块作为背景展示。常规的样式 video 标签很难被拉伸压缩,所以会导致有很多留黑留白的现象。而 CSS3 中有一个属性可以完美解决此问题。object-fit,当设置 下面的属性时可以完美的占满整个模块而不出现黑色区域。object-position: center;object-fit: cover;但是 object-fit 的兼容性也完美的避开了 IE,任何版本的 I...

2020-02-28 20:54:01 276

原创 【js 基础系列】模块化

前端在发展初期仅仅被用作制作一些简单的页面,此时的页面逻辑比较简单,所以也没有太大的模块化需求。但是随着后期的发展,web 端的功能和逻辑越来越复杂,我们必须要有一套模块化的规范去管理我们的应用。前端模块化的发展历程十分曲折,大致的历程如下无模块化规范 => CommonJS 规范 => AMD/CMD 规范 => ES6 Module无模块化规范初期我们没有统一的模块化...

2019-12-24 17:59:08 71

原创 【js 基础系列】'ss'、String('ss')、new String('ss') 的区别

js 中我们创建字符串的方式有三种,如下。其中str、str1为基本字符串,str2为字符串对象,Boolean、Number 类似。var str = 'test'var str1 = String('test')var str2 = new String('test')我们使用 typeof 判断其类型,可以得到如下结果。typeof str // stringtypeof st...

2019-12-20 15:26:59 95

原创 windows 终端解决方案 windows terminal

提起 windows 下的终端,大家可能都会想到巨难看的 CMD或者稍好一些的 PowerShell作为一个常年使用 windows 系统开发的前端,做梦都想要有一个类似 Mac 或者 Linux 命令行的终端,直到我看到了 windows terminal先放图,相比前两者,高端大气上档次有没有,命令支持也非常丰富windows terminalwindows terminal 是...

2019-11-28 12:44:29 1874

原创 CSS深度学习 - 文本方向 direction 和 dir

dir 与 direction在 HTML 中,指示元素中文本方向有如下几种方式。第一种是直接使用 dir 属性去描述,详情 - dir<div dir="rtl"> <span>test1</span> <div dir="ltr">test2 <div dir="auto">test3</div> ...

2019-04-24 18:26:46 745

原创 node 终端程序

前言用 node 写一个在终端运行的命令行程序。首先基础是基于 node 的一个全局变量 process,他提供有关当前 node 进程的信息,并对其进行控制。而 process.argv 是分装...

2019-04-15 12:02:45 556

原创 前端工程师怎么从0开始配置一个服务器

前言昨天在服务器搭建 vpn 的时候,不负众望的又爆掉了,作为一个纯前端工程师,搭建服务器这条路走的果然异常艰辛,前前后后因为各种问题已经挂掉两次了。究其原因,不外乎对运维知识毫无了解,自己摸索然后踩了无数的坑。然而自己也在不断地错误中对知识掌握的更加深刻。这次服务器初始化实例,也终于有机会从0开始记录一下自己搭建网站的全过程,这么想来居然也是一个不错的机会。好了废话就到这里,下面正文开始。搭...

2019-03-22 17:52:55 509

原创 Docker-compose 多容器冲突解决方法

问题描述最近在配置 Docker-compose 时经常出现冲突问题,这里贴出解决方法报错如下WARNING: Found orphan containers (blog_server) for this project. If you removed or renamed this service in your compose file, you can run this command...

2019-03-20 15:24:54 7314

转载 js 黑魔法之使用 atob 解码 utf-8 字符

原文地址转载文章,侵删场景是这样的, 后台传来经过 base64 编码的字符串(原始字符串含有中文), 需要在前端进行解码, 但 js 中的 atob 解码方法不支持 unicode 字符集( btoa 也是), 换言之, 中文被解码出来是会乱码的, 那怎么办呢? 此时就要用到今天介绍的黑魔法了.黑魔法// 使用utf-8字符集进行base64编码function utoa(str)...

2019-03-19 11:53:08 1223

原创 docker-compose 配置 nginx + node + mysql 网站环境

本文需要熟悉 Docker、Node、Nginx 的基础知识,如果不熟悉的同学需要查看文档了解学习后阅读。Docker - 从入门到实践Node.js v10.15.3 文档Nginx 入门指南这里开始正文准备测试代码初始化一个项目目录,并配置基础的测试代码简单的一些代码下面不会给出,自行添加一些测试代码$ mkdir node_project$ cd node_proj...

2019-03-07 18:38:03 2197

原创 CentOS 服务器配置 ftp

最近一直在弄云服务器,这里总结一下 ftp 的配置以及遇到的问题。首先在本地远程连接服务器,windows 和 Mac 的方法不一样,需要分别配置,都比较简单。windows 下载 xshell 配置就可以Mac 下直接使用终端就可以连接,输入 ssh <用户 root>@<主机 ip 地址> 然后输入密码就可以,例如 ssh root@0.0.0.0这里注意,...

2019-02-11 16:39:50 183

原创 CentOS 7 配置 Nginx And Docker

首先安装一些常用的软件,例如 curl 等// 包管理器$ yum install curl wget// 压缩工具$ yum install unzip// git$ yum install git配置 oh-my-zsh先安装 zsh$ yum install zsh然后查看本机中的 shell$ cat /etc/shells这里看到已经安装成功 /bin...

2019-01-30 17:13:11 175

原创 弹窗时禁止页面滚动(支持 IOS,PC)

模态窗现在的项目已经使用非常普遍,而模态窗的一个需求就是,当弹窗时静止页面的滚动行为。pc 端的做法较为简单,直接给 html、body 加一个样式就可以$('html,body').css({ overflow: 'hidden',})此方法对大部分的安卓浏览器也同样适用,但是遇到 IOS 却没有效果,某些奇怪的安卓浏览器也没有效果,此时很大一部分的同学的做法是监听 touch 事件...

2018-11-27 20:02:20 1485

原创 Vue 项目切换 Node 版本出现无法渲染的问题

场景是这样,在 node v10.13.0 的版本去开发,调试正常后复制到项目中,node 版本是 8.11.4。结果发现初始化失败,项目没有报错,但是页面中的入口出现问题,#app 的节点上无法挂载 UI结果如下图,id 为 app 的挂载点变成了一段注释。<div id="app"></div>=><!--function (a,

2018-11-20 13:58:00 1262 1

原创 Webpack4 +babel7 多入口配置详细教程

最近需要新开一个项目,用于公众号的基础服务搭建,可能对接多个平台。项目各页面基本无关联,需要多个 HTML 文件,多个入口 JS,看了一下网上没有类似的比较全面的 Webpack 配置教程,所以写一篇较为详细的配置过程,自己去写一个 Demo。环境(MAC)node 10.13.0npm 6.4.1webpack 4+babel 7项目 Init首先需要全局安装 node、npm、...

2018-11-19 18:06:37 5333

翻译 使用 .gitlab-ci.yml 配置作业

整理一下 .gitlab-ci.yml 文件的配置原文档地址jobjob 是一组具有约束的作业,可以指定无限数量的 job 。job 被定义为具有任意名称的顶级元素,并且始终必须至少包含该 script 子句。job 必须具有唯一的名称,下面是一些保留的关键字不可以作为 job 的名称。imageservicesstagestypesbefore_scriptaf...

2018-09-13 17:03:14 3794

原创 Router@4.0 + Redux 配置使用

一直非常喜欢 vue-cli 搭建的项目环境,自己实现也比较麻烦,于是最近学习 React 时想着用 vue-cli 改造一个 React 的项目环境。 基础的版本在这里 => Module_React 然后又想着给项目加一些常用的插件,例如 router 和 redux 管理等。 本篇博客的 Demo 模板在 relase@redux 分之下react-router多出了...

2018-07-17 18:04:32 757

原创 前端面试(面试官篇)

最近一直在接公司的面试,果然还是需要站在不同的位置才能看到更多的问题,总结一下面试者常见的一些错误还有一些建议。紧张 这个是面试最常见的问题,不过说实话个人觉得影响不是特别大,属于加分项,只要你能正确把问题的关键点答出来就可以,不会因为紧张而特意淘汰掉你。 一般遇到紧张的面试者我会帮助他引导思路,后续如果能把基本的逻辑说清楚,关键的点说到一般都没有问题。但是如果在考官的引导下都无法说出问...

2018-06-10 14:36:46 6355

原创 Axios Post 请求后端接收不到数据

最近做一个小项目,前端使用 axios 请求数据,后端使用 node 写接口。调试时发现后端取不到请求的参数,解决时浪费了很多时间,这里贴出来解决方法。前端请求,有两个地方需要注意。首先是需要使用 URLSearchParams 处理 Post 参数。 第二个地方是,Content-Type 的值必须为 Content-Type: application/x-www-form-urlen...

2018-06-10 00:19:44 8970

原创 Webpack4 升级全教程

webpack4 发版也有一段时间了,发现 vue-cli 还是基于 webpack3 ,于是想着升级一个项目模板。这里是升级后的项目,可以直接使用。=> 项目模板在这里,relase@4分之下整体而言坑还是很多的,但是基本都是一些版本错误,升级一下包的版本大部分都可以解决。先是常规的 vue-cli 安装。然后 webpack 升级到 4.8.1,安装 webpac...

2018-05-16 00:19:08 12891 3

原创 SVG 详解(四)其他常用标签

文章案例 => 传送门clipPath-裁剪能限制哪些地方可见,哪些地方不可见。标记指定的区域之外的所有内容都不会被显示(图像不会被绘制出来)。剪切路径是用clipPath元素定义的,属性clip-path可用来引用剪切路径。默认情况下,一个形状,其被剪切掉的区域(不可见的区域)是不响应鼠标事件的。// 超出矩形区域将不会被绘制<svg width="120" height="120" vie

2018-04-22 23:20:25 2825

原创 SVG 详解(三)基础语法

本文介绍一些 SVG 的简单语法,如矩形、圆形、路径等。 文文涉及的全部示例 =&amp;gt; 在这里rect-矩形// 语法很简单,x y 左上角起点坐标,width height 矩形长宽,rx ry 圆角// 绘图的填充等属性可以放在 style 里,也可以和 style 平级抽离为一个属性去描述,如这样:fill='red'&amp;lt;svg width=&quot;200&quot; height=...

2018-04-19 23:23:44 2370

原创 SVG 详解(二)基本概念

SVG 实例// 一个 SVG 文件&amp;lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&amp;gt;&amp;lt;!DOCTYPE svg PUBLIC &quot;-//W3C//DTD SVG 1.1//EN&quot; &quot;http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd&quot;&amp;gt;&amp;lt;svg width=&quot;1

2018-04-02 18:03:29 1426

原创 Svg 详解(一)背景

图片数字化背景将图片存储为数据有两种方案。其一为位图,也被称为光栅图。即是以自然的光学的眼光将图片看成在平面上密集排布的点的集合。每个点发出的光有独立的频率和强度,反映在视觉上,就是颜色和亮度。这些信息有不同的编码方案,在互联网上最常见的就是 RGB 。根据需要,编码后的信息可以有不同的位( bit )数——位深。位数越高,颜色越清晰,对比度越高;占用的空间也越大。另一项决定位图的精细度的...

2018-04-02 10:57:40 1835

原创 Canvas 使用 toDataUrl 导出图片的各类错误

前不久接到一个活动需求,用户拍照然后结合相应的素材生成另一张图片并分享传播。因为个人对 Canvas 很感兴趣就兴致勃勃的接下来了,后期遇到很多有意思的坑,分享一下。// 绘制上下文获取var doc = documentvar can = doc.getElementById('canvas')var ctx = can.getContext('2d')首先是获取用户的图片文件...

2018-03-30 15:14:00 13529 4

原创 前端冷知识

Html控制台输入下面代码,可以编辑整个网页。document.body.contentEditable='true'处理 url 字符串是比较麻烦的,可以使用 a 标签自动解析 url,下面是一个比较完善的处理方法。function urlParse(url, key) { var a = document.createElement('a') a.h

2018-02-06 12:12:28 212

原创 gulp + webpack 搭建项目环境

搭建一个 gulp + webpack 的环境去学 react ,环境没有区分生产和开发环境,后续会完善,新手可以看一下。项目目录: config - webpack.configjs // webpack 配置信息 - configuration.init.js // 配置变量,例如输出目录等 public // 打包后的输出目录 src // 开发目录 ...

2018-02-03 17:56:04 564

原创 前端面试

最近一直在忙着各种面试,也算是有些经验,总结一下。 来北京之前面了两家,在北京面了三家,反馈都还不错。最大的体会就是,技术这一块还是要来北京工作,二三线城市的技术发展还是很不完善的。先说简历,这个知乎上有很多写的不错的文章可以去搜一下,下面简单写一下注意点。要明确的标出工作年限,这一点很重要,很多人的简历筛选不到这几个关键字。项目经验在精而不在多,一定要把简历上的每一个项目详细的描述

2018-01-21 13:12:58 2874

原创 vue如何像Element那样封装组件

用过 vue 的应该都知道 element ,因为确实是 vue ui 组件中做的非常不错的,里面的组件封装页比较值得学习。前不久我发过一篇如何合法的在子组件中改变父组件的值,从而实现自定义组件的文章,但是里面用到了 TypeScript ,所以写法上和普通的不使用 TypeScript 的项目有很大差别,这里整理一下最简单的 vue 环境该怎么封装。其实官网里有如何封装的描述,链接在这里 =&gt; 使

2017-12-29 18:24:01 8238

原创 知道面试题为什么都爱给 window 加 name 属性吗?

好了直接上代码。以下代码输出什么?console.log(name)console.log(window.name)console.log(typeof window.name)var name = 5console.log(name)console.log(typeof name)我觉得大部分人都会答错。想一下,然后看下面的答案。console.log(name)console.log(

2017-12-29 16:58:32 816

原创 你真的知道怎么创建一个长度为n的有序数组吗?

最近做项目发现,越是简单的东西往往越是不简单,而如何把不简单的东西做简单,应该是每一个程序猿应该去追求的。今天遇到一个问题让我重新思考了一下人生。。=.= 好了被绕晕没有,有的话思考一下这个问题,怎么创建一个长度为n的有序数组,像这样[0,1,2,3,4,5,…]。很简单的问题是不是你可能直接这样let arr = []for (let i = 0, len = 10; i < len ; i++

2017-12-24 01:19:09 6331

原创 Vue2单页应用导致的微信支付安全域名问题

最近vue的单页应用在测试时遇到一个比较严重的问题,在微信内调起微信支付老是报错,排查后发现是安全域名的设置有问题。vue的单页应用有两种模式,hash和history两种,而hash模式下的url是有一个‘#’的,导致唤起微信支付的域名不固定。但是微信的一个商户平台只能添加5个安全域名,如果要把它的多种情况都写入明显是不可能的。而history模式是需要后台去配合的。那怎么单纯的前端去解决呢?//

2017-12-22 12:49:40 4223 2

原创 前端特殊错误,Bug汇总

一直在做移动端的网页,遇到的各种问题感觉丝毫不下于PC端的各种浏览器兼容,这里总结一下,也是对自己的一个知识梳理JavaScriptUC白屏问题错误表现:网页在微信和QQ内置浏览器访问正常,但是UC和大部分的手机自带浏览器访问页面会出现白屏,打印调试后发现,JS代码一句都没有执行。解决:这种问题是因为使用了浏览器不支持的语法导致的,第一种是ES6没有转换为ES5。但是很多人使用了Babel转义后依

2017-12-15 13:07:05 576

原创 前端常用插件,知识点汇总

第三方接口蚂蚁金服开放平台: https://docs.open.alipay.com/200/105518微信开放平台: https://open.weixin.qq.com/cgi-bin/index?t=home/index&lang=zh_CN微信支付: https://pay.weixin.qq.com/wiki/doc/api/index.html腾讯开放平台:http://op

2017-12-01 13:23:17 1929

原创 Vue2实现子组件改变父子组件的数据(TS版)

制作组件的时候大部分情况需要在子组件内部改变父组件的数组,但是由于vue的限制,在子组件改变父组件的state会报错,本文介绍如何利用v-model实现父子组件的数据双向绑定。 本文环境 - vue2(2.5+) - vue-class-component - vue-property-decorator大致思路是用input的value承载父组件的数据,然后使用v-mod

2017-11-29 13:37:04 2883

空空如也

空空如也

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