置顶文章

1.7k 2 分钟

还记得所有AI教程必提的「奥卡姆剃刀原则」吗?即:如无必要,勿增实体。这条原则也被收藏,还有一些不太常见的费茨法则、盖尔定律、康威定律等,都被一一收入囊中。

精选分类

文章列表

15k 14 分钟

45 个日常用 git 合代码的经典操作场景,基本覆盖了工作中的需求。 # 我刚才提交了什么? 如果你用 git commit -a 提交了一次变化 (changes),而你又不确定到底这次提交了哪些内容。你就可以用下面的命令显示当前 HEAD 上的最近一次的提交 (commit): (main)$ git show或者 $ git log -n1 -p# 我的提交信息 (commit message) 写错了 如果你的提交信息 ( commit message ) 写错了且这次提交 (commit) 还没有推 (push), 你可以通过下面的方法来修改提交信息 ( commit...
2.2k 2 分钟

# js 基础写法

// 增加
addItem: function () {
var n = this.signForm.signFormList ? this.signForm.signFormList.length + 1 : 1;
	this.signForm.signFormList.push({
	  title: '标题' + n,
	  require: false
	});
},
// 删除
removeItem: function (item) {
	const index = this.signForm.signFormList.indexOf(item);
	this.signForm.signFormList.splice(index, 1);
},
// 置顶
moveTop: function (item) {
	const index = this.signForm.signFormList.indexOf(item);
	if(index != 0){
	  this.signForm.signFormList.splice(index,1);
	  this.signForm.signFormList.splice(0,0,item);
	}
},
// 上移
moveUp: function (item) {
	const index = this.signForm.signFormList.indexOf(item);
	if(index != 0){
		this.signForm.signFormList.splice(index,1);
		this.signForm.signFormList.splice(index-1,0,item);
	}
},
// 下移
moveDown: function (item) {
	const index = this.signForm.signFormList.indexOf(item);
	const max = this.signForm.signFormList.length ;
	if(index != max){
	  this.signForm.signFormList.splice(index,1);
	  this.signForm.signFormList.splice(index+1,0,item);
	}
},

728 1 分钟

使用 element 表单时会出现数组对象类型的数据结构并且需要必填校验 data(){ return { // 表单中出现像 jsonList 这样的数组对象数据 editForm:{ script:'', paramJsonList:[ {paramName:'',paramaValue:''} ] }, // 表单校验 editFormRule:{...
467 1 分钟

# 1. 谷歌浏览器 添加自定义 class <el-checkbox-group v-model="checkList"> <el-checkbox class="checkbox"></el-checkbox></el-checkbox-group>.checkbox{ zoom: 200%;}如果发现有浏览器没有作用那就用下面的办法 # 2. 其他浏览器 /deep/.el-checkbox__inner {...
176 1 分钟

# 01. 关闭段落校验 /* eslint-disable */some codesome code/* eslint-enable */# 02. 关闭当前行校验 some code // eslint-disable-line# 03. 关闭下一行校验 // eslint-disable-next-linesome code# 04. 关闭整个文件校验 /* eslint-disable */
2.4k 2 分钟

# 一、 负外边居中

/* 省略了尺寸的设置,侧重了重点,读者可以把部分内容加上 */
.main{/* 父元素 */
  position: relative;
}
.child{/* 子元素 */
    position: absolute;
    top: 50%;
    left: 50%;
    margin-left: /* 负的自身宽度一半 */
    margin-top: /* 负的自身高度一半 */
}

698 1 分钟

1. 新建一个 sh 脚本(可以先建一个 txt 文本,然后改为 sh 文件)。 代码如下: #!/bin/bash#设置 mysql 备份目录folder=/**/**cd $folderday=`date +%Y%m%d`rm -rf $daymkdir $daycd $day#数据库服务器ip=IP地址#数据库端口号host=数据库端口#用户名user=root#密码password=数据库root的密码#要备份的数据库db=数据库名称#数据要保留的天数days=7mysqldump -h$ip -P$host -u$user -p$password $db>...
3.6k 3 分钟

# 1 引言 Immer 是最近火起来的一个项目,由 Mobx 作者 Mweststrate 研发。 了解 mobx 的同学可能会发现,Immer 就是更底层的 Mobx,它将 Mobx 特性发扬光大,得以结合到任何数据流框架,使用起来非常优雅。 # 2 概述 # 麻烦的 Immutable Immer 想解决的问题,是利用元编程简化 Immutable 使用的复杂度。举个例子,我们写一个纯函数: const addProducts = products => { const cloneProducts = products.slice()...
6.7k 6 分钟

# 前言

Immer 是 mobx 的作者写的一个 immutable 库,核心实现是利用 ES6 的 proxy,几乎以最小的成本实现了 js 的不可变数据结构,简单易用、体量小巧、设计巧妙,满足了我们对 JS 不可变数据结构的需求。
无奈网络上完善的文档实在太少,所以自己写了一份,本篇文章以贴近实战的思路和流程,对 Immer 进行了全面的讲解。