- 如果以前问我ES5的继承和ES6的继承有什么区别,我一定会自信的说没有区别,不过是语法糖而已,充其量也就是写法有区别,但是现在我会假装思考一下,然后说虽然只是语法糖,但也是有点小区别的,那么具体有什么区别呢,不要走开,下文更精彩!本文会先回顾一下ES5的寄生组合式继承的实现,然后再看一下ES6的写法,最后根据Babel的编译结果来看一下到底有什么区别。 ES5:寄生组合式继承js有很多种继承... 如果以前问我ES5的继承和ES6的继承有什么区别,我一定会自信的说没有区别,不过是语法糖而已,充其量也就是写法有区别,但是现在我会假装思考一下,然后说虽然只是语法糖,但也是有点小区别的,那么具体有什么区别呢,不要走开,下文更精彩!本文会先回顾一下ES5的寄生组合式继承的实现,然后再看一下ES6的写法,最后根据Babel的编译结果来看一下到底有什么区别。 ES5:寄生组合式继承js有很多种继承...
- 我司的APP是一个典型的混合开发APP,内嵌的都是前端页面,前端页面要做到和原生的效果相似,就避免不了调用一些原生的方法,jsBridge就是js和原生通信的桥梁,本文不讲概念性的东西,而是通过分析一下我司项目中的jsBridge源码,来从前端角度大概了解一下它是怎么实现的。 js调用方式先来看一下,js是怎么来调用某个原生方法的,首先初始化的时候会调用window.WebViewJavas... 我司的APP是一个典型的混合开发APP,内嵌的都是前端页面,前端页面要做到和原生的效果相似,就避免不了调用一些原生的方法,jsBridge就是js和原生通信的桥梁,本文不讲概念性的东西,而是通过分析一下我司项目中的jsBridge源码,来从前端角度大概了解一下它是怎么实现的。 js调用方式先来看一下,js是怎么来调用某个原生方法的,首先初始化的时候会调用window.WebViewJavas...
- 背景笔者开源了一个小项目code-run,类似codepen的一个工具,其中代码编辑器使用的是微软的Monaco Editor,这个库是直接从VSCode的源码中生成的,只不过是做了一点修改让它支持在浏览器中运行,但是功能基本是和VSCode一样强大的,所以在笔者看来Monaco Editor等于VSCode的编辑器核心。另外笔者是一个颜控,不管做什么项目,都热衷于配套一些好看的皮肤、主题... 背景笔者开源了一个小项目code-run,类似codepen的一个工具,其中代码编辑器使用的是微软的Monaco Editor,这个库是直接从VSCode的源码中生成的,只不过是做了一点修改让它支持在浏览器中运行,但是功能基本是和VSCode一样强大的,所以在笔者看来Monaco Editor等于VSCode的编辑器核心。另外笔者是一个颜控,不管做什么项目,都热衷于配套一些好看的皮肤、主题...
- 笔者早期开发了一个导航网站,一直想要重构,因为懒拖了好几年,终于,在了解到微前端大法后下了决心,因为工作上一直没有机会实践,没办法,只能用自己的网站试试,思来想去,访问量最高的也就是这个破导航网站了,于是用最快的时间完成了基本功能的重构,然后准备通过微前端来扩展网站的功能,比如天气、待办、笔记、秒表计时等等,这些功能属于附加的功能,可能会越来越多,所以不能和导航本身强耦合在一起,需要做到能独... 笔者早期开发了一个导航网站,一直想要重构,因为懒拖了好几年,终于,在了解到微前端大法后下了决心,因为工作上一直没有机会实践,没办法,只能用自己的网站试试,思来想去,访问量最高的也就是这个破导航网站了,于是用最快的时间完成了基本功能的重构,然后准备通过微前端来扩展网站的功能,比如天气、待办、笔记、秒表计时等等,这些功能属于附加的功能,可能会越来越多,所以不能和导航本身强耦合在一起,需要做到能独...
- 通过Vue CLI可以方便的创建一个Vue项目,但是对于实际项目来说还是不够的,所以一般都会根据业务的情况来在其基础上添加一些共性能力,减少创建新项目时的一些重复操作,本着学习和分享的目的,本文会介绍一下我们Vue项目的前端架构设计,当然,有些地方可能不是最好的方式,毕竟大家的业务不尽相同,适合你的就是最好的。除了介绍基本的架构设计,本文还会介绍如何开发一个Vue CLI插件和preset预... 通过Vue CLI可以方便的创建一个Vue项目,但是对于实际项目来说还是不够的,所以一般都会根据业务的情况来在其基础上添加一些共性能力,减少创建新项目时的一些重复操作,本着学习和分享的目的,本文会介绍一下我们Vue项目的前端架构设计,当然,有些地方可能不是最好的方式,毕竟大家的业务不尽相同,适合你的就是最好的。除了介绍基本的架构设计,本文还会介绍如何开发一个Vue CLI插件和preset预...
- 笔者不久前翻译了一篇介绍树布局算法的文章【译】绘制一棵漂亮的树,但是那篇文章对于算法只是大致介绍了实现的思路,属于启发式文章,虽然有完整的代码,但是要理解起来还是有一定难度,并且要基于该算法实现思维导图也需要进行一定修改,所以本文会通过图解的方式一步步的分解该算法,并最终实现一个思维导图布局。阅读本文前推荐先阅读一下译文,方便理解文中提到的一些概念。 算法图解节点类如下,请务必仔细看一下ri... 笔者不久前翻译了一篇介绍树布局算法的文章【译】绘制一棵漂亮的树,但是那篇文章对于算法只是大致介绍了实现的思路,属于启发式文章,虽然有完整的代码,但是要理解起来还是有一定难度,并且要基于该算法实现思维导图也需要进行一定修改,所以本文会通过图解的方式一步步的分解该算法,并最终实现一个思维导图布局。阅读本文前推荐先阅读一下译文,方便理解文中提到的一些概念。 算法图解节点类如下,请务必仔细看一下ri...
- 场景复现笔者最近给自己的项目CodeRun增加了一个直接在浏览器上使用ES模块的功能,之前使用一个包前需要先找到它的在线CDN地址然后引进来,就像这样:现在可以直接这样:那么这是怎么实现的呢,很简单,使用Skypack,上图中的导入语句实际上最终会变成这样:import rough from 'https://cdn.skypack.dev/roughjs'这个转换是通过babel实现的,... 场景复现笔者最近给自己的项目CodeRun增加了一个直接在浏览器上使用ES模块的功能,之前使用一个包前需要先找到它的在线CDN地址然后引进来,就像这样:现在可以直接这样:那么这是怎么实现的呢,很简单,使用Skypack,上图中的导入语句实际上最终会变成这样:import rough from 'https://cdn.skypack.dev/roughjs'这个转换是通过babel实现的,...
- 前言笔者最近闲来无事给自己做了一个在线文档平台,支持白板、思维导图、文档、电子表格、PPT、流程图、Markdown等,界面是这样的:其实现在市面上有很多这种在线文档平台,笔者为什么要自己做一个呢,且听笔者短话长说。最开始笔者只是想在开源白板项目excalidraw的基础上增加云端存储的功能,因为它的云端保存版是要收费的,况且加个数据库的增删改查也不是什么难事,做完以后想到自己做了一个开源... 前言笔者最近闲来无事给自己做了一个在线文档平台,支持白板、思维导图、文档、电子表格、PPT、流程图、Markdown等,界面是这样的:其实现在市面上有很多这种在线文档平台,笔者为什么要自己做一个呢,且听笔者短话长说。最开始笔者只是想在开源白板项目excalidraw的基础上增加云端存储的功能,因为它的云端保存版是要收费的,况且加个数据库的增删改查也不是什么难事,做完以后想到自己做了一个开源...
- 《代码安全 第三篇》 《代码安全 第三篇》
- 《代码安全 第一篇》 《代码安全 第一篇》
- 前两篇给大家介绍了一下矩形的绘制、选中、拖动、旋转、伸缩,以及放大缩小、网格模式、导出图片等功能,本文继续为各位介绍一下箭头的绘制、自由书写、文字的绘制,以及如何按比例缩放文字图片等这些需要固定长宽比例的图形、如何缩放自由书写折线这些由多个点构成的元素。 箭头的绘制箭头其实就是一根线段,只是一端存在两根成一定角度的小线段,给定两个端点的坐标即可绘制一条线段,关键是如何计算出另外两根小线段的坐... 前两篇给大家介绍了一下矩形的绘制、选中、拖动、旋转、伸缩,以及放大缩小、网格模式、导出图片等功能,本文继续为各位介绍一下箭头的绘制、自由书写、文字的绘制,以及如何按比例缩放文字图片等这些需要固定长宽比例的图形、如何缩放自由书写折线这些由多个点构成的元素。 箭头的绘制箭头其实就是一根线段,只是一端存在两根成一定角度的小线段,给定两个端点的坐标即可绘制一条线段,关键是如何计算出另外两根小线段的坐...
- 世界太小了有一天我们的小矩形说,世界这么大,它想去看看,确实,屏幕就这么大,矩形肯定早就待腻了,作为万能的画布操控者,让我们来满足它的要求。我们新增两个状态变量:scrollX、scrollY,记录画布水平和垂直方向的滚动偏移量,以垂直方向的偏移量来介绍,当鼠标滚动时,增加或减少scrollY,但是这个滚动值我们不直接应用到画布上,而是在绘制矩形的时候加上去,比如矩形用来的y是100,我们... 世界太小了有一天我们的小矩形说,世界这么大,它想去看看,确实,屏幕就这么大,矩形肯定早就待腻了,作为万能的画布操控者,让我们来满足它的要求。我们新增两个状态变量:scrollX、scrollY,记录画布水平和垂直方向的滚动偏移量,以垂直方向的偏移量来介绍,当鼠标滚动时,增加或减少scrollY,但是这个滚动值我们不直接应用到画布上,而是在绘制矩形的时候加上去,比如矩形用来的y是100,我们...
- 持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第8天,点击查看活动详情本文为Varlet组件库源码主题阅读系列第八篇,读完本篇,可以了解到移动端页面如何适配各种尺寸的屏幕,包括pc端,另外如何将触摸事件转换成鼠标事件。 移动端适配开发移动端页面,我们通常都会按照一个固定宽度的设计稿来做,但是实际上的手机屏幕尺寸五花八门,如果不进行适配的话会比较影响使用体验。Varle... 持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第8天,点击查看活动详情本文为Varlet组件库源码主题阅读系列第八篇,读完本篇,可以了解到移动端页面如何适配各种尺寸的屏幕,包括pc端,另外如何将触摸事件转换成鼠标事件。 移动端适配开发移动端页面,我们通常都会按照一个固定宽度的设计稿来做,但是实际上的手机屏幕尺寸五花八门,如果不进行适配的话会比较影响使用体验。Varle...
- 持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情笔者开源了一个Web思维导图mind-map,数据默认是存储在localstorage里,如果想保存到本地文件,需要使用导出功能,下次打开再使用导入功能,编辑完如果又想保存到文件,那么又需要从重新导出覆盖原来的文件,不得不说,可以但不优雅,所以最近增加了直接编辑本地文件的能力,体验了一下,还是不错... 持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情笔者开源了一个Web思维导图mind-map,数据默认是存储在localstorage里,如果想保存到本地文件,需要使用导出功能,下次打开再使用导入功能,编辑完如果又想保存到文件,那么又需要从重新导出覆盖原来的文件,不得不说,可以但不优雅,所以最近增加了直接编辑本地文件的能力,体验了一下,还是不错...
- 一、什么是Mybatis?MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 小游:什么是持... 一、什么是Mybatis?MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 小游:什么是持...
上滑加载中
推荐直播
-
基于HarmonyOS NEXT应用开发之旅
2025/07/17 周四 19:00-20:00
吴玉佩、刘俊威-华为开发者布道师-高校学生
两位学生华为开发者布道师,连续两届HarmonyOS极客马拉松获奖选手联袂呈现HarmonyOS NEXT开发全景!从基础筑基,到工具提效。为您铺就一条从入门到精通的鸿蒙应用开发之路。无论您是新手开发者,还是经验老手,都能在此收获满满干货,开启您的HarmonyOS NEXT高效、智能开发新篇章!
回顾中
热门标签