vscode用户设置
VS Code 是目前最流行的代码编辑器之一,合理的用户设置能大幅提升编码效率。以下是我的个人配置备份,涵盖编辑器外观、格式化、ESLint、Emmet 等常用选项,可直接复制使用。 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485{ "update.channel": "none", "extensions.autoUpdate": false, "editor.renderLineHighlight": "none", "editor.renderWhitespace": "none", // "editor.fontFamily": "Consolas", "editor.fontSize": 15, "editor.cursorBlinking": "smooth", "editor.m...
Vue 笔记
本文记录 Vue.js 开发中常见的几个实用技巧,包括通过 JS 动态设置 CSS 变量、理解 extends 与 mixins 的区别以及图片资源的动态导入方法,适合日常开发快速参考。 js动态设置css 123456this.$el.style.setProperty('--ar-round', this.radius);// 或者原生设置// document.documentElement.style.setProperty('--ar-round', this.radius);// 使用border-radius: var(--ar-round) extends 和 mixins 的区别 都是混入对象,但mixins是多继承,extends是单继承;可继承所有属性对象,并且后面覆盖前面 img动态设置地址 1234import test from "../asssets/test.png"// test 即为资源地址console.log(test)<img :src="test">
ES6的NodeJS & pm2启动
本文详细讲解如何从零搭建支持ES6语法的Node.js项目,涵盖Babel转码配置、PM2集群部署以及forever进程管理,帮助你将Node.js应用高效部署到生产环境。 创建支持ES6的NodeJS项目 新建一个空的文件夹,在根目录执行:npm init -y。会生成一个package.json文件 安装依赖 安装express: npm install --save express 安装babel转码编译:npm install --save-dev babel-register babel-preset-env 在文件根目录创建.babelrc文件,内容如下: 123456789{ "presets": [ ["env", { "targets": {//只转码当前不支持语法 "node": "current" } }] ]} 新建一个src文件夹,并在文件内新建 main.js内容如下: 123456789import Express from 'express'let app = Express()app.get('/', ...
Swift 5.1 高帧率朋友圈实现
本篇文章介绍如何基于 IGListKit 框架实现类似朋友圈的高帧率列表,确保在大量图文混排的情况下依然保持流畅滑动。 本文基于IGListKit 4.0实现列表的高帧率滑动效果,项目地址见GitHub 话不多说,上图 创建基类控制器 所有IGListKit的视图控制器都应该继承此类,减少复用 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849class BaseListVC: UIViewController { var objects: [ListDiffable] = [ListDiffable]() lazy var collectionView: UICollectionView = { let flow = UICollectionViewFlowLayout() let collectionView = UICollectionView(frame: CGRect.zero, collectio...
杂记
日常开发中总有一些零散但实用的技巧和命令,不值得单独成篇,却又时常需要翻查。本文就收录了这类碎片知识,包括代码统计、Git 服务器搭建、模拟器运行等。 统计代码量 1234567891011121314find . -name "*.js" -or -name "*.json" -or -name "*.wxml" -or -name "*.wxss" |xargs cat|grep -r -v ^$|wc -lfind . -name "*.swift" -or -name "*.xib" |xargs grep -v "^$"|wc -lfind . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" |xargs wc -lfind . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.h" -or -name "*.rss" ")" -print | xargs wc -l-name "*.m" 就表示扩展名为.m的文件。...
IGListKit使用
IGListKit 是 Instagram 推出的高性能列表框架,本文详细介绍其基类控制器、数据模型和 Cell 绑定的使用方式。 创建基类控制器 所有IGListKit的视图控制器都应该继承此类,减少复用 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748class BaseListVC: UIViewController { var objects: [ListDiffable] = [ListDiffable]() lazy var collectionView: UICollectionView = { let flow = UICollectionViewFlowLayout() let collectionView = UICollectionView(frame: CGRect.zero, collectionViewLayout: flow) if #available(iOS 11.0,...
Swift 模型化使用SQLite3
本文介绍如何在 Swift 中通过模型化方式使用 SQLite3 数据库,实现对 SQLite.Swift 库的封装,让数据库操作更加便捷。 在iOS中,使用未经处理的SQLite库是一件很痛苦的事情,所以出现了很多封装后的库,其中在Swift语言中使用的较为广泛的库是SQLite.Swift。使用过的都知道,这个库很好,但是不支持模型化转换就很苦恼,正因为如此,本文所写的也正是对SQLite.Swift的模型化封装 使用 创建的模型实现SQLiteProtocol协议即可 1234import SQLiteManagerclass TestModel: NSObject, SQLiteProtocol {}struct TestModel: SQLiteProtocol {} 创建模型后即可快速开始数据库操作 123456789101112131415161718/// 插入模型(默认不存在会创建SQLiteManager.default.insert(testModel)/// 删除模型SQLiteManager.default.delete(testModel)...
Flutter 笔记
本文汇总了 Flutter 开发中跨平台(iOS/Android)的常见实用技巧,包括插件桥接 OC 库、签名与 ADB 操作、自动方向监听及物理返回按键拦截等,方便快速查阅。 iOS 插件swift 调用oc库 project.podspec文件添加库依赖 s.dependency 'name', 'version' 如需桥接文件 Pods/Development Pods/project/../ios/Classes/目录下创建桥接文件Flutter-Bridging-Header.h,并引用库头文件 在project-umbrella.h文件中添加#import "Flutter-Bridging-Header.h"(也可以全局搜索ProjectPlugin.h后添加在其下)⚠️Podfile必须有use_framework!属性才会生成umbrella文件 如需要添加其他资源文件,需要在project.podspec中配置 12345678search_paths = [ '${SDKROOT}/usr/include/libxml2']s.pod_tar...
nginx 配置
本文汇总了 Nginx 的常用配置,包括 gzip 压缩、缓存策略、反向代理、HTTPS SSL 部署以及常见问题处理方案。 nginx 若修改了nginx的启动目录,则需要修改 user属性 #user nginx; user root; gzip # 开启gzip功能 gzip on; # 启用gzip压缩的最小文件,小于设置值的文件将不会压缩 gzip_min_length 1k; # 缓存空间大小 gzip_buffers 4 16k; # 设置gzip压缩针对的HTTP协议版本 gzip_http_version 1.1; # 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间 gzip_comp_level 4; gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpe...
面试
本文汇总了前端开发岗位面试中的高频知识点,包括 JavaScript 核心机制、Vue.js 框架原理、DOM 操作与跨域处理等内容,帮助求职者系统复习和查漏补缺。 JS 如何理解 JS 中的this关键字? this总是指向函数的直接调用者(而非间接调用者) 如果有new关键字,this指向new出来的那个对象 在事件中,this指向目标元素,特殊的是IE的attachEvent中的this总是指向全局对象window。 什么是window对象? 什么是document对象? window对象代表浏览器中打开的一个窗口。document对象代表整个html文档。实际上,document对象是window对象的一个属性。 [“1”, “2”, “3”].map(parseInt) 答案是多少? [1,NaN,NaN] 数组对象有哪些原生方法,列举一下 pop、push、shift、unshift、splice、reverse、sort、concat、join、slice、toString、indexOf、lastIndexOf、reduce、reduceRight forEa...