- 博客(81)
- 资源 (2)
- 收藏
- 关注
原创 腾讯云+docker搭建jenkins实战
本文会介绍在腾讯云用docker搭建jenkins的过程及技巧,文中如有错误,烦请指出我去改正!安装步骤安装docker启动dockerdocker安装jenkins镜像docker启动jenkins镜像配置腾讯云安全组访问8080端口,开始配置jenkins1. 安装docker参见另一篇分享:docker常见技巧2. 启动docker参见另一篇分享:docker常见技巧3. docker安装jenkins镜像正确的安装jenkins镜像docker pull jenkin
2021-03-11 00:02:15 601
原创 facebook、twitter、facebook登录、whatsapp分享、微信分享
facebook 分享官方英文文档:https://developers.facebook.com/docs/sharing/分享原理:facebook 爬虫机器人会去向要分享的 url 访问,拿到对应的 html 解析,分别拿到相应的 html 元素图谱步骤 1 facebook 后台设置 App Domains比如,分享的地址是https://www.luotuxiu.cn/,则设置App Domains 为 luotuxiu.cn步骤 2方式 1:直接 url 分享(注意 url 需要
2020-09-17 23:17:19 9105
原创 try-catch 能抛出 promise 的异常吗
try-catch 能抛出 promise 的异常吗?try { throw new Error('1')} catch(error) { console.log(error)}这是最常见的 try-catch,会 log 下面的内容:注意,这里并不是红色的,因为 js 异常被捕获后,js 是能够正常往下执行的,如果没有被捕获的话,那么 js 将抛出异常,js 执行将会停止!例子:// 异步,宏任务try { setTimeout(function() { console.lo
2020-07-12 11:51:56 7564
原创 Nuxt 速度优化实战
Nuxt 速度优化实战背景是谷歌统计移动端网页加载速度在 10s 左右,所以优化一波,整体优化下来能优化到 7s 左右。主要有以下思路:减少请求数和请求大小资源延迟加载或者懒加载相关资源验证 cdn 是否命中缓存优化 dns 查询优化缓存的设置利用服务端渲染特性,提前请求数据设置资源域名和主站域名不同以减少资源请求 cookie加速请求 prefetch, preload, preconnect下面将详细介绍具体的分析过程1. 减少请求数和请求大小引用官方文档Nuxt.js
2020-05-18 07:59:37 4941
原创 如何开启mac的三指拖移
注意,这个设置不是在设置-触摸板设置那里“三指拖移”是 OS X 中的一种 Multi-Touch 手势。通过这个手势,您能使用三个手指移动屏幕上的活跃窗口。本文介绍了在您的 Mac 配备了 Force Touch 触控板的情况下,该如何开启“三指拖移”。从 Apple 菜单中,选取“系统偏好设置”。点按“辅助功能”图标。从左侧的选项中选取“鼠标与触控板”。点按“触控板选项”。...
2018-02-26 09:25:42 12818
原创 nginx常见技巧
nginx的用途一款轻量级的服务器,于前端而言,可以做静态文件服务器,很方便。于后端而言,可以做各种接口路由转发,负载均衡等设置。mac nginx安装1. 通过homebrew安装homebrew是mac端经常用的包管理软件,使用之前经常需要更新biew update注意,这里经常应该国内网络原因导致一直卡住,可以切换到vpn环境再执行接着执行brew install nginxnginx使用技巧查看nginx 版本nginx -v如果安装了则会打印:nginx versi
2021-05-20 23:37:06 347
原创 graphql 接口定义加注释
类型定义加注释 "分类" type Category { "分类更新时间" updateTime: String "分类创建时间" createTime: String "分类名称" category_name: String "分类id" category_id: String "分类名称-英文(自建站的url路径需要匹配英文)" category_name_en: String _id: String }
2021-05-05 20:49:49 1385 1
原创 面试题-你不知道的 this 指向
面试和业务中常见的问题是 this 的指向问题。作为一等公民的函数,this 的指向经常让人捉摸不透。我们可以按照以下逻辑来进行 this 的指向理解箭头函数:this 指向定义的时候所属的对象自身普通函数:this 指向函数的调用者const module = { x: 42, getX: function() { return this.x; }};const unboundGetX = module.getX;console.log(unboundGetX
2021-04-27 22:41:20 277
原创 docker常见技巧
查看当前docker本地已有哪些镜像docker image lsdocker pull报错Using default tag: latestCannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?可能的原因是docker没启动,解决办法如下:service docker startdocker pull慢,换源docker pull 镜像会有点慢,
2021-03-05 00:04:47 1297 2
原创 gitlab ssh 多个key配置
以下仅以git举例,实际gitlab、github都是同样的道理。git登录方式执行git操作可以通过以下两种办法进行通信:git账号密码ssh秘钥方式gitlab如何配置sshssh原理ssh提供一种方式,能够验证本地服务器与远程服务器之间的通信,而不需要提供相关的账号密码,主要是有:公钥、私钥。公钥存放于任何你想通信的远程服务器,私钥存放于本地,只有你自己知道私钥,相对比较安全ssh agent,一个能够使用公钥私钥去和远程服务器通信的程序生成ssh keyssh-keyg
2021-03-04 23:52:23 725 1
原创 mongodb 数据库迁移
实现原理将原数据库备份成一个文件从这个备份文件恢复到目标路径,实现数据库迁移备份数据库mongodump --host 127.0.0.1 --port 27017 -d user -o /Users/tuxiuluo/blog_data–host: 指原数据库访问路径–port:指原数据库访问端口-d: 需要备份的数据库实例-o: 生成的备份文件的路径此命令后可以生成一个user的备份数据库文件,接下来我们通过scp上传该数据库文件到服务器ssh scp上传文件通过scp上传备
2021-02-02 08:10:27 1210
原创 网络抓包神器-charles使用技巧
charlescharles常用于网络抓包,常见用途有以下:开发和调试过程有极大帮助,可以分析接口请求篡改mock接口返回本地代理调试开发模拟慢速情况做压测blocklist,使得某些请求失效charles macos开启代理抓包(http)去菜单栏Proxy -> macos Proxy ,记得打开即可实现抓本机的http请求,原理是这样,chares起了一个代理服务器,所有的请求都会经过这个代理服务器,可以去网络设置的proxy设置里面查看charles macos转ht
2021-01-17 09:49:20 1569
原创 前端应该了解的dns解析那些事
DNS是什么DNS,英文全称Domain Name System,域名系统。其实是域名和ip地址相互映射的分布式数据库。有了它,人们可以轻松记住域名即可访问到目标服务器。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VEy0oZiY-1610550893364)(https://www.cloudflare.com/img/learning/dns/what-is-dns/dns-lookup-diagram.png)]加载网页关联的4个DNS服务器DNS解析器顾名
2021-01-13 23:15:57 1218
原创 mac launchctl 守护进程
需求我们有一些场景需要服务器,比如一台mac重启后自动启动某些应用,比如自重启服务器数据库,此时,我们可以用以下办法:pm2 重启launchctl 守护进程pm2 重启现在nodejs很多应用是用pm2部署的,pm2自带能够自重启的功能设置步骤先用pm2启动应用pm2 start ./dist/client/ --watch --ignore-watch="node_modules"然后用pm2 status 查看该应用是否显示正常pm2 statuspm2 start
2020-12-30 22:40:13 1151
原创 apache常见技巧
关于apacheapache是一个服务器,可以用于配置静态页面服务器apache配置路径 以及 查看apache版本及更详细的信息apachectl -Vmac端打印如下:Server version: Apache/2.4.46 (Unix)Server built: Oct 29 2020 20:35:15Server's Module Magic Number: 20120211:93Server loaded: APR 1.5.2, APR-UTIL 1.5.4Compil
2020-12-03 08:30:25 232
原创 mac 存储不足怎么办
mac 存储不足怎么办我们经常会遇到,关于本机中,显示其它,占了 70 多 G 甚至 100 多 G,使得电脑没有空余的存储空间可以使用了。下面介绍常见的操作技巧使用官方的磁盘管理工具在可视化的界面进行排序等操作,可以选择菜单栏上的分组-大小进行排序,然后进行删除使用脚本我们现在主要来清除这个其它,打开 finder,按住 option 键,点击菜单栏前往,此时会看到资源库,点击进去资源库[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kfu2TkRS-16032
2020-10-21 22:00:00 884
原创 危险的 target=_blank 及 rel=noopener
在编写 js 代码时有时候会出现以下报错:jsx-no-target-blank[ESLint]具体可以访问源码地址究其原因,是因为:默认的 a 标签链接,如果设置 target=_blank 时,则在新窗口能够通过全局对象的 opener 属性拿到原 tab 的引用,此时可能会引发黑客攻击等危险其中,一篇英文博客写的很好,下面引用的例子也是引用该博客的示例新开窗口属于同源时先进入https://mathiasbynens.github.io/rel-noopener/然后点击第一个示例:“
2020-08-10 22:14:21 1770
原创 关于js内存泄露
内存泄露在前几年一直是个比较重要的话题,而如今虽然手机电脑内存容量较大,但依旧可能会存在严重的内存泄露问题。比如,一个 RN 界面存在内存泄露,一次访问回退,可能会导致占用内存增加 10M,以此不断切换页面,很快手机会出现卡顿的现象。为什么 js 会发生内存泄露这得先提到垃圾回收。线代浏览器都是自动回收垃圾,原理分两种:引用计数垃圾回收这一点和 objective-c 很像。当一个对象能访问另一个对象时,则意味着被访问的对象引用计数+1,当移除这种访问时,引用计数-1。当引用计数为 0 时,代表
2020-08-02 17:11:15 267
原创 面试题-关于深拷贝浅拷贝
关于赋值赋值,即直接将变量相等,=,此时对于这两个变量来讲,指向了同个内存地址,所以,内存地址指向的内容一旦改变就会同步改变关于 js 变量类型基本数据类型: Number, Boolean, String, Symbol, null, undefined引用类型: Object,诸如 array, function, object关于浅拷贝浅拷贝的理解就是两个变量的内存地址是不一样的,但对于不同类型的变量是有区别的:基本数据类型: 一个变量的更改不会引起另一个变量的更改引用类
2020-08-02 17:10:10 1160
原创 关于视频上传及视频播放你该知道的
视频播放controls 能够出控制条<video controls src="https://interactive-examples.mdn.mozilla.net/media/examples/flower.webm"></video><script>var video = document.getElementsByTagName('video')[0];video.addEventListener('play', (e) => { // 开始
2020-08-02 17:09:29 281
原创 iOS 疑难杂症 学习笔记
2015.04.221. 出现问题:虚拟机Xcode调试时候发现键盘出不来 错误提示:Xcode提示:Can’t find keyplane that supports type 8 for keyboard iPhone-Portrait-DecimalPad; using 3648623971_Portrait_iPhone-Simple-Pad_Default 解决方法:“这个可能
2020-07-18 20:45:37 2613
原创 react-原生事件和合成事件的区别
react-原生事件和合成事件的区别及源码分析概念class EventClickDemo extends React.Component { constructor(props) { super(props) this.btnRef = React.createRef() } componentDidMount() { // 这里就是js原生事件 this.btnRef.current.addEventListener('click', function(e) { cons
2020-07-18 20:23:06 2512
原创 react-实现错误边界或者错误处理
react-实现错误边界或者错误处理react 程序出错了怎么办在 react 中,一旦出错,如果每个组件去处理出错情况则比较麻烦,react 16 新出了错误边界的 api错误边界代码摘自react 英文官网// 先定义一个错误边界组件class ErrorBoundary extends React.Component { contructor(props) { super(props) this.state = { hasError: false } } stati
2020-07-18 20:22:32 469
原创 react-类组件和函数组件的区别
类组件class Book extends React.Component { constructor(props) { super(props) this.state = {} } render() { return <div>{this.props.name}</div> }}函数组件function Book(props) { return <div>{props.name}</div>}区别类组件内部拥有状态
2020-07-18 20:21:41 1685
原创 iOS面试真题
1.runloop 和 runtime;2.通知是异步的吗?如果是异步的,如何实现成同步的?(1)通过NSNotificationCenter类的postNotification:方法及其变体,您可以将通告立即发送给通告中心。但是,这个方法的调用是同步的:即在通告发送对象可以继续执行其所在线程的工作之前,必须等待通告中心将通告派发给所有的观察者并将控制权返回。 (2)您也可以通过NSNo
2020-07-15 08:01:56 141
原创 教你搭建 nodejs+mongoose+Graphql+Vue+Typescript 框架(下)
前端: Vue + Typescript + Graphql + Jwtauto-page-web项目中使用 vue-typescript-admin-template 做二次改造,功能是 vue 可视化页面生成后台(前端前台)后端: nodejs + mongoose + apollo + graphql + jwtpage-node前端源码分析:这里主要介绍整体框架及 apollo 的应用:api // 主要封装一些api接口请求layout // 填充页面主题结构,比如左侧导航栏和
2020-07-15 08:00:29 309
原创 教你搭建 nodejs+mongoose+Graphql+Vue+Typescript 框架(上)
前端: Vue + Typescript + Graphql + Jwtauto-page-web项目中使用 vue-typescript-admin-template 做二次改造,功能是 vue 可视化页面生成后台(前端前台)后端:nodejs + mongoose + apollo + graphql + jwtpage-node具体的后端架构如下:koa: nodejs 开发平台mongoose: 作为mongoodb数据库存储开发库,属于非关系型数据库apollo: 提供一些配置
2020-07-15 07:59:38 434
原创 Git-重写历史知多少(更改 commit 信息)
经常有以下这些需求:commit 数量比较多,需要合并一些 commit 以保证提交记录清晰commit 信息写错了这里还分两种情形,一种是要重写本地仓库的 commit。第二种是已经 push commit 到远程仓库。常见技巧:选择 push 到远程仓库要慎重,需要是你已经有充足的信心及把握提交代码(而且代码也是可信任的)。因为一旦提交到远程,别人从远程 clone 下来了,这时候你再要去重写历史,就需要别人做一些额外的操作才能保持同步。举几个简单技巧的实例:比如,我们现在有 3 个 c
2020-07-05 23:09:42 934
原创 Git 的常见命令
克隆仓库:git clonegit clone git@192.168.204.xx:.../xxx.git在当前文件夹初始化 一个 git 项目:git init用终端命令 ls -al 会看到生成了一个.git 文件夹查看当前所处的分支git branch查看本地更改状态git status查看本地当前的修改(未提交到暂存区,即未执行 git add )git diff切换到该分支git checkout 分支名 //要新建分支的话用git checkout -b 分
2020-07-04 19:27:31 206
原创 react-数据的范式化 normalizr 应用
为什么需要 normalizr有时后端的接口(更多时候是已经不维护的旧接口)存在多层或者嵌套,前端需要转换数据前端需要分不同维度去取数据redux 中 state 的结构有多层,而前端只想取其中一层react 中的 PropsType实例及解析过程已经有一个成熟的范式化库normalizr// originData{ "id": "123", "author": { "id": "1", "name": "Paul" }, "title": "My awe
2020-06-18 23:40:07 649
原创 多页面阻止浏览器回退的解决思路(popstate)
需求目的:用户填写表单时,需要监听浏览器返回按钮,当用户点击浏览器返回时需要提醒用户是否离开。如果不需要,则需要阻止浏览器回退实现原理:监听 popstate 事件popstate,MDN 的解释是:当浏览器的活动历史记录条目更改时,将触发 popstate 事件。触发条件:当用户点击浏览器回退或者前进按钮时、当 js 调用 history.back,history.go, history.forward 时但要特别注意:当 js 中 pushState, replaceState 并不会触发 p
2020-06-08 00:00:02 5343
原创 面试题-手写冻结一个对象
冻结对象的概念如果我们定义一个常量,我们现在都会使用 es6 的 const。但是 const 对于引用数据类型,指的是变量对应的指针是常量,但是指针所指向的内容是可以变的,比如下例const a = 1;a = 2; // chrome报错:Uncaught TypeError: Assignment to constant variable.const a = {aa: 1};a.aa = 2;console.log(a.aa); // 2冻结对象,终极的效果是,每个值都不能修改,也不
2020-05-18 08:00:36 229
原创 浏览器调试技巧
1.-你还可以对某个元素进行监听,在JS对元素的属性或者HTML进行修改的时候,直接触发断点,跳转到对改元素进行修改的JS代码处: 子节点修改 自身属性修改 自身节点被删除2. Record Network Log: 红色表示此时正在记录资源请求信息; Clear: 清空所有的资源请求信息; Filter: 过滤资源请求信息; Use small resource raws:
2016-11-17 20:39:39 2066
原创 如何禁止谷歌浏览器自动填充密码
参考网址:Disabling Chrome Autofill问题所在:谷歌浏览器会自动填充密码,某方面是很方便,但是也会出现意想不到的效果,比如填充的颜色变成黄色,可能与设计不符,主要原因是浏览器给input加上了一个样式:input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill { backgrou
2016-11-16 19:31:05 15790 4
原创 swift学习笔记
swift 学习笔记1.不同类型的数相加1.整数和double数相加 let three = 3 let point = 0.14159 let pi = Double( three) + point如果不写double则xcode会报错;2.nil不能用于非可选的常量和变量 var serverRespondCode:Int?
2016-07-11 15:44:53 417
原创 Quartz 2D学习笔记
1.Quartz 2D学习笔记 学习技巧:(1)画出一条简单的线://当视图显示的时候会调用,默认只会调用一次- (void)drawRect:(CGRect)rect { //1.获取上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); //2.设置绘图信息(拼接路径) UIBezierPath *path =
2016-03-01 17:00:32 405
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人