
JavaScript
糖同学前端er
这个作者很懒,什么都没留下…
展开
-
实现一个基于vue的简易icon库
实现一个通过页面批量上传svg源文件,进行转换后发布到npm仓库,前端按需引用,可以作为团队内部的一个icon库使用,ui在界面上上传,各个项目可以更新使用。原创 2022-07-18 14:28:43 · 842 阅读 · 1 评论 -
动态设置css变量和实现less中的darken函数
功能:读取pageConfig.json中的配色,刷新页面后修改元素的配色实现思路:用webpack的copyPlugin插件将pageConfig.json输出到项目根目录,在html模板中加载一个js,这个js需要实现在body上设置css变量,例如--base-color: #ff0000,并且将这份json文件保存在localstorage中,然后在less中在引用变量的地方设置成var(--base-color)遇到的问题:1. 如果之前的样式中包含rgba,就无法直接使用十六进制的色原创 2022-05-22 23:12:37 · 2320 阅读 · 0 评论 -
异步循环生成器
项目中遇到上传多张图片或者切片文件上传,如果需要上传完成后再继续上传下一部分,可以用异步循环生成器完成,简易demo如下:class GenCmp { async *generator(total) { let order = 0; while (order < total) { const data = await this.requestSomething(order); order++;原创 2021-03-16 17:20:59 · 224 阅读 · 0 评论 -
react之context、portals、HOC、render props
1.Context定义: 一种可以在组件之间共享值的方式,不必显示通过组件树逐层传递props。用法: 使用React.createContext创建一个context,再使用Provider将值传递给子组件,在子组件中指定contextType=创建的context,React 会往上找到最近的 theme Provider,使用时通过this.context即可获取...原创 2019-11-12 15:56:13 · 344 阅读 · 0 评论 -
数组迭代方法polyfill
参考https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/ArrayArray.prototype.forEach描述:为数组中的每个元素执行一次回调函数。特点:不直接改变原数组返回 undefined不可链式调用不可中止或跳出循环,除非抛出异常使用:// c...原创 2019-09-11 10:50:37 · 345 阅读 · 0 评论 -
JavaScript设计模式与开发实践笔记(1)
单例模式定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。应用:只存在一个的浮窗(登录浮窗)、只绑定一次的事件、创建唯一实例对象。实现原理:用变量标志当前是否为某个类创建过对象,如果有,在下一次获取该类的实例时,返回之前创建的对象。实现 :把全局变量当做单例来使用,但是要减少全局变量的使用,相对降低全局变量带来的命名污染。使用命名空间对象字面量const name...原创 2019-06-12 11:12:18 · 202 阅读 · 0 评论 -
vue-cli+ts+iview单多页面的配置实践
简介实现效果:常见的后台管理系统的 demo。地址:https://github.com/MaTonna/vue-cli-ts-ivew项目启动安装依赖npm i项目启动npm run servehttp://127.0.0.1:3000/page1/index1/contentCenter2 是单页面的类似后台管理的页面,同时这个系统配置了多页面的http://127.0....原创 2019-06-17 19:51:18 · 2512 阅读 · 1 评论 -
H5的rem适配方案
在公共的js中加上一下代码,动态计算根节点的font-size,以便rem计算倍数。(function(doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize', //750 为设计稿宽度 适配...原创 2019-03-21 10:19:17 · 2206 阅读 · 0 评论 -
封装调用接口的函数,返回接口的返回值
封装公共函数的 js:publicFunc.jsconst getData = () => { return new Promise((resolve) => { axios.get(url,param) .then((req) => { const data = req; //接口返回值做处理 resolve(da...原创 2019-03-01 15:19:06 · 4328 阅读 · 2 评论 -
redux简易demo
demo 简介通过组件的事件改变 store 中的 state 值,进而改变视图,同时通过调用接口来渲染数据。地址:https://github.com/MaTonna/demoForRedux使用的依赖react-redux:管理 react 当中的 state,创建一个集中管理的 storeredux-thunk: redux 的中间件,使 action 返回一个函数,组件派发事件时...原创 2018-11-22 15:26:08 · 1902 阅读 · 0 评论 -
【读书笔记】《高性能JavaScript》
第一章-加载和执行js的阻塞特性:当浏览器在执行js代码的时候,不能同时做其他事情。(界面ui线程和js线程用的是同一进程,所以js执行越久,网页的响应时间越长。)脚本的位置如果把脚本放在中,页面会等js文件全部下载并执行完成后才开始渲染,在这些文件下载和执行的过程中:会导致访问网站的时候有明显的延迟,表现为:页面空白。性能提升:推荐将所有的标签尽可能的放到标签的底部,优先渲染页面,减少页面空白时转载 2018-01-19 11:01:15 · 204 阅读 · 0 评论 -
移动端点击300ms延迟问题和解决
一、移动端300ms点击延迟一般情况下,如果没有经过特殊处理,移动端浏览器在派发点击事件的时候,通常会出现300ms左右的延迟。也就是说,当我们点击页面的时候移动端浏览器并不是立即作出反应,而是会等上一小会儿才会出现点击的效果。在移动WEB兴起的初期,用户对300ms的延迟感觉不明显。但是,随着用户对交互体验的要求越来越高,现今,移动端300ms的点击延迟逐渐变得明显而无法忍受。转载 2017-12-13 18:29:31 · 618 阅读 · 0 评论 -
js-循环的方法
概念区别循环(loop),指的是在满足条件的情况下,重复执行同一段代码。比如,while语句。(循环能对应集合,列表,数组等,也能对执行代码进行操作。)迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项。比如,for语句。(迭代只能对应集合,列表,数组等。不能对执行代码进行迭代。)遍历(traversal),指的是按照一定的规则访问树形结构中的每个节点,而且每个节点都只访问一原创 2017-09-22 15:42:54 · 755 阅读 · 0 评论 -
拜读jquery源码(一)
之前有前辈和我说学习JavaScript的知识点,尤其是比较抽象和深奥的点,可以看下优秀的框架源码,所以今天开始拜读jquery的源码,不仅是巩固jquery的用法和每个方法的实现,更重要的是学习框架的设计模式以及设计缘由。借鉴和参考别人的理解:jQuery的总体框架: (function(window,undefined){ var jQuery=function(sele原创 2017-03-08 16:12:58 · 670 阅读 · 0 评论 -
JavaScript高级程序设计笔记-JSON
JSON 是 JavaScript 的一个严格的子集,利用了 JavaScript中的一些模式来表示结构化数据。关于 JSON,最重要的是要理解它是一种数据格式,不是一种编程语言。虽然具有相同的语法形式,但 JSON 并不从属于 JavaScript。1.语法 JSON 的语法可以表示以下三种类型的值:简单值:使用与 JavaScript 相同的语法原创 2016-12-30 20:36:12 · 635 阅读 · 0 评论 -
JavaScript高级程序设计笔记-面向对象的编程
1.理解对象1.1属性类型数据属性:[[Configurable]] :表示能否通过 delete 删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性。像前面例子中那样直接在对象上定义的属性,它们的这个特性默认值为 true 。[[Enumerable]] :表示能否通过 for-in 循环返回属性。像前面例子中那样直接在对象上定义的属原创 2016-12-03 16:34:52 · 475 阅读 · 0 评论 -
JavaScript高级程序设计笔记-函数表达式
定义函数的方式:1.函数声明function functionName(arg0,arg1,arg2){ //函数体 } 特征:函数声明提前,在执行代码之前会读取函数声明,意味着可以把函数声明放在调用它的语句后面。2.函数表达式var funtionName = function(arg0,arg1,arg2){原创 2016-12-03 16:32:56 · 445 阅读 · 0 评论 -
JavaScript高级程序设计笔记-引用类型
引用类型的值(对象)是引用类型的一个实例,引用类型是一种数据结构,用于将数据和功能组织在一起,描述的是一类对象所具有的属性和方法。 对象是某个特定引用类型的实例,新对象是使用new操作符后跟一个构造函数来创建的。1.object类型创建object实例:1.使用new操作符后跟object构造函数var person = new Obj原创 2016-10-28 14:56:44 · 931 阅读 · 0 评论 -
JavaScript高级程序设计笔记-变量、作用域和内存问题
1.数据类型 基本类型值:简单的数据段,Undefined、Null、Boolean、Number和String,这五种基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值。 引用类型值:可能由多个值构成的对象,引用类型的值是保存在内存中的对象,JavaScript不允许直接访问内存中的位置,不能直接操作对象的内存空间,在操作对象时,实际上是在操作对原创 2016-10-28 11:45:51 · 420 阅读 · 0 评论