0

手写 Promise

前言都 2020 年了,Promise 大家肯定都在用了,但是估计很多人对其原理还是一知半解,今天就让我们一起实现一个符合 PromiseA+ 规范的 Promise。附 PromiseA+ 规范地址: https://promisesaplus.com/简单版我们都知道 Promise 的调用方式,new Promise(executor), executor 两个参数,resolve,reject。所以现在我们的代码长这样class Promise { constructor(executor) { const resolve = () => {} ...

阅读全文>>

0

Unable to preventDefault inside passive event listener due to target being treated as passive.

在Chrome下调试时,忽然发现有一个错误日志,日志信息如下: Unable to preventDefault inside passive event listener due to target being treated as passive. 所有的操作好像都是正常的,但为什么还出现这样的错误提示呢。虽然不影响使用,但还是不想放过任何一个问题。 翻译一下:chrome 监听touch类事件报错:无法被动侦听事件preventDefault,是新版本chrome 浏览器报错。 说明:说一下这个 preventDefault()是个什么鬼,这个是取消默认事件的,...

阅读全文>>

0

这一款开源免费的富文本编辑器,是值得推荐的——Quill

介绍Quill是一个所见即所得的富文本编辑器,是一个集兼容性和可扩展性于一体的优秀编辑器,Githubhttps://github.com/quilljs/quillQuill特点开发友好通过简单的API可以细粒度地访问编辑器的内容,更改和事件。使用JSON作为输入和输出一致且确定性的工作兼容性好支持台式机,平板电脑和手机上的所有现代浏览器。体验相同的一致行为,并跨平台生成HTML。自定义内容和格式在过去,评估富文本编辑器就像比较所需格式的清单一样简单。一个好的RTF编辑器的标志就是它支持多少种格式。虽然这很重要,但是如果能够自定义内容和格式,那其扩展性将是无限的。使用方便所有这些好处都包含在...

阅读全文>>

0

理解JavaScript中的浅拷贝与深拷贝

浅拷贝在使用JavaScript对数组进行操作的时候,如果只是简单的将它赋予其他变量,那么我们只要更改其中的任何一个,然后其他的也会跟着改变,这就导致了问题的发生var arr = ['aa','bb','cc'];var arr2 = arr;arr2[0] = '新来的';console.log(arr);//输出 '新来的','bb','cc'由此可见对数组arr2进行修改时,而arr内数据也会随之改变。这种直接赋值的方式就是浅拷贝现象。那到底是为什么呢?因为JavaScript存储对象都是存地址的,所以浅复制会导致 arr 和 arr2 指向同一块内存地址,大概的示意图如下。所以当修改...

阅读全文>>

0

Vue中Axios封装API接口的思路及方法

一、axios的封装在vue项目中,和后台交互获取数据这块,我们通常使用的是axios库,它是基于promise的http库,可运行在浏览器端和node.js中。他有很多优秀的特性,例如拦截请求和响应、取消请求、转换json、客户端防御XSRF等。在一个项目中我们如果要使用很多接口的话,总不能在每个页面都写满了.get()或者.post()吧?所以我们就要自己手动封装一个全局的Axios网络模块,这样的话就既方便也会使代码量不那么冗余。安装> npm install axios //这个就是安装axios的命令1首先我们要现在项目中安装Axios组件,这一步是一定的。下载好了以后,就在...

阅读全文>>

0

JavaScript对于页面适配,你应该使用px还是rem

css中的单位很多,%、px、em、rem,以及比较新的vw、vh等。每个单位都有特定的用途,比如当需要设置一个矩形的宽高比为16:9,并且随屏幕宽度自适应时,除了用%,其他单位是很难做到的。所以不存在说某个单位是错误的,某个单位是最好的这种说法。那本文说的页面适配,指的是同样的布局,在不同大小的屏幕上怎么进行缩放、控制间距、宽高、字号等大小。页面适配的方式有很多:使用px,结合Media Query进行阶梯式的适配;使用%,按百分比自适应布局;使用rem,结合html元素的font-size来根据屏幕宽度适配;使用vw、vh,直接根据视口宽高适配。在这些大前提下,还需针对一些小的细节做微调。...

阅读全文>>

0

The canvas has been tainted by cross-origin data

在前端调试canvas时,出现下面这个错误: Uncaught DOMException: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The canvas has been tainted by cross-origin data. at getImage (http://canvas/:400:39) at Image.localTest (http://canvas/:351:9) 字面翻译为“未能执行‘getImageData‘方法,由于这个canvas已经被污染了”。在...

阅读全文>>

1

Vue3.0正式版他来l!Vue3.0 One Piece

Vue3.0的发布,其背后的辛酸曲折只有真爱粉才知道,前前后后2000多次的提交,600余次的项目评审,各种各样的beta测试版本。终于,我们的尤神(Vue.js作者尤雨溪)和社区大神坚持不懈,带来了船新版本——Vue.js 3.0 OnePiece(路飞冲冲冲!)。 本文只做简单分析,但是已经有大牛在研究这诞生的One Piece了,可以与他一起讨论:图片来源于网络,如有侵权,请联络作者!来看看更新的重磅内容吧?Vue组件 Teleporthttps://v3.vuejs.org/guide/teleport.htmlVue Treeshaking的全新APIhttps://v3.vuejs...

阅读全文>>

0

sparrow-js·场景化低代码搭建·编辑区块篇

前言sparrow-js 提供两个重要提升研发效率的设计:一个是编辑区块,一个是搜索组件,本次主要介绍编辑区块部分的设计思路;采用自问自答的方式说明编辑区块的由来。编辑区块是什么?特定场景功能的代码片段,通过基础组件和有特定功能的逻辑组件组合而成,可增删改;可生成可读性强的源代码。为什么会有编辑区块?编辑区块是为sparrow-js的核心目标提效量身定做的,sparrow本身有基本可视化搭建的能力,但是通用的可视化方案提效能力有限,可能只是基础组件的拼接,操作繁杂,输出的代码更侧重UI层面的代码。前端开发由UI部分和逻辑部分组成,UI部分通过基础组件的可视化搭建就可以完成,逻辑部分比如表单上面...

阅读全文>>

0

基于 Vue+Antd 拖放表单构建器KFormDesign

前几天有给大家分享一个Vue可视化设计器。今天继续推荐一款超不错的Vue拖拽表单设计器K-Form-Design。Vue可视化在线制作平台GodsPenk-form-design 基于 vue.js+ant-design 构建的表单设计器。在线快速生成配置表单。支持自定义属性配置、生成JSON及代码。功能特性可视化配置页面提供栅格、表格等布局布局嵌套使用提供预览、保存、生成json、生成可执行代码等操作支持表单验证快速获取表单数据自定义组件插入自定义主题色组件KFormDesign 表单设计器(基于可视化操作快速设计出表单页面,生成配置json或页面)KFormBuild 表单构建器(根据设计...

阅读全文>>