- 博客(109)
- 资源 (2)
- 收藏
- 关注
原创 手写小程序摇树优化工具(九)——删除业务组代码
第三章我们遍历json的时候有介绍过通过groupName和replaceComponents来取代对应的业务组件来解决大公司复杂逻辑共用导致的超包问题。这很好,现在我要实现一个更加高级的功能,来达到精细化的控制业务代码的程度。这主要是为了解决超级复杂项目的问题,一般的小项目用不到。
2022-11-22 16:12:40
416
原创 微信小程序源码压缩探索
微信小程序主包具有2M的最大限制,因此压缩程序源码成为一个优化的可能。下面是一些探索的结论以及为解决问题而做的一些方案。1. 一个结论先说一个结论:压缩JS文件和WXSS文件对于缩小主包体积是没有作用的,js和wxss文件的确是源码中最大的两个部分,但是小程序开发工具在打包上传的时候可以设置自动压缩这两部分,因此我们不必做多余的动作(实验发现做了也是无用的)。2. 压缩WXMLWXML的压缩和单纯的HTML压缩有两个主要的不同点:WXML里面可能存在WXS脚本,而WXS的处理不同于WXML的处
2021-08-03 17:29:44
3036
原创 Expected linebreaks to be ‘LF‘ but found ‘CRLF‘
window的IDE上经常会有换行符的错误,更换了IDE的换行符以后也不管用,这是因为在window上git拉取代码的时候默认把文件的换行符都转化为了CRLF,所以要解决这个问题需要做两步:禁用git的默认转化功能。设置IDE的默认换行符。1. 禁用git的默认转化功能在命令行工具执行以下命令// 禁用转化git config --global core.autocrlf falsegit config --global core.filemode false// 拒绝提交包含混合换行符
2021-02-02 11:11:06
2791
原创 vue组件transition没有把动画类应用到dom问题
遇到一个vue内建组件transition 没有把相应的动画类添加到根节点上的问题,经折腾发现组件transition生效有两个必要条件
2021-02-01 15:53:42
688
原创 你不知道的css3伪类的匹配方式
css3的伪类(如:`frist-child`, `first-type-of`)有一些特别容易让人忽视但又特别重要的特性,我认为只有理解了这些东西才能真正的理解伪类。
2021-01-11 17:37:41
306
2
原创 git常用命令
1、fix npm vulnerabilities检测漏洞npm audit修复漏洞npm audit fix修复tar包漏洞npm install -D node-gypnpm install -D tar@">4.4.7"
2020-04-13 19:45:41
341
翻译 探索Angular DOM操作技术
每当我读到关于Angular DOM操作的的文章时总是看到这些类被提到:`ElementRef`, `TemplateRef`,` ViewContainerRef`等等。不幸的是,尽管其中一些内容已在Angular文档或相关文章中介绍,但我还没找到对它们整体模型的介绍以及它们如何协同工作的示例,本文旨在描述这种模型。
2019-12-03 17:09:51
551
翻译 您需要了解有关"ExpressionChangedAfterItHasBeenCheckedError"错误的所有信息
最近在stackoverflow上几乎每天都有关于`ExpressionChangedAfterItHasBeenCheckedError`的提问,通常提出这些问题是因为Angular开发人员不了解更改检测的工作原理,以及为什么检查产生这个错误是必须的。许多开发人员甚至将其视为错误。但这当然不是。这是一种警告机制,可防止模型数据与UI之间出现不一致,以免在页面上向用户显示错误或旧数据。
2019-12-02 17:18:09
884
翻译 你需要了解的有关Angular中变更检测的所有信息
如果你像我一样想要全面了解Angular中的的变更检测机制,则必须探索资源,因为网络上没有太多可用的信息。大多数文章提到每个组件都有其自己的变更检测器,该检查器负责检查该组件,但是它们并没有深入下去,并且大多数主要聚焦于引用不可变性和变更检测策略。本文为您提供所需的信息来了解为什么用例immutables起作用和改变检测策略会如何影响检查。另外,从本文中学到的内容将使您能够自己提出各种方案来进行性能优化。
2019-11-30 17:03:43
506
翻译 深入了解Angular中的变更检测如何帮助我提高应用程序的性能
使用Angular框架开发Web应用程序时,我们很少考虑性能影响。Angular旨在快速发展,总的来说使我们摆脱了性能调试的麻烦,因此我们最终失去了对“性能优先”开发实践的控制。随着我们的应用程序的增长以及我们添加业务逻辑的各层,我们可能会面临性能指标的下降,最终会导致整体用户体验的下降。我将主要关注运行时性能以及在生产Web应用程序中进行改进的尝试。1. 一个非常繁忙的app让我解释一下我遇...
2019-11-25 23:57:40
637
翻译 OnPush组件中NgDoCheck和AsyncPipe之间的区别
这篇文章由推特上的一个人提出的问题而引出:使用`NgDoCheck`生命周期钩子手动比较值来代替推荐的`async`管道方式是否具有意义?这是一个很好的问题。这篇文章将首先展示如何进行手动变更检测,一旦我们拥有了这些知识,然后我们将讨论这两种解决方案的性能影响。
2019-11-25 00:13:16
336
原创 终端常用操作命令集
1、npm命令集// 查看帮助npm -l// 查看全局安装包npm list -g --depth 0// 了解哪些包需要更新npm outdated -g --depth=0// 全局安装npm install -g <package>// 全局卸载npm uninstall -g <package>// 更新全部npm update -g//...
2019-10-13 18:58:50
785
转载 Safari输入框input使用line-height文字不居中问题
测试中出现的问题,Safari输入input文本框有设置padding时,css样式设置 line-heigh t与 height等高,并不能使提示文本垂直居中,如下:padding: 4px 5px;height: 32px;line-height: 32px;解决方案一:使用padding使提示文字居中,如果font-size:14px,UI高度为40px,我们可以设height:...
2019-10-11 17:42:35
1124
原创 火狐浏览器flex布局height: 100%和overflow问题解决方案
事情描述:希望有一个页面布局,头部高度不动,内容区域可以随着外围区域变化自动填充剩余的空间,在内容区域内有一个滚动的div可以自适应内容区域的高度。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title&g...
2019-10-11 16:01:26
2156
1
原创 异步函数Async(es2017)
ECMAScript 2017 定义了以下几个特性:主要新功能:异步函数Async共享内存和原子次要新功能Object.entries()和Object.values()新的字符串方法:padStart和padEndObject.getOwnPropertyDescriptors()函数参数列表和调用中的尾随逗号本届主要介绍异步函数1.简介1.1 变体异步函...
2019-07-20 15:47:26
856
原创 ECMAScript 2016
ECMAScript 2016引进了两个新的特性- Array.prototype.includes- 幂运算符(**)
2019-07-05 10:32:28
408
原创 Jasmine教程(二)Namespaces
jasmine定义了4个名字空间,每个名字空间下定义了不同的方法或者变量。使用相应名字空间下的方法可以配置jasmine或者断言测试。jasminematchersasync-matchersSpy#calls1、Namespace: jasmine这里只列举来一些常用的方法或变量,详情请参看:Namespace: jasmineaddCustomEqualityTester(...
2019-05-23 11:22:58
630
原创 最新Karma4.0安装和使用
Karma本质上是一个Web服务器的工具,该服务器针对连接的每个浏览器执行测试源代码,检查每个浏览器的测试结果然后通过命令行显示给开发人员,以便他们可以看到哪些浏览器通过了测试或者没有通过测试。
2019-05-21 15:44:19
905
原创 完全解决方案Content-Type设为application/x-www-form-urlencoded服务器端拿不到数据问题
问题描述在自定义Ajax请求时,想使用表单的方式发送post请求,发现后台获取不到数据,查看jquery源码发现,这是因为当Content-Type设为application/x-ww...
2019-03-14 11:18:15
10918
原创 最新brew安装nvm报nvm command not found解决方案
试了很多方法都不行,最后在stackoverflow上找到了解决方案,完美解决了这个问题,这是因为在brew安装nvm时没有创建他的工作目录。你应该创建nvm的工作目录如果它不存在的话:mkdir ~/.nvm然后在~/.bash_profile中加入并保存。(如果此文件不存在你应该创建一个)export NVM_DIR="$HOME/.nvm" . "/usr/local...
2019-02-26 23:22:35
5242
3
原创 在angularJS1.x中使用@NgModule装饰器
ng1-module-decorator我们都知道Angular2结合TypeScript使用@NgModule装饰器装饰模块是非常方便的,而在angular1.x中我们只能使用angular.module().xxxx来进行模块的组合,如果一个模块的功能非常多,这样写会是非常令人苦恼且不易维护的。幸而在ES6诞生之后,语言本身提供了装饰器的功能,虽然没有typescript那么强大,却也能满...
2019-02-08 13:05:42
476
原创 Excel转百度坐标系(AngularJS)
最近由于公司要在百度地图和Echarts上展示几千个地理位置,但是老大给我的却是一份几千条中文地址的excel表格,刚开始的时候打算新建一个数组进行遍历,在输入了10几个数据之后我放弃了,估计光输入就要花一两天,更不要说还要经常统计哪个省份或者城市的数据,这是非常耗时且不易维护的一种解决方案。后来又打算做一个数据库服务器,但是又被我否决了,花的时间估计不比新建数组少。所以决定自己做一个自动转化ex...
2019-02-08 12:56:02
469
原创 微信公众号开发(十二)OAuth2.0网页授权
OAuth允许用户提供一个令牌,而不是用户名和密码来访问它们存放在特定服务器上的数据,每一个令牌授权一个特定的网站在特定时段内访问特定的资源。授权过程如下:1、引导用户进入授权页面同意授权,获取code2、通过code换取网页授权access_token(与基础支持中的access_token不同)3、如果需要,开发者可以刷新网页授权access_token,避免过期...
2017-09-17 09:38:16
12665
4
原创 微信公众号开发(十一)生成带参数二维码
公众平台提供了生成带参数二维码的接口。使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送。目前有2种类型的二维码:1、临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期,但能够生成较多数量。临时二维码主要用于帐号绑定等不要求二维码永久保存的业务场景2、永久二维码,是无过期时间的,但数量较少(目前为最多10万个)...
2017-09-16 14:23:07
52811
6
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人