
个人总结
文章平均质量分 75
可乐少点冰
这个作者很懒,什么都没留下…
展开
-
Tree-shaking
和传统的dead code elimination(DCE)区别为传统DCE消除不可能执行的代码,tree-shaking更关注消除没有用到的代码。基于作用域,在AST时对韩素或全局对象进行对象记录,然后在形成的整个作用域链对象中进行匹配import的导入并标识起来,最后打包匹配的代码,删除未匹配的。通过ES Module的特性可以进行静态分析的特点,在编译时进行静态分析导入导出关系,识别出无用代码进行剔除。从入口文件出发,找出所有读取的变量,找这些变量在哪里定义的,将定义语句包含进来,无关代码抛弃。原创 2022-10-17 17:42:15 · 1093 阅读 · 0 评论 -
Babel处理代码初探
系列文章目录一文搞定babel转换文章目录系列文章目录前言二、使用步骤1.引入库2.读入数据2.获取当前节点3.修改节点4.生成代码并输出总结前言babel让你可以对代码进行为所欲为操作,以下为记录babel的初始尝试处理api接口文件生成适合批量录入菜单权限的结构转换前转换后将注释的安装配置_autoAssign 分为[title]_[key]两部分# 一、Babel是什么?Babel 是JS编译器,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 Ja原创 2020-12-03 17:04:49 · 490 阅读 · 0 评论 -
前端异常处理
捕获异常js同步异常js异步异常资源加载异常Promise异常try…catch…√√window.onerror√√window.addEventListener(‘error’)√window.addEventListener(‘unhandledrejection’)√try catch捕获当前调用栈中的错误,因此无法捕获异步异常(抛出错误时try catch调用栈已经执行完毕退出。同时捕获后,异常不会向上继续抛出 ...原创 2020-08-11 18:33:25 · 219 阅读 · 0 评论 -
通过二进制获取图片格式以及宽高
通过把文件的二进制数据转为16进制字符转再进行相应的判断获取图片格式以及宽高等二进制转字符串通过readAsBinaryString转换blob对象为二进制字符串通过charCodeAt转换二进制字符串为Unicode码将Unicode码转换为16进制async blobToString(blob){ return new Promise(resolve=>{ const reader = new FileReader() reader.o.原创 2020-07-14 18:45:38 · 3152 阅读 · 1 评论 -
记一次web性能优化实战
效果展示优化前优化后可以看到优化前有明显的延迟,详细信息才出现。优化后详细信息基本秒现。问题分析出现数据显示有明显的延时的情况,我们分析大方向可能有接口缓慢网络问题前端问题渲染问题:渲染节点过多、重排、重绘等js阻塞页面渲染原因定位1、查看network最大值784ms,因此可以排除接口和网络问题2、使用performance记录一次过程可以看到js耗费将近14s。此处可能由于performance记录需插入很多记录钩子所以比正常范围时间耗费要放大很原创 2020-05-12 17:26:25 · 290 阅读 · 0 评论 -
css层叠上下文和层叠水平
页面中当元素发生层叠时如何显示。为何有的元素明明写在后面却被前者覆盖住了?为何z-index设置很大了,还是不显示?这些涉及到css中的层叠上下文,层叠水平等层叠上下文类似块级格式化上下文,是一个封闭的空间,用来限制内部元素的层叠水平在当前范围活动的。在同一个层叠上下文中,(元素、层叠上下文)的层叠水平按一定的规则排序、显示。创建方式: 根层叠上下文 天生就具有的 z-index...原创 2020-03-20 09:59:34 · 325 阅读 · 0 评论 -
强类型转换
字符串与数字的隐式强类型转换ES5规范11.6.1节,如果某操作数是字符串或者能够通过以下步骤转换为字符串的话,+将进行拼接操作。如果其中一个操作数为对象(包括数组),则先调用ToPrimitive抽象操作,该操作在调用[[DefaultValue]],以数字作为上下文。ToPrimitive先调用valueOf(),再Tostring转换为字符串String()直接调用Tost...原创 2020-03-11 18:16:21 · 272 阅读 · 0 评论 -
使用vue-cli3搭建typescript移动端
安装vuecli3npm install -g @vue/cli# ORyarn global add @vue/cli创建项目vue create project-typescript手动选择特性选择babel、ts、router、vuex、css预编译器这里我们使用基于类的组件选择sass编译器eslint规则独立的配置文件配置在App.vue中新增路...原创 2020-01-08 16:44:28 · 435 阅读 · 0 评论 -
js运行流程
js引擎处理js的过程同传统编译语言的代码编译大致相同文章目录流程预编译阶段声明提升let、const阻止提升的原因LHS与RHS查找类型流程步骤传统编译语言JS引擎1词法/语法分析词/语法分析2解析生成AST解析生成AST3代码生成预编译4执行执行预编译阶段js代码是运行时编译(编译发生在代码执行前几微秒),即预编译完立即...原创 2019-08-29 10:11:44 · 749 阅读 · 0 评论 -
Javascript函数参数传递
js中所有函数参数传递都是值传递堆内存和栈内存栈内存为自动分配的内存空间,它由系统自动释放;堆内存则是动态分配的内存,大小不定也不会自动释放。js数据类型值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol(es6新增)。引用数据类型:对象(Object)、数组(Array)、函数...原创 2019-03-08 10:18:06 · 643 阅读 · 0 评论 -
栈(堆栈)、队列与数组、链表的关系与区分
数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合。数据存储结构:它是计算机的一个概念,简单讲,就是描述数据在计算机中存储方式的学科;常用的数据存储 方式就两种:顺序存储,非顺序存储!数据结构之栈、队列栈也可以称为堆栈是一种先进后出的数据结构 js中的实现Array.push()、Array.pop()队列是一种先进先出的数据结构 js中的实现Array.push()、...原创 2019-04-01 21:48:03 · 2094 阅读 · 0 评论 -
百度OCR识别手写签名识别率不高解决
文章目录手写接口使用识别率相关示例相关资源手写接口使用1、按操作手册申请服务拿到key2、获取token3、function getWord(img){ var data = { "image": img } console.log(data) axios.post('h...原创 2018-12-03 17:17:41 · 7167 阅读 · 1 评论 -
CSS规范化oocss、BEM、SMAcss
oocss尽可能的抽离出共用的css,一个类中写多个样式变为一个类对应一个样式 .block{ float:left; color:red; } // 变为 .float-left{ float:left; } .warning{ color:red; }BEM(Block,Element,Modifier)Block(块) Element(元素) Modifie...原创 2018-11-28 17:44:37 · 448 阅读 · 0 评论 -
JS 获取url参数以及中文乱码问题
encodeURI() 函数可把字符串作为 URI 进行编码获取请求url中参数 http://a.com/index.html?name=名称&type=类型var para=window.location.search;// 当前请求的url的参数部分console.log(para) // 结果 ?name=%E5%90%8D%E7%A7%B0&type=%E7...原创 2018-10-25 16:13:07 · 16306 阅读 · 1 评论 -
js函数柯里化
定义柯里化,也称为局部套用,是把多参函数转换为一系列单参函数并进行调用的技术。add(4,5)=>add(4)(5)作用降低通用性、提高适用性 编码中表现形式为 参数复用、提前返回、延时执行编写一个curryfunction curry(fun,args){ var length=fun.length; // 函数fun的参数个数 ...原创 2018-07-17 19:41:44 · 1849 阅读 · 0 评论 -
onprogress无法触发解决
在上传文件时要做进度显示 需要用到xhr.upload.onprogress事件,此时如果用到mock.js模拟数据的话 则无法触发onprogress事件 原因: mockjs会重新声明一个XMLHttpRequest导致el-upload的progress失效...原创 2018-07-17 11:58:51 · 10198 阅读 · 1 评论 -
vue登录验证
思路:前端验证1、路由meta中保存是否需认证字段// meta:{// requireAuth:true //需要登录验证// },2、使用vue-router的全局前置守卫进入路由前判断该路由是否需要登录验证router.beforeEach((to,from,next)=>{ if(to.meta.requireAuth){ //是否需要登录权限 ......原创 2018-03-27 20:43:11 · 7228 阅读 · 0 评论 -
Vue.js的初步使用
Vue.js的初步使用领导布置了一个新任务,这次尝试着前端使用bootstrap+vue.js后端用thinkphp5进行开发。页面的样式布局直接使用的模板之家下载的bootstrap模板,因为没啥美感,还是直接下载使用来的快。接下来是正式部分vue的使用:在html头文件部分在线引入vue.js <script src="https://unpkg.com/vue/dist/vue.js">原创 2017-01-04 17:05:41 · 6462 阅读 · 1 评论 -
centos7 部署seafile注意事项
1.使用mariadb1.使用yum安装mariadb后需要启动服务 systemctl start mariadb.service systemctl start mariadb.service 2.修改root密码 mysqladmin -u root -p password不能带.如pass.1232.若要修改seafile data dir目录路径,需要提前创建好目原创 2017-01-09 15:33:32 · 3719 阅读 · 0 评论 -
git的使用
1.设置代理a.局部设置 git config http.proxy http://username:password@127.0.0.1:8088b.全局设置 git config --global http.proxy http://username:password@127.0.0.1:80882.git命令 a.建仓库 git in原创 2017-01-12 17:14:50 · 391 阅读 · 0 评论 -
Thinkphp5 Auth权限认证
auth类在thinkphp类库里是原本就有的,thinkphp5里没了,这里是将其修改为thinkphp5适用auth类的特点是/** * 权限认证类 * 功能特性: * 1,是对规则进行认证,不是对节点进行认证。用户可以把节点当作规则名称实现对节点进行认证。 * $auth=new Auth(); $auth->check('规则名称',原创 2017-02-15 16:32:07 · 13400 阅读 · 0 评论 -
vue父子组件简单通信
a.vue父组件中..import Bus from "bus.js"//引入中间vueexport defaul{...// 在组件 A 创建的钩子中监听事件bus.$on('id-selected', function (id) { // ...})...} b.vue 子组件中..import Bus from "bus.js"//引入中间vue原创 2017-03-17 12:07:06 · 317 阅读 · 0 评论 -
Tp5使用小记
1.thinkphp5做api接口时 返回请求请求头,状态等设置return json($data=array('status' => 1, 'token' => $token,'request'=>request()->ip()),$code=200,$header=['Authorization'=>$token]);不设置请求头return json(array('status' =原创 2017-05-27 09:36:03 · 1667 阅读 · 0 评论 -
vue2.0 router遇到的问题
昨天按照教程安装好vue-router模块后,在应用中引入router 发现没有router.map方法,百度后原来是vue2.0里的路由改了// 1. 定义(路由)组件。// 可以从其他文件 import 进来const Foo = { template: 'foo' }const Bar = { template: 'bar' }// 2. 定义路由// 每个路由应该映射一个组件。原创 2017-02-09 08:33:44 · 10217 阅读 · 0 评论 -
npm使用小记
npm 使用小结原创 2017-06-30 08:48:23 · 647 阅读 · 0 评论 -
Js面向对象的个人理解
JS对象理解1、 js对象就是键值对的集合2、 js里函数就是对象3、 普通函数function(对象) function function_name(argument) { // body...}4. 构造函数就是普通函数多了this(构造函数生成的对象)function function_name(argument) { this.name=argument this.原创 2017-06-22 17:17:26 · 391 阅读 · 0 评论 -
使用OpCacheGUI可视化管理opcache
OpCacheGUI原项目地址使用说明下载文件代码下载地址并放置在public目录下app public opcachegui publicsrc/OpCacheGUIsupport…index.php…连接到当前文件<a href="/opcachegui/public">原创 2017-06-30 08:44:00 · 1295 阅读 · 0 评论 -
问题杂记-Vue父子组件传值(ElementUI-Dialog)
1.vue父子组件使用props传值时props数组里用驼峰命名转到父组件使用时会需变更为短横线分割命名即 myData=>my-data2.sync语法糖 :data.sync="val"=> :data @update:data="newval=>val=newval" 触发父组件更新值时使用驼峰命名 3.子组件中使用element.ui组件中的dialog组件后,通过父组件...原创 2018-03-19 21:57:45 · 8968 阅读 · 0 评论 -
问题杂记-Vue组件中使用地址引入图片
一般我们在html 和css文件中需要用到图片时直接使用相对路径即可。如<img src="@/img/img1.png"/> background="url(@/img/img1.png)"但在vue中style中这样使用会出错,找不到文件。template模板中既可以使用相对路径,也可以使用别名@ style中可以使用相对路径 不能使用webpack中配置的路径别名解决方法:1....原创 2018-03-21 23:32:53 · 5440 阅读 · 1 评论 -
Vue父子组件钩子函数
vue父子组件钩子函数触发顺序beforeMount后mounted前构造子组件 依次遍历 beforeCreate-父组件created-父组件beforeMount-父组件beforeCreate-子组件created-子组件beforeMount-子组件beforeCreate-次子组件created-次子组件beforeMount-次子组件mounted-次子组件...原创 2018-01-18 10:24:07 · 1408 阅读 · 1 评论 -
linux部署thinkphp5小结
使用替换inkphp5框架的课程签到系统在win7上部署测试成功,在迁移到linux时遇到的几个问题php未安装GD库,在生成二维码时报错,通过yum直接安装GD库并修改相关配置增加扩展后发现仍安装不上phpinfo显示未安装扩展;解决方法:手动通过安装包进行编译安装上线后浏览器输入网址提示模块找不到,linux系统严格区分大小写,流浪器输入大写,模块名变为小写字母并报错;解决方法:将原创 2017-01-04 16:17:40 · 4892 阅读 · 0 评论