
学习笔记
文章平均质量分 68
小小小骆驼
这个作者很懒,什么都没留下…
展开
-
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 · 1483 阅读 · 1 评论 -
腾讯云+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 · 634 阅读 · 0 评论 -
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 · 1361 阅读 · 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 · 785 阅读 · 1 评论 -
网络抓包神器-charles使用技巧
charlescharles常用于网络抓包,常见用途有以下:开发和调试过程有极大帮助,可以分析接口请求篡改mock接口返回本地代理调试开发模拟慢速情况做压测blocklist,使得某些请求失效charles macos开启代理抓包(http)去菜单栏Proxy -> macos Proxy ,记得打开即可实现抓本机的http请求,原理是这样,chares起了一个代理服务器,所有的请求都会经过这个代理服务器,可以去网络设置的proxy设置里面查看charles macos转ht原创 2021-01-17 09:49:20 · 1619 阅读 · 0 评论 -
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 · 1223 阅读 · 0 评论 -
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 · 9217 阅读 · 0 评论 -
危险的 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 · 1864 阅读 · 0 评论 -
关于js内存泄露
内存泄露在前几年一直是个比较重要的话题,而如今虽然手机电脑内存容量较大,但依旧可能会存在严重的内存泄露问题。比如,一个 RN 界面存在内存泄露,一次访问回退,可能会导致占用内存增加 10M,以此不断切换页面,很快手机会出现卡顿的现象。为什么 js 会发生内存泄露这得先提到垃圾回收。线代浏览器都是自动回收垃圾,原理分两种:引用计数垃圾回收这一点和 objective-c 很像。当一个对象能访问另一个对象时,则意味着被访问的对象引用计数+1,当移除这种访问时,引用计数-1。当引用计数为 0 时,代表原创 2020-08-02 17:11:15 · 286 阅读 · 0 评论 -
面试题-关于深拷贝浅拷贝
关于赋值赋值,即直接将变量相等,=,此时对于这两个变量来讲,指向了同个内存地址,所以,内存地址指向的内容一旦改变就会同步改变关于 js 变量类型基本数据类型: Number, Boolean, String, Symbol, null, undefined引用类型: Object,诸如 array, function, object关于浅拷贝浅拷贝的理解就是两个变量的内存地址是不一样的,但对于不同类型的变量是有区别的:基本数据类型: 一个变量的更改不会引起另一个变量的更改引用类原创 2020-08-02 17:10:10 · 1199 阅读 · 0 评论 -
关于视频上传及视频播放你该知道的
视频播放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 · 298 阅读 · 0 评论 -
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 · 2750 阅读 · 0 评论 -
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 · 2565 阅读 · 0 评论 -
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 · 492 阅读 · 0 评论 -
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 · 1707 阅读 · 0 评论 -
教你搭建 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 · 328 阅读 · 0 评论 -
教你搭建 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 · 463 阅读 · 0 评论 -
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 · 7633 阅读 · 0 评论 -
Git-重写历史知多少(更改 commit 信息)
经常有以下这些需求:commit 数量比较多,需要合并一些 commit 以保证提交记录清晰commit 信息写错了这里还分两种情形,一种是要重写本地仓库的 commit。第二种是已经 push commit 到远程仓库。常见技巧:选择 push 到远程仓库要慎重,需要是你已经有充足的信心及把握提交代码(而且代码也是可信任的)。因为一旦提交到远程,别人从远程 clone 下来了,这时候你再要去重写历史,就需要别人做一些额外的操作才能保持同步。举几个简单技巧的实例:比如,我们现在有 3 个 c原创 2020-07-05 23:09:42 · 1024 阅读 · 0 评论 -
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 · 223 阅读 · 0 评论 -
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 · 701 阅读 · 0 评论 -
多页面阻止浏览器回退的解决思路(popstate)
需求目的:用户填写表单时,需要监听浏览器返回按钮,当用户点击浏览器返回时需要提醒用户是否离开。如果不需要,则需要阻止浏览器回退实现原理:监听 popstate 事件popstate,MDN 的解释是:当浏览器的活动历史记录条目更改时,将触发 popstate 事件。触发条件:当用户点击浏览器回退或者前进按钮时、当 js 调用 history.back,history.go, history.forward 时但要特别注意:当 js 中 pushState, replaceState 并不会触发 p原创 2020-06-08 00:00:02 · 5582 阅读 · 0 评论 -
面试题-手写冻结一个对象
冻结对象的概念如果我们定义一个常量,我们现在都会使用 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 · 252 阅读 · 0 评论 -
Nuxt 速度优化实战
Nuxt 速度优化实战背景是谷歌统计移动端网页加载速度在 10s 左右,所以优化一波,整体优化下来能优化到 7s 左右。主要有以下思路:减少请求数和请求大小资源延迟加载或者懒加载相关资源验证 cdn 是否命中缓存优化 dns 查询优化缓存的设置利用服务端渲染特性,提前请求数据设置资源域名和主站域名不同以减少资源请求 cookie加速请求 prefetch, preload, preconnect下面将详细介绍具体的分析过程1. 减少请求数和请求大小引用官方文档Nuxt.js原创 2020-05-18 07:59:37 · 5002 阅读 · 0 评论 -
iOS学习日志
记录下平时学习iOS的笔记!原创 2016-02-01 11:30:32 · 2890 阅读 · 0 评论 -
前端学习笔记
记录下前端学习中的笔记原创 2016-08-19 15:36:14 · 1762 阅读 · 0 评论 -
如何禁止谷歌浏览器自动填充密码
参考网址:Disabling Chrome Autofill问题所在:谷歌浏览器会自动填充密码,某方面是很方便,但是也会出现意想不到的效果,比如填充的颜色变成黄色,可能与设计不符,主要原因是浏览器给input加上了一个样式:input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill { backgrou原创 2016-11-16 19:31:05 · 15969 阅读 · 4 评论 -
浏览器调试技巧
1.-你还可以对某个元素进行监听,在JS对元素的属性或者HTML进行修改的时候,直接触发断点,跳转到对改元素进行修改的JS代码处: 子节点修改 自身属性修改 自身节点被删除2. Record Network Log: 红色表示此时正在记录资源请求信息; Clear: 清空所有的资源请求信息; Filter: 过滤资源请求信息; Use small resource raws:原创 2016-11-17 20:39:39 · 2096 阅读 · 0 评论 -
github commit 报错:error: failed to push some refs to 'https:'错误解决方法
github commit 报错:error: failed to push some refs to 'https:'错误解决方法原创 2015-08-02 23:16:21 · 7485 阅读 · 0 评论 -
iOS学习笔记-核心动画
简介: 注意,CABasicAnimation必须是基于layer,所以使用View是不行的。使用方法注:第一步执行后需要添加一个layer,然后再执行第二步; 继承结构: 下面是示例代码:#import "ViewController.h"@interface ViewController ()@property (nonatomic,weak) CALayer *layer;@end@原创 2015-09-09 11:44:07 · 411 阅读 · 0 评论 -
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 · 442 阅读 · 0 评论 -
iOS-添加新手操作指引
添加新手操作指引原创 2016-03-04 17:53:17 · 2063 阅读 · 0 评论 -
iOS学习笔记1-多线程GCD与block
学习IOS也有两三个月了,今天来总结下学习GCD的知识点,希望大家多多指教:1.GCD简介以及block GCD:Grand Central Dispatch或者GCD,是一套low level API,提供了一种新的方法来进行并发程序编写。原创 2015-08-18 15:54:48 · 2314 阅读 · 0 评论 -
iOS学习笔记10-设计模式-单例模式(懒汉式,饿汉式)
设计模式有许多中,如观察者模式,单例模式,工厂模式,门面模式,等等。单例模式:1.饿汉式:一进入程序就自动创建一个单例对象,但在移动端不是很适用; 2.懒汉式:当第一次使用到单例对象时,才创建对象;懒汉式:(不使用GCD)#import "HMMusicTool.h"@implementation HMMusicToolstatic id _instance;//第一步,先定义一个全局静态id变原创 2015-09-13 16:56:45 · 1923 阅读 · 1 评论 -
iOS学习笔记-多线程基础(NSThread)
iOS中多线程的实现方案:多线程原理: 多线程的原理 同一时间,CPU只能处理1条线程,只有1条线程在工作(执行) 多线程并发(同时)执行,其实是CPU快速地在多条线程之间调度(切换) 如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象关于NSTthread 一个NSThread对象就代表一条线程创建、启动线程一般创建方法NSThread *thread =原创 2015-09-12 12:56:02 · 500 阅读 · 0 评论 -
我的彩票-制作笔记
1. 设置启动图片的时候状态栏是否隐藏 2. 禁止图标自动渲染(iOS6需要注意的地方,有时候因为它自动渲染导致不好看) 选中APPlcon,然后如下图: 3. 在iOS6中设置启动后才显示状态栏(默认不会弹出状态栏)@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinis原创 2015-09-10 12:11:12 · 662 阅读 · 0 评论 -
真机调试注意点
1.在电脑生成Identifiers时,如下: 填*的意思是告诉Xcode只要前缀一样都可以实现真机调试;2.原创 2015-09-12 10:01:01 · 420 阅读 · 0 评论 -
多台Mac用一个开发者帐号共同开发的方法(已解决)
寻找了许久的资料,记录下多台Mac用一个开发者帐号共同开发的方法(已解决):参考网址:多台Mac用一个开发者帐号共同开发的方法(已解决)一楼是正解 在已经得到授权的xcode上 导出一份 (Export Accounts) 然后另外一台mac 上 xcode Import Accounts 一下 xode--》Preferences --》Accounts --》左下角的设置图标(导入导出原创 2015-08-20 22:52:54 · 671 阅读 · 0 评论 -
Layer学习笔记
1. 学习技巧: 关于自定义图层- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //创建个图层 CALayer *layer = [CALayer layer]; //设置图原创 2015-09-09 09:00:20 · 803 阅读 · 0 评论 -
(转载)iOS开发中断言的使用—NSAssert()
本博文转自:http://blog.youkuaiyun.com/univcore/article/details/16859263声明:本文乃作者UnivCore原创博客,如若转载,转载时请务必以超链接形式标明文章 原始出处、作者信息和本声明。否则作者保留追究相关法律责任的权利。断言(assertion)是指在开发期间使用的、让程序在运行时进行自检的代码(通常是一个子程序或宏转载 2015-08-02 23:11:05 · 500 阅读 · 0 评论