Maple's Blog.

Maple's Blog.

keep coding and having fun

深度剖析:如何实现一个 Virtual DOM 算法(转)
作者:戴嘉华 转载请注明出处并保留原文链接(#13)和作者信息。 目录: 1 前言 2 对前端应用状态管理思考 3 Virtual DOM 算法 4 算法实现 4.1 步骤一:用JS对象模拟DOM树 4.2 步骤二:比较两棵虚拟DOM树的差异 4.3 步骤三:把差异应用到真正的DOM树上 5 结语 6 References 1 前言本文会在教你怎么用 300~400 行代码实现一个基本的 Virtual DOM 算法,并且尝试尽量把 Virtual DOM 的算法思路阐述清楚。希望在阅读本文后,能让你深入理解 Virtual DOM 算法,给你现有前端的编程提供一些新的思考。 本文...
git merge --no-ff
--no-ff 指的是强行关闭fast-forward方式。 fast-forward方式就是当条件允许的时候,git 直接把 HEAD 指针指向合并分支的头,完成合并。属于“快进方式”,不过这种情况如果删除分支,则会丢失分支信息。因为在这个过程中没有创建 commit。 git merge --squash 是用来把一些不必要 commit 进行压缩,比如说,你的 feature 在开发的时候写的 commit 很乱,那么我们合并的时候不希望把这些历史 commit 带过来,于是使用--squash进行合并,此时文件已经同合并后一样了,但不移动 HEAD,不提交。需要进行一次额外的 c...
Gulp 常用插件(转)
Gulp 常用插件(转)原文地址 本文主要展示的是gulp常用插件的使用方法和用途,通过对插件的熟练运用达到精通gulp。不定期更新。可以到github上面下载DEMO。 匹配符 *、**、!、{}1234gulp.src('./js/*.js') // * 匹配js文件夹下所有.js格式的文件gulp.src('./js/**/*.js') // ** 匹配js文件夹的0个或多个子文件夹gulp.src(['./js/*.js','!./js/index.js...
gulp-autoprefixer 基本使用
转载传送门 基本使用 使用 gulp-autoprefixer 根据设置浏览器版本自动处理浏览器前缀。使用她我们可以很潇洒地写代码,不必考虑各浏览器兼容前缀。 1234567891011121314var gulp = require('gulp'), autoprefixer = require('gulp-autoprefixer'); gulp.task('testAutoFx', function () { gulp.src('src/css/index.css') ...
Docker 启动后直接退出
之前对 docker 的运行问题很不了解,后来根据朋友的解释才理解,容器中的程序应该挂载在容器上,由容器的重启关闭来控制程序的关闭开机。 那假如运行后台运行的函数呢? 如果不做处理,在函数进入后台运行后,容易就会直接 exit 结束。 有一个办法是在运行脚本上加一句: 1tail -f /dev/null 这样容易就处于执行状态就不会退出了。 算是歪门邪道吧。
Ubuntu APT 更换阿里源
备份原 APT 源 1sudo mv /etc/sources.list /etc/sources.list.bak 重新编辑一份新的sources.list 16.0412345678910111213141516# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricteddeb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-propert...
Docker 普通用户操作不用 sudo 权限
Docker 的服务本来是要 root 权限或者 docker 组的权限。只要将当前用户加入 docker 组即可以在不使用sudo 的前提下运行 Docker 指令。 新建 docker 组 一般情况下,在安装 Docker 的时候已经创建好了。 1sudo groupadd docker 将当前用户加入 docker 组 1sudo gpasswd -a ${USER} docker ​ 或者 1sudo usermod -aG docker ${USER} 退出 ssh 或者重启 docker 服务 1sudo ...
Ubuntu 新增 swap
更换权限sudo su 创建 swap 文件fallocate -l 1G /swapfile 修改访问权限 12chown root:root /swapfilechmod 0600 /swapfile 启动 swap 分区 1mkswap /swapfile 返回信息 12Setting up swapspace version 1, size = 8 GiB (8589930496 bytes)no label, UUID=f1f74673-d41b-4b06-a80c-15a6b449a1fe 激活 swap 分区 1swapon /swapfile 然后修改开机载入 1...
命令执行控制 && 与 ||(转)
&&方式:command1 && command2如果 command1 执行成功,则执行 command2。 ||方式:command1 || command2如果 command1 执行失败,则执行 command2。
常用数据库(缓存)的简单安装配置
用于日常代码调试测试开发。如果稳定使用建议 docker 搭建数据库。 1. 环境树莓派 Ubuntu 16.04 目前版本已经使用了 Ubuntu 22.04 2. MySQL2.1 MySQL 的安装1sudo apt install mysql-server 2.2 配置MySQL 的配置文件位于 /etc/mysql/。 一般名称为my.cnf或者mysqld.cnf。 因为一般开发用的 MySQL 都是外网调用,所以需要修改bind-address。注释或者修改成你所在的局域网的 IP。(如果数据库在公网暴露且有信息存储,请勿注释该代码)。 2.2.1 MySQL 的...
avatar
Maple
coding & have fun