前端

cordova与css结合实现在android上透明状态栏兼容齐刘海等异形屏

应该会有人觉得百度(google)有的东西为什么我会写出来?有我还写啥啊~手上有一个项目,是用cordova+vue的,这个不是重点,由于ios的app上架比较困难,所以优先上架android。因为习惯了在ios上透明状态栏的样式,在android上也想拥有。得赖于ios的css中safe-area-inset-*的属性,可以在cordova的ios端结合c …

lodash之throttle和debounce的理解

lodash是一个很不错但是很重的类库,它集合了很多实用但不常用的方法。这里主要介绍下我对throttle(节流)和debounce(防抖)的理解。项目底层主要是uni做的app,因为在安卓机或者低版本的ios手机上,用户点击某个按钮转入下个页面的时候,可能会有100~200的延迟。这就导致一些用户手抖的时候会多点一次。所以需要用到防抖-debounce;如 …

ES6 常用汇总(一)

一、let 和 const1、let 可以声明变量let name = '张三';console.log(name);张三2、ES6 新增块级作用域  注:在 ES6 之前作用域分为:全局作用域、函数作用域{var name1 = '张三';let name …

html2canvas与vue-qr的爱与恨

手上有个重构项目,原来的邀请二维码页面做的比较赶,现在重构以后,需要美化一下二维码的页面。当然除了美化二维码以外,还需要用户可以保存,所以这就不仅仅是生成二维码,而是整个二维码卡片。本来这部分是可以交给后端生存的,但是考虑到后端进行的美化未必方便,本质上写法与canvas一样,所以并没有交由后端处理。在思考了一个白天后,我觉得用常规的网页写法写出卡片样式,使 …

vue-cli与viewport-units-buggyfill的结合

因为最初的学习让我对vh和vw这类的单位产生依赖,所以在大部分项目的立项时,使用的是vh和vw的单位,本来用的挺好的。但是因为手上的这个项目是自有项目。为了更好的展示效果,开发到中期,用iphone做测试。也恰恰好因为懒,打开摄像头,扫描二维码,自动唤起safari。于是问题来了,因为我使用的是100%视窗高度,即100vh,居然出现了网页底部的导航被saf …

vue-cli3与鹅厂的badjs-report整合

经常会遇到有用户反应分享功能分享没得到返利,xxx登录失败,这种莫名其妙的错误。明明上线之前内部做了多种测试。这种软错误是最难修改的。所以就引入了鹅厂的badjs。具体服务端安装过程就不过多讨论了。根据文档,引入后初始化即可使用。因为badjs重写了window.onerror的方法。BJ_REPORT.init({id: 1})但是在vue-cl …

flutter抉择和爬坑之底部选项卡

最近研究多平台开发,其中不可避免的就是ios和安卓开发。换一句话,如果需要一个程序媛员的时候为什么还需要2个。所以一个可以同时开发ios和安卓的平台是多么重要。之前在这块方面我对mui有所浸淫,但是用webview构建和js桥的方法实现在多端开发在性能上仍然不能满足我对体验的要求。尤其使用webview需要兼顾使用者的手机版本。以至于很多语法是无法使用的~。 …

Handsontable如何获取合并的单元格数据

因为自己挖了一个坑,所以需要使用到Handsontable插件,目前的需求是需要合并单元格,所以必须保留合并的信息。想过使用hook来保存或者删去合并数据,但是会出现很多难以判断的合并情况百度了下,前3页几乎是一模一样的内容,都是不能使用的,大家你抄我我抄你也不验证一下比如 这个var $container = $(& …

介绍一个小程序页面通讯利器《事件总线》

因为在一个项目中,需要在多个page建立所谓的websocket。但是这存在一个很不实际的问题,如果在每个页面建立websocket,第一不利于页面维护,第二多次建立websocket对内存和项目不定性不利,所以想到使用一种叫《事件总线》实例对所有的通讯事件进行调度和维护。这里先介绍下《事件总线》的原理:在前端的世界观里,每个页面的javascript在不被 …

小程序开发之心得

→_→ 前段时间工作和私事比较多导致荒废了博客的更新,这次准备点干货1、小程序底层思想一个完整的小程序除了相关配置文件,每个path还包含了4个文件,wxml、js、json和wxss。js文件,固然不必说了,跟常规网页一样,都是javascript(脚本);json文件,这个文件一开始困扰了我很久,因为在项目目录跟下也有一个json文件,是用于配 …