小工具记录
node 热更新工具nodemonhttps://www.npmjs.com/package/nodemon node版本管理工具https://github.com/nvm-sh/nvmhttps://github.com/coreybutler/nvm-windows/releaseshttps://github.com/tj/n npm 源管理工具 nrmhttps://github.com/Pana/nrm yarn resolutionshttps://classic.yarnpkg.com/en/docs/selective-version-resolutions/https://blog.csdn.net/qq_21567385/article/details/112644629https://blog.csdn.net/qq_21567385/article/details/113066012 把png/jpg转svg 的网站https://www.vectorizer.io/images/upload.html 把svg转iconfonthttps://icomoon ...
git 更改账户和密码
git报错 1fatal: Authentication failed for 'http://--.--.--.--:---/-/-.git/' 解决办法:执行如下命令,重置权限验证信息。 1git config --system --unset credential.helper 之后再输入clone的命令,git会弹出输入的账户和密码的窗口,重新输入一下就好啦~
uni-app 踩坑
H5端 uni-load-more 触底不刷新问题 uni-page标签 height不能写成100%,要写height: auto;. 微信小程序更改CheckBox样式12345678910111213141516/* #ifdef APP-PLUS || MP-WEIXIN */ checkbox .wx-checkbox-input{ border-radius: 50%; width: 30rpx; height: 30rpx; } checkbox .wx-checkbox-input.wx-checkbox-input-checked{ background-color: @theme; color: #FFFFFF !important; border-color: @theme; } checkbox .wx-checkbox-input.wx-checkbox-input-checked::before{ transform: translate(-50%,-50%) scale(.45); ...
链表删除(学习笔记)
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。1234567891011121314151617181920212223242526272829303132333435function ListNode(val) { this.val = val; this.next = null;}let node = { val: 1, next: { val: 1, next: { val: 2, next: { val: 3, next: { val: 4, next: null } } } }}const fn = function (node) { ...
less、sass换肤方案记录
前言现在换肤的场景越来越多,特此总结一下自己使用过切实可行的两种换肤方案,less和sass各一种,less配合的vue项目,sass配合的react项目;大体的思路都是一样的: 1.将主题会用到的颜色都使用变量定义;2.使用less/sassmixin和函数实现不同主题的颜色选取;3.在body上放一个用于区别主题的类名或者属性,通过动态更换这个类名,实现主题的切换; Less1.效果定义了两套主题:蓝色和橙色先看效果吧,把类名改为theme_blue切换为theme_orange主题直接就换掉啦~ 2.定义变量 定义变量; 定义了一个叫theme的mixin,把定义的变量传入mixin内部; theme.blue.less 12345678910111213141516171819202122232425262728293031323334353637383940414243//主题颜色 蓝@theme: #1989fa;@theme_to: #1989fa;@theme_black: #272b2e; // 官网黑// 渐变@linear: #1 ...
React.createContext( )
前言之前自己写demo项目的时候用到了React16新出的Context方法,确实是个好东西!避免忘记特此记录。其实官网上对Context的讲解已经很详细了,接下来就记录一下我自己对Context的理解和使用;好记性不如烂笔头,我相信这是一个好习惯~ 产生react组件之间(父传子)使用props来传递数据,子组件里面通过this.props就能拿到父级传来的值。一旦组件深度嵌套,数据又在顶级父级的身上,最末级组件用这些数据就要传递很多层,而且还有可能这些数据中间组件是完全用不到的。项目复杂度一上来,需要传的数据量也会越来越大,可想而知是多么的繁琐,子组件在调试数据时,找数据的来源也是个麻烦事! 12345678910111213// page 把 user avatarSize 传给PageLayout<Page user={user} avatarSize={avatarSize} />// PageLayout 再把 user avatarSize 传给NavigationBar<PageLayout user={ ...
reduce 与 reduceRight 与 compose
前言 reduce这个方法真的已经学习过很多次了,学了之后也很少用,又不记得了~ :joy:再来复习一遍。 reducearr.reduce(fn)的返回值是处理的结果;reduce 函数接收4个参数: Accumulator (acc) (累计器) Current Value (cur) (当前值) Current Index (idx) (当前索引) Source Array (src) (源数组) 12345678910111213141516let arr = [1, 2, 3, 4, 5, 6];/** * 对数据进行累加 * @param {*} acc 累计的值 * @param {*} item 数组的每一项数据 */let fn = function (acc, item) { return acc + item}let result = arr.reduce(fn); // 运行过程 1 + 2 + 3 + 4 + 5 + 6let result_1 = arr.reduce(fn, ...
create-react-app 创建项目更改webpack配置
前言使用create-react-app创建的项目webpack配置文件是隐藏起来的,如果想要把配置暴露出来更改,需要运行 npm run eject 命令。不过这种方法有两个缺点: npm run eject命名不可逆,一旦配置文件暴露后就不可再隐藏; 扩展的配置和create-react-app内建的webpack配置混合在了一起,不利于配置出现问题后的排查。 注意:还有craco也可做create-react-app 项目的webpack配置扩展,但是craco启动项目太慢了,放弃了~ react-app-rewired介绍 使用react-app-rewired这个npm包可以让我们在不改create-react-app本身的配置基础上去扩展配置,是个非常nice的工具。 使用1)安装npm安装: 1npm install customize-cra react-app-rewired --save-dev yarn安装: 1yarn add customize-cra react-app-rewired -D 2)在根目录中创建一个 config-overrides.js ...
链表(学习记录)
链表是什么 链表和数组相似,都是有序的列表,都是线性结构。 不同的是,数组在内存中是一段连续的内存空间,由此遍历数组是可以通过下标直接定位元素的,而链表是离散的内存,可能散播在内存的各个角落,所以链表之间需要通过一个关联把前后节点连接起来,就像用线串珠子一样,需要把珠子一个一个的串起来; 在链表中一个元素称为结点,结点中包括数据域(珠子)和指针域(线); 123456789{ // 数据域 val: 1, // 指针域,指向下一个结点 next: { val:2, next: ... }} 数据域存着这个结点的数据值,而指针域则代表着下一个结点的引用,这样就知道下一个结点是谁啦! 创建链表创建链表需要借助一个构造函数 1234567function ListNode(val){ this.val = val; // 数据域 this.next = null; // 指针域}let node = new ListNode(1);node.next = ...
includes与indexOf
includes和indexOf都是用来检测数组或者字符串中是否包含某元素的方法,includes是ES6的。 indexOf indexOf 这个方法对大小写敏感,不能是indexof; 入参有两个:要查找的元素、开始查找的下标(可以不传); 查找的元素存在,返回第一个满足条件的索引,后面的就不会管了; 查找的元素不存在,返回 -1; 特殊点:对数组中查询 NaN 是无效的; 123456789101112131415let arr = ['as', 'ab', 'test','ab'];let arrRes = arr.indexOf('ab', 0); // 从下标0开始查找,是否含有'as',有则返回找到第一个匹配元素的索引let arrRes1 = arr.indexOf('lala', 0); // 从下标0开始查找,是否含有'lala',没有返回 -1console.log(arrRes, arrR ...